diff options
author | unknown <Sinisa@sinisa.nasamreza.org> | 2003-01-10 18:26:14 +0200 |
---|---|---|
committer | unknown <Sinisa@sinisa.nasamreza.org> | 2003-01-10 18:26:14 +0200 |
commit | cb55a65bdab2253510e53ae20b6786a1363e3955 (patch) | |
tree | 14a9a35bebd797884d83d2f862d2cffffb0b52f3 /sql | |
parent | a1f84c11160ff26892ad9931354d3be341b71496 (diff) | |
parent | 9112cdf58a675ddd3f7fe9547c7a02359ea494a7 (diff) | |
download | mariadb-git-cb55a65bdab2253510e53ae20b6786a1363e3955.tar.gz |
Merge sinisa@work.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_select.cc | 12 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 12 |
2 files changed, 19 insertions, 5 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index aab8d883204..63c0d8b785f 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -714,6 +714,13 @@ JOIN::exec() int tmp_error; DBUG_ENTER("JOIN::exec"); + + if (procedure) + { + if (procedure->change_columns(fields_list) || + result->prepare(fields_list, unit)) + DBUG_VOID_RETURN; + } if (!tables_list) { // Only test of functions @@ -768,8 +775,6 @@ JOIN::exec() test_if_skip_sort_order(&join_tab[const_tables], order, select_limit, 0)))) order=0; - if (procedure) - (void)result->prepare(fields_list, unit); select_describe(this, need_tmp, order != 0 && !skip_sort_order, select_distinct); @@ -989,9 +994,6 @@ JOIN::exec() } if (procedure) { - if (procedure->change_columns(fields_list) || - result->prepare(fields_list, unit)) - DBUG_VOID_RETURN; count_field_types(&tmp_table_param, all_fields, 0); } if (group || tmp_table_param.sum_func_count || diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 0985859caae..1a7aee2e76f 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2571,6 +2571,12 @@ select_derived: { LEX *lex= Lex; lex->derived_tables= 1; + if (((int)lex->sql_command >= (int)SQLCOM_HA_OPEN && + lex->sql_command <= (int)SQLCOM_HA_READ) || lex->sql_command == (int)SQLCOM_KILL) + { + send_error(lex->thd, ER_SYNTAX_ERROR); + YYABORT; + } if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE || mysql_new_select(lex, 1)) YYABORT; @@ -4607,6 +4613,12 @@ in_subselect_init: subselect_start: '(' SELECT_SYM { + LEX *lex=Lex; + if (((int)lex->sql_command >= (int)SQLCOM_HA_OPEN && + lex->sql_command <= (int)SQLCOM_HA_READ) || lex->sql_command == (int)SQLCOM_KILL) { + send_error(lex->thd, ER_SYNTAX_ERROR); + YYABORT; + } if (mysql_new_select(Lex, 1)) YYABORT; }; |