diff options
author | unknown <malff/marcsql@weblab.(none)> | 2007-02-16 09:02:02 -0700 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2007-02-16 09:02:02 -0700 |
commit | a858d8e84afe238789092a0d4d585ec5243f9fed (patch) | |
tree | 3a04d97790571390b5233a060198c29b27273c1a /sql/item_subselect.h | |
parent | 9d66be72b0ee079cecc39e09d4f4c0f7e1849dbc (diff) | |
parent | a475ed7c6b6607272afb87517ae6ab1f3a397f41 (diff) | |
download | mariadb-git-a858d8e84afe238789092a0d4d585ec5243f9fed.tar.gz |
Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base
into weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 25a0326f8b6..4853d635657 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -126,6 +126,12 @@ public: virtual void reset_value_registration() {} enum_parsing_place place() { return parsing_place; } + /** + Get the SELECT_LEX structure associated with this Item. + @return the SELECT_LEX structure associated with this Item + */ + st_select_lex* get_select_lex(); + friend class select_subselect; friend class Item_in_optimizer; friend bool Item_field::fix_fields(THD *, Item **); @@ -169,6 +175,20 @@ public: bool null_inside(); void bring_value(); + /** + This method is used to implement a special case of semantic tree + rewriting, mandated by a SQL:2003 exception in the specification. + The only caller of this method is handle_sql2003_note184_exception(), + see the code there for more details. + Note that this method breaks the object internal integrity, by + removing it's association with the corresponding SELECT_LEX, + making this object orphan from the parse tree. + No other method, beside the destructor, should be called on this + object, as it is now invalid. + @return the SELECT_LEX structure that was given in the constructor. + */ + st_select_lex* invalidate_and_restore_select_lex(); + friend class select_singlerow_subselect; }; |