1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-03 05:41:09 +03:00
Commit Graph

7201 Commits

Author SHA1 Message Date
Sergei Golubchik
c91ecf9e9b Merge branch '10.1' into 10.2
Revert commit db0917f68f, because the fix for MDEV-12696
is coming from 5.5 and 10.1 in this merge.
2017-05-09 13:24:52 +02:00
Sergei Golubchik
d738722eee Merge branch '10.0' into 10.1 2017-05-08 14:58:49 +02:00
Sergei Golubchik
1c418df722 Merge branch '5.5' into 10.0 2017-05-08 12:12:48 +02:00
Sergei Golubchik
d53eb85997 MDEV-12580 Wrong query result in join when using an index (Version > "10.2.3")
JOIN_TAB::remove_redundant_bnl_scan_conds() removes select_cond
from a JOIN_TAB if join cache is enabled, and tab->cache_select->cond
is the equal to tab->select_cond.

But after 8d99166c69 the code to initialize join cache was moved
to happen much later than JOIN_TAB::remove_redundant_bnl_scan_conds(),
and that code might, under certain conditions, revert to *not* using
join cache (set_join_cache_denial()).

If JOIN_TAB::remove_redundant_bnl_scan_conds() removes the WHERE
condition from the JOIN_TAB and later set_join_cache_denial() disables
join cache, we end up with no WHERE condition at all.

