| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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.
|
| |
| |
| |
| | |
..} .. UNION ..
|
| | |
|
| | |
|
| |
| |
| |
| | |
usage of UNION and LIMIT"
|
| |
| |
| |
| | |
usage of UNION and LIMIT"
|
| |
| |
| |
| | |
from select_derived_init.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"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.
|
| | |
|
| |
| |
| |
| | |
to simplify further MDEV-8909 refactoring.
|
| | |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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();
|
| |/
| |
| |
| |
| | |
This was a bug in the parser. As a result it could accept queries
with invalid derived tables if they used With clauses.
|
| |
| |
| |
| |
| | |
between select_derived_union and query_expression_body.
An upcoming patch for MDEV-10035 will also reuse union_head_non_top.
|
| |
| |
| |
| |
| |
| |
| | |
- Moving select_options_and_item_list from select_init2
to select_init and view_select_aux
- Renaming select_init2 to select_init3
This will simplify upcoming sql_yacc.yy fixes (e.g. MDEV-10035, MDEV-8909).
|
| |
| |
| |
| |
| |
| |
| | |
closer the grammar in the SQL Standard:
- <query specification> is only a SELECT followed by
<set quantifier>, <select list> and <table expression>.
- While <query term> includes SELECT queries and derived tables.
|
| |
| |
| |
| |
| |
| | |
constructs with INTO, PROCEDURE, UNION
MDEV-10037 UNION with LIMIT ROWS EXAMINED does not require parentheses
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
create_select, select_paren_derived, select_derived2, query_specification
This change refactors the "table_expression" rule in sql_yacc.yy.
Queries with subselects and derived tables, as well as "CREATE TABLE ... SELECT"
now return syntax error instead of "Incorrect usage of PROCEDURE and ...".
|
| | |
|
| |
| |
| |
| |
| | |
The current implementation does not allow for a dynamic expression
within the sum function's parameter.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Item_func_or_sum.
Implemented method update_used_tables for class Item_findow_func.
Added the flag Item::with_window_func.
Made sure that window functions could be used only in SELECT list
and ORDER BY clause.
Added test cases that checked different illegal placements of
window functions.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Resolved window names.
Checked some constraints for window frames.
Added test cases for window name resolution.
|
| | |
| | |
| | |
| | |
| | |
| | | |
- All parsing problems look like resolved
- Stub performing name resolution of window functions
in simplest queries has been added.
|
| | | |
|
| |/
|/| |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
of mdev-8789.
Fixed a bug in TABLE_LIST::print.
Fixed another bug for the case when the definition of a
WITH table contained column list while the join in the main
query used two instances of this table.
|
| | | |
|
| | |
| | |
| | |
| | | |
Initial implementation
|
| | |
| | |
| | |
| | |
| | |
| | | |
* Maintain coding style in sql_yacc.yy in regards to optional clauses.
* Remove unused variable from sql_acl.cc.
* Update test case
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Implemented the alter user syntax. Also tested that create user
creates users accordingly.
|
| | |
| | |
| | |
| | |
| | | |
Extend the syntax accepted by the grammar to account for the new create user
and alter user syntax.
|
|\ \ \ |
|
| |\ \ \ |
|
| | |\ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fixed adding derived tables items to outer one.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This fixes
MDEV-9538 Server crashes in check_show_access on SHOW STATISTICS
MDEV-9539 Server crashes in make_columns_old_format on SHOW GEOMETRY_COLUMNS
MDEV-9540 SHOW SPATIAL_REF_SYS and SHOW SYSTEM_VARIABLES return empty results with numerous warnings
|
|\ \ \ \ \ \
| |/ / / / /
| | | | | /
| |_|_|_|/
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
VERSION
cmake/plugin.cmake
config.h.cmake
configure.cmake
plugin/server_audit/server_audit.c
sql/sql_yacc.yy
|
| |\ \ \ \
| | |/ / /
| | | | |
| | | | |
| | | | | |
Conflicts:
configure.cmake
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change parser so it saves all the query line to the ';' in the
sp_instr::m_query.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
m_buf_length' failed in Lex_input_stream::body_utf8_start
Nothing should be done before any keyword recognized.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Was:
* LEX_USER::password was storing sometimes
plaintext password and sometimes password hash
* LEX_USER::auth was storing sometimes password hash and
sometimes plugin authentication string
Now:
* LEX_USER::pwtext stores the password in plain-text
* LEX_USER::pwhash stores the password hash
* LEX_USER::auth stores the plugin authentication string
|
| | | | |
| | | | |
| | | | |
| | | | | |
as this is used quite often
|