diff options
author | monty@mashka.mysql.fi <> | 2002-07-24 19:55:08 +0300 |
---|---|---|
committer | monty@mashka.mysql.fi <> | 2002-07-24 19:55:08 +0300 |
commit | c702a1f8fda0814db36801b91c601329225f8030 (patch) | |
tree | 31ee919bea7e4456572b62d5ea7302dc58bc0b6a /sql/sql_select.cc | |
parent | 00089b8148dfc8b3e4cf2be94ec33fc51665f529 (diff) | |
download | mariadb-git-c702a1f8fda0814db36801b91c601329225f8030.tar.gz |
Removed wrong implementation of CUBE/ROLLUP
Fixed bugfix of INSERT ... SET db_name.table_name.column_name
Changed locking to external-locking
Fix client hangup for some invalid SQL queries.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index f9cbab64aad..2f12d7d1012 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -146,7 +146,7 @@ static bool update_sum_func(Item_sum **func); static void select_describe(JOIN *join, bool need_tmp_table, bool need_order, bool distinct, const char *message=NullS); static void describe_info(JOIN *join, const char *info); -extern int handle_olaps(LEX *lex, SELECT_LEX *select); + /* This handles SELECT with and without UNION */ @@ -155,23 +155,26 @@ int handle_select(THD *thd, LEX *lex, select_result *result) { int res; register SELECT_LEX *select_lex = &lex->select_lex; + +#ifdef DISABLED_UNTIL_REWRITTEN_IN_4_1 if (lex->olap) { - SELECT_LEX *sl, *last_sl; - int returned; - for (sl= &lex->select_lex;sl;sl=sl->next) + SELECT_LEX *sl, *sl_next; + int error; + for (sl= &select_lex; sl; sl=sl_next) { - if (sl->olap != NON_EXISTING_ONE) + sl_next=sl->next; // Save if sl->next changes + if (sl->olap != UNSPECIFIED_OLAP_TYPE) { - last_sl=sl->next; - if ((returned=handle_olaps(lex,sl))) - return returned; - lex->last_selects->next=sl=last_sl; - if (!sl) break; + if ((error=handle_olaps(lex,sl))) + return error; + lex->last_selects->next=sl_next; } } lex->select = select_lex; } +#endif DISABLED_UNTIL_REWRITTEN_IN_4_1 + if (select_lex->next) res=mysql_union(thd,lex,result); else |