diff options
author | Alexander Barkov <bar@mariadb.org> | 2017-08-18 18:29:33 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2017-08-18 18:29:33 +0400 |
commit | 4305c3ca5797ba4157384c363579be8e934e2fb1 (patch) | |
tree | aa48de35235e7d087d385f3c28edeacdf11e9d89 /sql/sp_head.h | |
parent | a70809c0fcd5eca38c5f6bafa92270f1704a0597 (diff) | |
download | mariadb-git-4305c3ca5797ba4157384c363579be8e934e2fb1.tar.gz |
MDEV-13581 ROW TYPE OF t1 and t1%ROWTYPE for routine parameters
Diffstat (limited to 'sql/sp_head.h')
-rw-r--r-- | sql/sp_head.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/sql/sp_head.h b/sql/sp_head.h index 730b2c11b43..c3dab609823 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -676,6 +676,8 @@ public: def->field_name= *name; return fill_spvar_definition(thd, def); } + +private: /** Set a column type reference for a parameter definition */ @@ -687,6 +689,31 @@ public: m_flags|= sp_head::HAS_COLUMN_TYPE_REFS; } + void fill_spvar_using_table_rowtype_reference(THD *thd, + sp_variable *spvar, + Table_ident *ref) + { + spvar->field_def.set_table_rowtype_ref(ref); + spvar->field_def.field_name= spvar->name; + fill_spvar_definition(thd, &spvar->field_def); + m_flags|= sp_head::HAS_COLUMN_TYPE_REFS; + } + +public: + bool spvar_fill_row(THD *thd, sp_variable *spvar, Row_definition_list *def); + bool spvar_fill_type_reference(THD *thd, sp_variable *spvar, + const LEX_CSTRING &table, + const LEX_CSTRING &column); + bool spvar_fill_type_reference(THD *thd, sp_variable *spvar, + const LEX_CSTRING &db, + const LEX_CSTRING &table, + const LEX_CSTRING &column); + bool spvar_fill_table_rowtype_reference(THD *thd, sp_variable *spvar, + const LEX_CSTRING &table); + bool spvar_fill_table_rowtype_reference(THD *thd, sp_variable *spvar, + const LEX_CSTRING &db, + const LEX_CSTRING &table); + void set_chistics(const st_sp_chistics &chistics); void set_info(longlong created, longlong modified, const st_sp_chistics &chistics, sql_mode_t sql_mode); |