- 30 Aug, 2016 1 commit
-
-
Igor Babaev authored
Added comments. Added reaction for exceeding maximum number of elements in with clause. Added a test case to check this reaction. Added a test case where the specification of a recursive table uses two non-recursive with tables.
-
- 26 Aug, 2016 1 commit
-
-
Igor Babaev authored
Added comments.
-
- 11 Aug, 2016 1 commit
-
-
Igor Babaev authored
-
- 10 Aug, 2016 1 commit
-
-
Igor Babaev authored
Moved checking whether the limit set for the number of iterations when executing a recursive query has been reached from st_select_lex_unit::exec_recursive to TABLE_LIST::fill_recursive. Changed the name of the system variable max_recursion_level for max_recursive_iterations. Adjusted test cases.
-
- 09 Aug, 2016 1 commit
-
-
Sergei Petrunia authored
-
- 08 Aug, 2016 1 commit
-
-
Sergei Petrunia authored
- Tabular EXPLAIN now prints "RECURSIVE UNION". - There is a basic implementation of EXPLAIN FORMAT=JSON. - it produces "recursive_union" JSON struct - No other details or ANALYZE support, yet.
-
- 05 Aug, 2016 1 commit
-
-
Igor Babaev authored
explain for the query containing WITH clause with an unreferenced CTE caused a crash. Added a test covered this case. Also added a test for usage CTE in different parts of union.
-
- 29 Jul, 2016 1 commit
-
-
Igor Babaev authored
The patch for bug mdev-9937 actually did not fix the problem of name resolution for tables used in views referred in queries with WITH clauses. This fix corrects the patch.
-
- 27 Jul, 2016 1 commit
-
-
Igor Babaev authored
Temporary tables created for recursive CTE were instantiated at the prepare phase. As a result these temporary tables missed indexes for look-ups and optimizer could not use them.
-
- 30 Jun, 2016 1 commit
-
-
Igor Babaev authored
-
- 29 Jun, 2016 1 commit
-
-
Igor Babaev authored
-
- 26 Jun, 2016 1 commit
-
-
Igor Babaev authored
-
- 07 Jun, 2016 2 commits
-
-
Igor Babaev authored
-
Igor Babaev authored
builds.
-
- 06 Jun, 2016 1 commit
-
-
Igor Babaev authored
Actually mutually recursive CTE were not functional. Now the code for mutually recursive CTE looks like functional, but still needs re-writing. Added many new test cases for mutually recursive CTE.
-
- 24 May, 2016 6 commits
-
-
Galina Shalygina authored
-
Galina Shalygina authored
-
Galina Shalygina authored
Added test cases to check the fix. Fixed the problem of wrong types of recursive tables when the type of anchor part does not coincide with the type of recursive part. Prevented usage of marerialization and subquery cache for subqueries with recursive references. Introduced system variables 'max_recursion_level'. Added a test case to test usage of this variable.
-
Alexander Barkov authored
- Moving opt_union_order_or_limit inside union_opt, as it's not used in other places any more. - Changing union_opt to have no type. Earlier (before all MDEV-8909 dependency tasks) it had the <num> type, and it's return value was used to generate errors. Now union_opt does not need a return value because the grammar disallows ORDER and LIMIT clauses in wrong context.
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 23 May, 2016 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 21 May, 2016 1 commit
-
-
Alexander Barkov authored
MDEV-10095 Fix derived tables to return a syntax error instead of "Illegal usage of UNION and LIMIT"
-
- 20 May, 2016 4 commits
-
-
Alexander Barkov authored
from select_derived_init.
-
Alexander Barkov authored
(to simplify further MDEV-8909 changes) 1. Better semantic readability: - Moving get_select_lex_derived inside select_derived_init and decomposing it into get_select_lex and $1->init_nested_join(lex->thd) - Moving DBUG_ASSERT($1 == Lex->current_select) inside select_derived_init Now init_nested_join() and end_nested_join() reside inside the same rule select_derived_init. (It's very likely that they can be further removed, as there are no any joins in this rule). 3. Better grammar readability: Moving SELECT_SYM from select_derived_init to derived_query_specification. It's easier to read a rule when it starts from a terminal symbol.
-
Oleksandr Byelkin authored
-
Alexander Barkov authored
1. Moving the "| get_select_lex_derived select_derived_init" part of select_derived into a separate new rule derived_query_specification. 2. Using derived_query_specification directly in select_derived_union rather than in select_derived. 3. Moving the sequence "opt_order_clause opt_limit_clause opt_select_lock_type" from select_derived2 to select_derived_union, after derived_query_specification. Effectively, the parser now does not go through the sequence "opt_order_clause opt_limit_clause ... opt_union_order_or_limit" any more. This fixes the problem with double LIMIT clause and removes 2 shift/reduce conflicts.
-
- 19 May, 2016 3 commits
-
-
Galina Shalygina authored
-
Galina Shalygina authored
Added the check whether there are set functions in the specifications of recursive CTE. Added the check whether there are recursive references in subqueries. Introduced boolean system variable 'standards_compliant_cte'. By default it's set to 'on'. When it's set to 'off' non-standard compliant CTE can be executed.
-
Alexander Barkov authored
"MDEV-8909 union parser cleanup" changes. When the server parses a query like SELECT * FROM (SELECT 1); a sequence of calls st_select_lex::init_nested_join() .. st_select_lex::end_nested_join() was performed two times (tested in gdb). Both pairs of calls seem to be redundant for a query like this, because there are actually no any joins here. This patch moved "table_ref_select" inside "select_derived", which revealed that one the pairs was definitely redundant: After this transformation we got an init_nested_join() immediately followed by end_nested_join() for the same st_select_lex, which has no any sense. So this pair of calls was removed.
-
- 17 May, 2016 7 commits
-
-
Oleksandr Byelkin authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
to simplify further MDEV-8909 refactoring.
-
Alexander Barkov authored
-
Igor Babaev authored
-
Igor Babaev authored
This was a bug in the parser. As a result it could accept queries with invalid derived tables if they used With clauses.
-
- 16 May, 2016 1 commit
-
-
Alexander Barkov authored
- Moving "SELECT_SYM select_init2_derived opt_table_expression" from query_term into a new separate rule query_specification, and using query_specification in the beginning of query_term. - query_term now does not have a %type, query_specification has a %type instead. This removes duplicate code that returns Lex->current_select->master_unit()->first_select();
-
- 14 May, 2016 1 commit
-
-
Galina Shalygina authored
Fixed a bug that caused crashes for SHOW CREATE VIEW <view> when <view> was recursive. Added a test case to check the fix.
-