summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2002-10-11 21:49:10 +0300
committerunknown <Sinisa@sinisa.nasamreza.org>2002-10-11 21:49:10 +0300
commite6403485edbc32dee18b246b21ed901d7e8c3225 (patch)
tree2d7062b28bee0edd940168f445301d0156f904cb /sql/sql_class.cc
parent08f44a43658eea5034a35b706ae65c678be0160b (diff)
downloadmariadb-git-e6403485edbc32dee18b246b21ed901d7e8c3225.tar.gz
SCRUM task
mysql-test/r/select.result: SELECT ... INTO user_variables mysql-test/t/select.test: SELECT ... INTO user_variables sql/sql_class.cc: SELECT ... INTO user_variables sql/sql_class.h: SELECT ... INTO user_variables sql/sql_lex.h: SELECT ... INTO user_variables sql/sql_parse.cc: SELECT ... INTO user_variables sql/sql_yacc.yy: SELECT ... INTO user_variables
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r--sql/sql_class.cc44
1 files changed, 44 insertions, 0 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 648e05c1610..02c98c87c4e 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -907,3 +907,47 @@ bool select_exists_subselect::send_data(List<Item> &items)
DBUG_RETURN(0);
}
+
+/***************************************************************************
+** Dump of select to variables
+***************************************************************************/
+
+
+bool select_dumpvar::send_data(List<Item> &items)
+{
+ List_iterator_fast<Item> li(items);
+ List_iterator_fast<LEX_STRING> gl(current_thd->lex.select_into_var_list);
+ Item *item;
+ LEX_STRING *ls;
+ DBUG_ENTER("send_data");
+
+ if (row_count++ > 1)
+ {
+ my_error(ER_TOO_MANY_ROWS, MYF(0));
+ goto err;
+ }
+ while ((item=li++) && (ls=gl++))
+ {
+ Item_func_set_user_var *xx = new Item_func_set_user_var(*ls,item);
+ xx->fix_fields(current_thd,(TABLE_LIST*) current_thd->lex.select_lex.table_list.first,&item);
+ xx->fix_length_and_dec();
+ xx->update();
+ }
+ DBUG_RETURN(0);
+err:
+ DBUG_RETURN(1);
+}
+
+bool select_dumpvar::send_eof()
+{
+ if (row_count)
+ {
+ ::send_ok(thd,row_count);
+ return 0;
+ }
+ else
+ {
+ my_error(ER_EMPTY_QUERY,MYF(0));
+ return 1;
+ }
+}