• unknown's avatar
    Fix for bug #29444: crash with partition refering to table in create-select · 492f0e3f
    unknown authored
    Problem: creating a partitioned table during name resolution for the 
    partition function we search for column names in all parts of the
    CREATE TABLE query. It is superfluous (and wrong) sometimes.
    
    Fix: launch name resolution for the partition function against
    the table we're creating.
    
    
    mysql-test/r/partition.result:
      Fix for bug #29444: crash with partition refering to table in create-select
        - test result.
    mysql-test/t/partition.test:
      Fix for bug #29444: crash with partition refering to table in create-select
        - test result.
    sql/item.cc:
      Fix for bug #29444: crash with partition refering to table in create-select
        - LEX::use_only_table_context introduced, which is used in the 
          Item_field::fix_fields() to resolve names only against
          context->first_name_resolution_table/last_name_resolution_table.
    sql/sql_lex.cc:
      Fix for bug #29444: crash with partition refering to table in create-select
        - LEX::use_only_table_context introduced, which is used in the 
          Item_field::fix_fields() to resolve names only against
          context->first_name_resolution_table/last_name_resolution_table.
    sql/sql_lex.h:
      Fix for bug #29444: crash with partition refering to table in create-select
        - LEX::use_only_table_context introduced, which is used in the 
          Item_field::fix_fields() to resolve names only against
          context->first_name_resolution_table/last_name_resolution_table.
    sql/sql_partition.cc:
      Fix for bug #29444: crash with partition refering to table in create-select
        - set the lex->use_only_table_context before the func_expr->fix_fields()
          call to ensure we're resolving names against the table we're creating;
          then restore it back after the call.
    492f0e3f
sql_lex.h 55.4 KB