• unknown's avatar
    A fix and test case for Bug#6050 "EXECUTE stmt reports ambiguous field · 4512a46e
    unknown authored
    names with ident. tables fr. diff. schemata": revise all uses of
    Item_field and make them prepared-statements friendly when necessary.
    
    
    mysql-test/r/ps.result:
      Test results fixed: the test case for Bug#6050
    mysql-test/r/ps_1general.result:
      Test results fixed: in prepared statements we expand '*' to a list
      of fully qualified fields (db.table.column).
    mysql-test/t/ps.test:
      A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with 
      ident. tables fr. diff. schemata"
    sql/item.cc:
      Revise all Item_field constructors: we need to make sure that no Item_field
      object points to unaccessible memory in prepared statements.
    sql/item.h:
      Revise all Item_field constructors: we need to make sure that no Item_field
      object points to unaccessible memory in prepared statements.
    sql/sql_base.cc:
      Item_field use changed to be prepared statements friendly.
    sql/sql_class.h:
      New check of Item_arena state.
    sql/sql_union.cc:
      Fixing the problem with name resolving in UNION and prepared statements:
      In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
      selected items is represented as a List<Item_field>, where each 
      Item_field points to a field of temporary table.
      But the temporary table is created anew on each execution of the prepared 
      statement. So on each subsequent execution we should reset Item_field
      items to point to fields from freshly-created temporary table.
    sql/table.h:
      Comment TABLE member.
    4512a46e
sql_union.cc 16.5 KB