summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2003-05-14 21:51:33 +0300
committerunknown <bell@sanja.is.com.ua>2003-05-14 21:51:33 +0300
commita32b868c3b930b512ffd840c2708e0ee894507b1 (patch)
treedd5bbcb7c0561f00a367fdeab1296efdea9012ca /sql/item.h
parent79c53934bec3cb6504f8cf8b1c6d8d465b12a149 (diff)
downloadmariadb-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.h20
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(')');
+ }
};
/*