diff options
author | unknown <bell@sanja.is.com.ua> | 2002-12-31 12:48:00 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-12-31 12:48:00 +0200 |
commit | a83a0d4b328b916cffaf8165fd3d9e377ec1a8f3 (patch) | |
tree | dcab9c7a14647c8bae436c6ab8c74595fc318485 /sql/sql_class.cc | |
parent | 43d8212eec25d4def258b6a28a14978a5b79ea4c (diff) | |
parent | dd9a10109855bf9f7fc55e40b910c5575327dbd4 (diff) | |
download | mariadb-git-a83a0d4b328b916cffaf8165fd3d9e377ec1a8f3.tar.gz |
Merge sanja.is.com.ua:/home/bell/mysql/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/work-row-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/item.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index e0f85b65d27..3ca1f4827ff 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -917,10 +917,10 @@ select_subselect::select_subselect(Item_subselect *item) this->item=item; } -bool select_singleval_subselect::send_data(List<Item> &items) +bool select_singlerow_subselect::send_data(List<Item> &items) { - DBUG_ENTER("select_singleval_subselect::send_data"); - Item_singleval_subselect *it= (Item_singleval_subselect *)item; + DBUG_ENTER("select_singlerow_subselect::send_data"); + Item_singlerow_subselect *it= (Item_singlerow_subselect *)item; if (it->assigned()) { my_message(ER_SUBSELECT_NO_1_ROW, ER(ER_SUBSELECT_NO_1_ROW), MYF(0)); @@ -932,32 +932,9 @@ bool select_singleval_subselect::send_data(List<Item> &items) DBUG_RETURN(0); } List_iterator_fast<Item> li(items); - Item *val_item= li++; // Only one (single value subselect) - /* - Following val() call have to be first, because function AVG() & STD() - calculate value on it & determinate "is it NULL?". - */ - it->real_value= val_item->val_result(); - if ((it->null_value= val_item->null_value)) - { - it->reset(); - } - else - { - it->max_length= val_item->max_length; - it->decimals= val_item->decimals; - it->set_charset(val_item->charset()); - it->int_value= val_item->val_int_result(); - String *s= val_item->str_result(&it->string_value); - if (s != &it->string_value) - { - it->string_value.set(*s, 0, s->length()); - } - // TODO: remove when correct charset handling appeared for Item - it->str_value.set(*s, 0, s->length()); // store charset - - it->res_type= val_item->result_type(); - } + Item *val_item; + for (uint i= 0; (val_item= li++); i++) + it->store(i, val_item); it->assigned(1); DBUG_RETURN(0); } |