• unknown's avatar
    WL#3732 Information schema optimization · 82d28fad
    unknown authored
    
    client/mysqldump.c:
      table type compare is changed to case insensitive
    mysql-test/r/information_schema.result:
      test result
    mysql-test/r/information_schema_db.result:
      result fix
    mysql-test/suite/ndb/r/ndb_alter_table.result:
      result fix
    mysql-test/suite/ndb/r/ndb_temporary.result:
      result fix
    mysql-test/t/information_schema.test:
      test case
    sql/ha_ndbcluster.cc:
      char* variables are changed to LEX_STRING
    sql/ha_ndbcluster.h:
      char* variables are changed to LEX_STRING
    sql/ha_ndbcluster_binlog.cc:
      char* variables are changed to LEX_STRING
    sql/handler.cc:
      char* variables are changed to LEX_STRING
    sql/handler.h:
      char* variables are changed to LEX_STRING
    sql/sql_base.cc:
      Modified functions which are used during open table process
      according to table opening method and requested_object.
    sql/sql_select.cc:
      Add support for I_S tables into select_describe() function
    sql/sql_show.cc:
      1. Added initialization of 'open_method' to 'st_field_info' structs.
      2. Added initialization of 'i_s_requested_object' to 'ST_SCHEMA_TABLE' structs.
      3. New function which calculates database name and table name values 
         from 'where' condition if it's possible
         void get_lookup_field_values(THD *thd, COND *cond, TABLE_LIST *table,
                                      LOOKUP_FIELD_VALUES *lookup_field_vals);
      4. New function which set table open method
         setup_table_open_method(TABLE_LIST *tables,
                                 ST_SCHEMA_TABLE *schema_table,
                                 enum enum_schema_tables schema_table_idx)
      5. New function
         int make_db_list(THD *thd, List<LEX_STRING> *files,
                          LOOKUP_FIELD_VALUES *lookup_field_vals,
                          bool *with_i_schema)
      6. New function
         int make_table_name_list(THD *thd, List<LEX_STRING> *files, LEX *lex,
                                  LOOKUP_FIELD_VALUES *lookup_field_vals,
                                  bool with_i_schema, LEX_STRING *db_name)
      7. Modified 'get_all_tables' function according to new schema(see wl#3732).
    sql/sql_show.h:
      char* variables are changed to LEX_STRING
    sql/table.cc:
      Modified functions which are used during open table process
      according to table opening method and requested_object.
    sql/table.h:
      1. added new constants(open_method)
      #define SKIP_OPEN_TABLE 0
      #define OPEN_FRM_ONLY   1
      #define OPEN_FULL_TABLE 2
          
      2. Added new field 'open_method' into struct st_field_info;
         uint open_method;
          
      3. Added new field into ST_SCHEMA_TABLE struct
         uint i_s_requested_object;  /* the object we need to open(TABLE | VIEW) */.
      4. Added new field to TABLE_LIST struct.
         uint i_s_requested_object;
         This field is set from ST_SCHEMA_TABLE.i_s_requested_object
         for processed table before opening.
          
      5. Added new fields to TABLE_LIST struct, used for 'explain select' for I_S table
         bool has_db_lookup_value;
         bool has_table_lookup_value;
         uint table_open_method;
    sql/unireg.h:
      added new constants
    82d28fad
information_schema.result 55.1 KB