diff options
author | unknown <bell@sanja.is.com.ua> | 2003-05-14 21:51:33 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2003-05-14 21:51:33 +0300 |
commit | a32b868c3b930b512ffd840c2708e0ee894507b1 (patch) | |
tree | dd5bbcb7c0561f00a367fdeab1296efdea9012ca /sql/item.h | |
parent | 79c53934bec3cb6504f8cf8b1c6d8d465b12a149 (diff) | |
download | mariadb-git-a32b868c3b930b512ffd840c2708e0ee894507b1.tar.gz |
subselect transformation moved in after-fix_field place
removed "of is null" if it is possible
(this cset should be SCRUM related, but not approved as scrum task yet)
mysql-test/r/subselect.result:
new subselect test result (new place of error detecting & and more subselect reducing)
sql/item.cc:
layout fix
sql/item.h:
unneed ';'
fixed print pethod
sql/item_cmpfunc.cc:
new method to support transformation after fix_fields
sql/item_cmpfunc.h:
new method to support transformation after fix_fields
fixed Item printing
sql/item_subselect.cc:
new transformation
sql/item_subselect.h:
new transformation
sql/sql_derived.cc:
'table' & 'table_list' now is not union
sql/sql_lex.cc:
'table' & 'table_list' now is not union to support reinit only shared tables (but all)
sql/sql_lex.h:
mark fake st_select_lex
sql/sql_olap.cc:
fixed table assignment
TODO added
sql/sql_select.cc:
'table' & 'table_list' now is not union
transforming subselect
sql/sql_union.cc:
prepare make on fix_fields
sql/sql_yacc.yy:
fixed layout
sql/table.h:
'table & 'table_list' now is different fields
Diffstat (limited to 'sql/item.h')
-rw-r--r-- | sql/item.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/sql/item.h b/sql/item.h index 3a5a06c3af3..7b758f76fc8 100644 --- a/sql/item.h +++ b/sql/item.h @@ -100,7 +100,7 @@ public: virtual bool get_time(TIME *ltime); virtual bool get_date_result(TIME *ltime,bool fuzzydate) { return get_date(ltime,fuzzydate); } - virtual bool is_null() { return 0; }; + virtual bool is_null() { return 0; } virtual void top_level_item() {} virtual void set_result_field(Field *field) {} virtual bool is_result_field() { return 0; } @@ -560,6 +560,15 @@ public: longlong val_int(); String* val_str(String* s); bool get_date(TIME *ltime, bool fuzzydate); + void print(String *str) + { + str->append("ref_null_helper("); + if (ref && *ref) + (*ref)->print(str); + else + str->append('?'); + str->append(')'); + } }; @@ -605,6 +614,15 @@ public: {} bool fix_fields(THD *, struct st_table_list *, Item ** ref); Item **storage() {return &item;} + void print(String *str) + { + str->append("ref_null_helper('"); + if (item) + item->print(str); + else + str->append('?'); + str->append(')'); + } }; /* |