• unknown's avatar
    Fix bug #11335 View redefines TinyInt(1) column definition · 8296c396
    unknown authored
    Item_type_holder doesn't store information about length and exact type of
    original item which results in redefining length to max_length and geometry 
    type to longtext.
    
    Changed the way derived tables except unions are built. Now they are created
    from original field list instead of list of Item_type_holder.
    
    
    mysql-test/r/subselect.result:
      Fixed wrong test case result. bug#11335
    mysql-test/r/view_grant.result:
       Fixed wrong test case result. bug#11335
    mysql-test/r/view.result:
      Added test case for bug #11335. Fixed wrong test case result.
    mysql-test/t/view.test:
      Test case for bug #11335 View  redefines TinyInt(1) column definition.
    sql/sql_union.cc:
      Fix bug #11335 View redefines TinyInt(1) column definition.
      Changed the way derived tables except unions are built. Now they are created from original field list instead of list of Item_type_holders.
    sql/sql_select.cc:
      Fix bug #11335 View redefines TinyInt(1) column definition.
      Added special handling of DATE/TIME fields to preserve field's type in tmp field creation.
      In create_tmp_field() for Item_field added special handling of case when item have to be able to store NULLs but underlaid field is NOT NULL.
    sql/item_sum.cc:
      Fix bug #11335 View redefines TinyInt(1) column definition.
      Added special handling of DATE/TIME fields to preserve field's type while tmp
      field created in Item_sum_hybrid::create_tmp_field().
    8296c396
sql_union.cc 17.5 KB