Fix: move JOIN_TAB::remove_redundant_bnl_scan_conds() to happen
after all possible set_join_cache_denial() calls.
2017-05-08 11:08:18 +02:00
Alexander Barkov
314350a722 Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3 2017-05-07 23:51:18 +04:00
Alexander Barkov
cc694792c9 MDEV-12717 Change Item_equal to operate Type_handler rather than Item_result 2017-05-07 01:02:37 +04:00
Alexander Barkov
aea54a11a6 MDEV-12716 Change Value_source::Context to operate Type_handler rather than Item_result 2017-05-06 23:06:18 +04:00
Aleksey Midenkov
7e0ff13d7a SQL: derived fixes [related to #185] 2017-05-05 20:36:39 +03:00
Aleksey Midenkov
8a11f9b243 SQL: VIEW fix [related to #185] 2017-05-05 20:36:39 +03:00
Aleksey Midenkov
7153ff85a1 SQL: derived tables improvements [closes #185] 2017-05-05 20:36:38 +03:00
Aleksey Midenkov
122ffa2211 SQL(misc): Query_arena_stmt RAII 2017-05-05 20:36:37 +03:00
Aleksey Midenkov
1e8a81dea6 SQL: CREATE VIEW and misc improvements [fixes #183] 2017-05-05 20:36:37 +03:00
kevg
7d2ed77e31 SQL: SIGSEGV in create_tmp_table() [fixes #179]
tests are in main,rpl suites
2017-05-05 20:36:37 +03:00
kevg
ecc6cd95c4 SQL: Default 'simple' algorithm for InnoDB 'AS OF' [closes #175] 2017-05-05 20:36:36 +03:00
kevg
d64702d43a SQL: different results when querying a VIEW from PREPARED STATEMENT and without it [fixes #176] 2017-05-05 20:36:35 +03:00
kevg
ecd18bc099 SQL: allow FOR SYSTEM_TIME BEFORE for SELECT queries [closes #170] 2017-05-05 20:36:35 +03:00
Aleksey Midenkov
9e9af76eaf SQL: vers_current_time refactoring [closes #117]
* session sysvars;
* moved value parsing to set variable phase;
* renamed 'temporal_current_timestamp' to 'vers_current_time'.
2017-05-05 20:36:34 +03:00
Aleksey Midenkov
67cd92b6f4 SQL, IB: Copy history via CREATE .. SELECT [closes #157, #152] 2017-05-05 20:36:33 +03:00
kevg
14f007f907 SQL: versioning in embedded JOINs [fixes #160] 2017-05-05 20:36:33 +03:00
kevg
21e8b22f53 Misc: vers_select_conds_t::init_from_sysvar() 2017-05-05 20:36:32 +03:00
kevg
352d83569b SQL: versioning for tmp HEAP tables created from IB tables [closes #158] 2017-05-05 20:36:32 +03:00
kevg
92c7a87119 Misc: vers_setup_select() Item_field ctor fix
Related to #150
2017-05-05 20:36:31 +03:00
kevg
9ea02899f8 SQL: nested equi-join for versioned table [fixes #150] 2017-05-05 20:36:31 +03:00
kevg
d85e7a5e01 SQL: NATUAL JOIN on view + table [fixes #148] 2017-05-05 20:36:30 +03:00
kevg
b8bfc06b26 SQL, Tests: temporal_current_timestamp for setting default AS OF timestamp [closes #117] 2017-05-05 20:36:28 +03:00
kevg
bcc8ba78bc SQL, Tests: versioning for nested queries and CTE [closes #74] 2017-05-05 20:36:27 +03:00
kevg
7aa3ebdd18 SQL, Tests: FOR SYSTEM_TIME for VIEWs [closes #98] 2017-05-05 20:36:27 +03:00
kevg
e069de7d9d SQL: TRUNCATE FOR SYSTEM_TIME BEFORE [closes #111] 2017-05-05 20:36:25 +03:00
Aleksey Midenkov
3a64d55aed Parser, SQL: table-specific FOR SYSTEM_TIME [closes #116]
* Syntax sugar: query-global QUERY FOR SYSTEM_TIME
2017-05-05 20:36:25 +03:00
kevg
c9e4ac4b72 0.6: truncate history feature [closes #96] 2017-05-05 20:36:24 +03:00
Aleksey Midenkov
ea60760e47 SQL: missed FOR SYSTEM_TIME ALL for FOR_SYSTEM_TIME_UNSPECIFIED
[fixes #105]
2017-05-05 20:36:23 +03:00
Aleksey Midenkov
27d9e762a9 SQL: prohibit write-locking of historic rows [fixes #102] 2017-05-05 20:36:23 +03:00
Aleksey Midenkov
412dd1e1f3 SQL: FOR SYSTEM_TIME support in VIEW expression [fixes #99] 2017-05-05 20:36:23 +03:00
kevg
dc4ef66fee SQL: optimize FOR SYSTEM_TIME ALL queries [closes #85] 2017-05-05 20:36:21 +03:00
Aleksey Midenkov
695c5aabad SQL: error on FOR SYSTEM_TIME without any versioned tables
[fixes #88]
2017-05-05 20:36:20 +03:00
Aleksey Midenkov
dd3099a00d SQL: unsupported engine fix for VTQ funcs 2017-05-05 20:36:19 +03:00
Aleksey Midenkov
d54d36c45e IB, SQL: (0.4) COMMIT_ID-based ordering of transactions
IB:
* removed CONCURR_TRX from VTQ;
* new fields in VTQ: COMMIT_ID, ISO_LEVEL.

SQL:
* renamed BEGIN_TS, COMMIT_TS to VTQ_BEGIN_TS, VTQ_COMMIT_TS;
* new functions: VTQ_COMMIT_ID, VTQ_ISO_LEVEL, VTQ_TRX_ID, VTQ_TRX_SEES, VTQ_TRX_SEES_EQ;
* versioned SELECT for IB uses VTQ_TRX_SEES, VTQ_TRX_SEES_EQ.

Closes #71
2017-05-05 20:36:17 +03:00
Aleksey Midenkov
6d89a4a49b Parser, SQL: (0.4) TRANSACTION support in queries
Syntax extension: TIMESTAMP/TRANSACTION keyword can be used before FROM ... TO, BETWEEN ... AND.
Example:
    SELECT * FROM t1 FOR SYSTEM_TIME TIMESTAMP FROM '1-1-1' TO NOW();

Closes #27
2017-05-05 20:36:15 +03:00
Aleksey Midenkov
01c9d1c97f SQL: SP idempotency fix
Fixes #52
2017-05-05 20:36:13 +03:00
Aleksey Midenkov
5cf3dd79fa SQL: JOIN + WHERE in SP 2017-05-05 20:36:13 +03:00
Aleksey Midenkov
6ccae7369b SQL: fixed LEFT JOIN, RIGHT JOIN 2017-05-05 20:36:11 +03:00
Aleksey Midenkov
2db17e6624 Parser: versioned JOIN fix
Moved opt_for_system_time_clause from table identifier (which binds
it to single table) to table expression.
2017-05-05 20:36:10 +03:00
Aleksey Midenkov
53a892fcfd IB: 0.2 part IV
* BEGIN_TS(), COMMIT_TS() SQL functions;
* VTQ instead of packed stores secs + usecs like my_timestamp_to_binary() does;
* versioned SELECT to IB is translated with COMMIT_TS();
* SQL fixes:
  - FOR_SYSTEM_TIME_UNSPECIFIED condition compares to TIMESTAMP_MAX_VALUE;
  - segfault fix #36: multiple execute of prepared stmt;
  - different tables to same stored procedure fix (#39)
* Fixes of previous parts: ON DUPLICATE KEY, other misc fixes.
2017-05-05 20:36:10 +03:00
Aleksey Midenkov
a72259353a Cleanup: garbage hunk 2017-05-05 20:36:09 +03:00
Aleksey Midenkov
1ec7dbe176 IB: 0.2 part III
* versioned DML: INSERT, UPDATE, DELETE;
* general refactoring and fixes.

Warning: breaks 'insert' and 'update' tests since they require part IV.
2017-05-05 20:36:08 +03:00
Daniel Fiala
be6f2d302c 0.1: SQL-level System Versioning 2017-05-05 20:35:08 +03:00
Alexander Barkov
ac53b49b1b Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext 2017-05-05 16:12:54 +04:00
Igor Babaev
15f9931f6d Fixed the bug mdev-12673.
This patch corrects the fix for the bug mdev-10693.
It is critical for the function get_best_combination() not to call
create_ref_for_key() for constant tables.
This bug could manifest itself only in multi-table subqueries where
one of the tables is accessed by a constant primary key.
2017-05-04 22:45:32 -07:00
Igor Babaev
ce8ee7d90b Fixed the bug mdev-11990.
The usage of windows functions when all tables were optimized away
by min/max optimization were not supported. As result a result,
the queries that used window functions with min/max aggregation
over the whole table returned wrong result sets.
The patch fixed this problem.
2017-05-03 13:50:35 -07:00
Alexander Barkov
280866d38d Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3 2017-05-02 13:52:45 +04:00