diff options
author | malff/marcsql@weblab.(none) <> | 2007-02-16 09:02:02 -0700 |
---|---|---|
committer | malff/marcsql@weblab.(none) <> | 2007-02-16 09:02:02 -0700 |
commit | f8839a70bdc8b712f0fa5a5fe095a645c11b3c0a (patch) | |
tree | 3a04d97790571390b5233a060198c29b27273c1a /sql/item_subselect.h | |
parent | 154f7f396eb4d70d37d77249a254762320e345dc (diff) | |
parent | 4e556b230585efc62d45da66d628db1be1ac24aa (diff) | |
download | mariadb-git-f8839a70bdc8b712f0fa5a5fe095a645c11b3c0a.tar.gz |
Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base
into weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge
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; }; |