From: Date: March 12 2010 7:52am Subject: bzr push into mysql-pe branch (Sergey.Glukhov:3966 to 3967) List-Archive: http://lists.mysql.org/commits/103051 Message-Id: <0KZ500L45PQ4JIF0@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_iU225bkKsaUQlp9rlvO9xw)" --Boundary_(ID_iU225bkKsaUQlp9rlvO9xw) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline 3967 Sergey Glukhov 2010-03-12 [merge] 5.1-bugteam->mysql-pe merge @ mysql-test/r/metadata.result 5.1-bugteam->mysql-pe merge @ mysql-test/t/metadata.test 5.1-bugteam->mysql-pe merge @ sql/item.cc 5.1-bugteam->mysql-pe merge @ sql/item.h 5.1-bugteam->mysql-pe merge @ sql/table.cc 5.1-bugteam->mysql-pe merge modified: mysql-test/r/metadata.result mysql-test/t/metadata.test sql/item.cc sql/item.h sql/table.cc 3966 Sergey Vojtovich 2010-03-11 [merge] Merge fix for BUG44178 to mysql-pe. modified: client/mysql.cc === modified file 'mysql-test/r/metadata.result' --- a/mysql-test/r/metadata.result 2010-02-11 04:17:25 +0000 +++ b/mysql-test/r/metadata.result 2010-03-12 06:49:07 +0000 @@ -198,6 +198,17 @@ def IF(i, d, d) IF(i, d, d) 10 10 10 def IFNULL(d, d) IFNULL(d, d) 10 10 10 Y 128 0 63 def LEAST(d, d) LEAST(d, d) 10 10 10 Y 128 0 63 DROP TABLE t1; +# +# Bug#41788 mysql_fetch_field returns org_table == table by a view +# +CREATE TABLE t1 (f1 INT); +CREATE VIEW v1 AS SELECT f1 FROM t1; +SELECT f1 FROM v1 va; +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def test v1 va f1 f1 3 11 0 Y 32768 0 63 +f1 +DROP VIEW v1; +DROP TABLE t1; End of 5.0 tests create table t1( # numeric types === modified file 'mysql-test/t/metadata.test' --- a/mysql-test/t/metadata.test 2009-09-30 10:25:50 +0000 +++ b/mysql-test/t/metadata.test 2010-03-12 06:49:07 +0000 @@ -129,6 +129,19 @@ SELECT COALESCE(d, d), IFNULL(d, d), IF( DROP TABLE t1; +--echo # +--echo # Bug#41788 mysql_fetch_field returns org_table == table by a view +--echo # + +CREATE TABLE t1 (f1 INT); +CREATE VIEW v1 AS SELECT f1 FROM t1; +--enable_metadata +SELECT f1 FROM v1 va; +--disable_metadata + +DROP VIEW v1; +DROP TABLE t1; + --echo End of 5.0 tests # Verify that column metadata is correct for all possible data types. === modified file 'sql/item.cc' --- a/sql/item.cc 2010-03-11 11:13:13 +0000 +++ b/sql/item.cc 2010-03-12 06:49:07 +0000 @@ -588,6 +588,18 @@ Item_ident::Item_ident(Name_resolution_c } +Item_ident::Item_ident(TABLE_LIST *view_arg, const char *field_name_arg) + :orig_db_name(NullS), orig_table_name(view_arg->table_name), + orig_field_name(field_name_arg), context(&view_arg->view->select_lex.context), + db_name(NullS), table_name(view_arg->alias), + field_name(field_name_arg), + alias_name_used(FALSE), cached_field_index(NO_CACHED_FIELD_INDEX), + cached_table(NULL), depended_from(NULL) +{ + name = (char*) field_name_arg; +} + + /** Constructor used by Item_field & Item_*_ref (see Item comment) */ @@ -6054,6 +6066,20 @@ Item_ref::Item_ref(Name_resolution_conte } +Item_ref::Item_ref(TABLE_LIST *view_arg, Item **item, + const char *field_name_arg, bool alias_name_used_arg) + :Item_ident(view_arg, field_name_arg), + result_field(NULL), ref(item) +{ + alias_name_used= alias_name_used_arg; + /* + This constructor is used to create some internal references over fixed items + */ + if (ref && *ref && (*ref)->fixed) + set_properties(); +} + + /** Resolve the name of a reference to a column reference. === modified file 'sql/item.h' --- a/sql/item.h 2010-03-09 15:48:05 +0000 +++ b/sql/item.h 2010-03-12 06:49:07 +0000 @@ -1580,6 +1580,7 @@ public: const char *db_name_arg, const char *table_name_arg, const char *field_name_arg); Item_ident(THD *thd, Item_ident *item); + Item_ident(TABLE_LIST *view_arg, const char *field_name_arg); const char *full_name() const; void cleanup(); bool remove_dependence_processor(uchar * arg); @@ -2451,6 +2452,8 @@ public: Item_ref(Name_resolution_context *context_arg, Item **item, const char *table_name_arg, const char *field_name_arg, bool alias_name_used_arg= FALSE); + Item_ref(TABLE_LIST *view_arg, Item **item, + const char *field_name_arg, bool alias_name_used_arg= FALSE); /* Constructor need to process subselect with temporary tables (see Item) */ Item_ref(THD *thd, Item_ref *item) @@ -2568,6 +2571,12 @@ public: {} /* Constructor need to process subselect with temporary tables (see Item) */ Item_direct_ref(THD *thd, Item_direct_ref *item) : Item_ref(thd, item) {} + Item_direct_ref(TABLE_LIST *view_arg, Item **item, + const char *field_name_arg, + bool alias_name_used_arg= FALSE) + :Item_ref(view_arg, item, field_name_arg, + alias_name_used_arg) + {} double val_real(); longlong val_int(); @@ -2593,6 +2602,10 @@ public: /* Constructor need to process subselect with temporary tables (see Item) */ Item_direct_view_ref(THD *thd, Item_direct_ref *item) :Item_direct_ref(thd, item) {} + Item_direct_view_ref(TABLE_LIST *view_arg, Item **item, + const char *field_name_arg) + :Item_direct_ref(view_arg, item, field_name_arg) + {} bool fix_fields(THD *, Item **); void fix_after_pullout(st_select_lex *new_parent, Item **ref); === modified file 'sql/table.cc' --- a/sql/table.cc 2010-02-25 13:55:28 +0000 +++ b/sql/table.cc 2010-03-12 06:49:07 +0000 @@ -4145,9 +4145,7 @@ Item *create_view_field(THD *thd, TABLE_ { DBUG_RETURN(field); } - Item *item= new Item_direct_view_ref(&view->view->select_lex.context, - field_ref, view->alias, - name); + Item *item= new Item_direct_view_ref(view, field_ref, name); DBUG_RETURN(item); } --Boundary_(ID_iU225bkKsaUQlp9rlvO9xw) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/sergey.glukhov@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/sergey.glukhov@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped # target_branch: file:///home/gluh/MySQL/mysql-pe/ # testament_sha1: 7865d128bbfdd7fa813587787fda58904663dc98 # timestamp: 2010-03-12 10:52:39 +0400 # source_branch: file:///home/gluh/MySQL/mysql-5.1-bugteam/ # base_revision_id: svoj@stripped # # Begin bundle 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 --Boundary_(ID_iU225bkKsaUQlp9rlvO9xw)--