~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_show.cc

Merged build changes from Antony.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#include "sql_select.h"                         // For select_describe
21
21
#include "sql_show.h"
22
22
#include "repl_failsafe.h"
23
 
#include <my_dir.h>
 
23
#include <mysys/my_dir.h>
24
24
 
25
25
#define STR_OR_NIL(S) ((S) ? (S) : "<nil>")
26
26
 
168
168
}
169
169
 
170
170
 
171
 
int fill_plugins(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
171
int fill_plugins(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
172
172
{
173
173
  TABLE *table= tables->table;
174
174
 
215
215
  if (wild && !wild[0])
216
216
    wild=0;
217
217
 
218
 
  bzero((char*) &table_list,sizeof(table_list));
 
218
  memset(&table_list, 0, sizeof(table_list));
219
219
 
220
220
  if (!(dirp = my_dir(path,MYF(dir ? MY_WANT_STAT : 0))))
221
221
  {
252
252
               continue;
253
253
       }
254
254
#endif
255
 
      if (!MY_S_ISDIR(file->mystat->st_mode))
 
255
      if (!S_ISDIR(file->mystat->st_mode))
256
256
        continue;
257
257
 
258
258
      file_name_len= filename_to_tablename(file->name, uname, sizeof(uname));
551
551
 
552
552
/* Append directory name (if exists) to CREATE INFO */
553
553
 
554
 
static void append_directory(THD *thd __attribute__((__unused__)),
 
554
static void append_directory(THD *thd __attribute__((unused)),
555
555
                             String *packet, const char *dir_type,
556
556
                             const char *filename)
557
557
{
569
569
 
570
570
#define LIST_PROCESS_HOST_LEN 64
571
571
 
572
 
static bool get_field_default_value(THD *thd __attribute__((__unused__)),
 
572
static bool get_field_default_value(THD *thd __attribute__((unused)),
573
573
                                    Field *timestamp_field,
574
574
                                    Field *field, String *def_value,
575
575
                                    bool quoted)
584
584
  has_now_default= (timestamp_field == field &&
585
585
                    field->unireg_check != Field::TIMESTAMP_UN_FIELD);
586
586
    
587
 
  has_default= (field->type() != FIELD_TYPE_BLOB &&
 
587
  has_default= (field->type() != DRIZZLE_TYPE_BLOB &&
588
588
                !(field->flags & NO_DEFAULT_VALUE_FLAG) &&
589
589
                field->unireg_check != Field::NEXT_NUMBER
590
590
                  && has_now_default);
732
732
 
733
733
    if (flags & NOT_NULL_FLAG)
734
734
      packet->append(STRING_WITH_LEN(" NOT NULL"));
735
 
    else if (field->type() == MYSQL_TYPE_TIMESTAMP)
 
735
    else if (field->type() == DRIZZLE_TYPE_TIMESTAMP)
736
736
    {
737
737
      /*
738
738
        TIMESTAMP field require explicit NULL flag, because unlike
779
779
  }
780
780
 
781
781
  key_info= table->key_info;
782
 
  bzero((char*) &create_info, sizeof(create_info));
 
782
  memset((char*) &create_info, 0, sizeof(create_info));
783
783
  /* Allow update_create_info to update row type */
784
784
  create_info.row_type= share->row_type;
785
785
  file->update_create_info(&create_info);
1045
1045
  return(false);
1046
1046
}
1047
1047
 
1048
 
static void store_key_options(THD *thd __attribute__((__unused__)),
 
1048
static void store_key_options(THD *thd __attribute__((unused)),
1049
1049
                              String *packet, TABLE *table,
1050
1050
                              KEY *key_info)
1051
1051
{
1117
1117
  field_list.push_back(field=new Item_empty_string("db",NAME_CHAR_LEN));
1118
1118
  field->maybe_null=1;
1119
1119
  field_list.push_back(new Item_empty_string("Command",16));
1120
 
  field_list.push_back(new Item_return_int("Time",7, MYSQL_TYPE_LONG));
 
1120
  field_list.push_back(new Item_return_int("Time",7, DRIZZLE_TYPE_LONG));
1121
1121
  field_list.push_back(field=new Item_empty_string("State",30));
1122
1122
  field->maybe_null=1;
1123
1123
  field_list.push_back(field=new Item_empty_string("Info",max_query_length));
1196
1196
    else
1197
1197
      protocol->store(command_name[thd_info->command].str, system_charset_info);
1198
1198
    if (thd_info->start_time)
1199
 
      protocol->store((uint32) (now - thd_info->start_time));
 
1199
      protocol->store((uint32_t) (now - thd_info->start_time));
1200
1200
    else
1201
1201
      protocol->store_null();
1202
1202
    protocol->store(thd_info->state_info, system_charset_info);
1209
1209
}
1210
1210
 
1211
1211
int fill_schema_processlist(THD* thd, TABLE_LIST* tables,
1212
 
                            COND* cond __attribute__((__unused__)))
 
1212
                            COND* cond __attribute__((unused)))
1213
1213
{
1214
1214
  TABLE *table= tables->table;
1215
1215
  CHARSET_INFO *cs= system_charset_info;
1260
1260
        table->field[4]->store(command_name[tmp->command].str,
1261
1261
                               command_name[tmp->command].length, cs);
1262
1262
      /* MYSQL_TIME */
1263
 
      table->field[5]->store((uint32)(tmp->start_time ?
 
1263
      table->field[5]->store((uint32_t)(tmp->start_time ?
1264
1264
                                      now - tmp->start_time : 0), true);
1265
1265
      /* STATE */
1266
1266
      val= (char*) (tmp->net.reading_or_writing ?
1327
1327
      all[a++]= all[b];
1328
1328
  if (a)
1329
1329
  {
1330
 
    bzero(all+a, sizeof(SHOW_VAR)); // writing NULL-element to the end
 
1330
    memset(all+a, 0, sizeof(SHOW_VAR)); // writing NULL-element to the end
1331
1331
    array->elements= a;
1332
1332
  }
1333
1333
  else // array is completely empty - delete it
1578
1578
          end= strmov(buff, *(bool*) value ? "ON" : "OFF");
1579
1579
          break;
1580
1580
        case SHOW_INT:
1581
 
          end= int10_to_str((long) *(uint32*) value, buff, 10);
 
1581
          end= int10_to_str((long) *(uint32_t*) value, buff, 10);
1582
1582
          break;
1583
1583
        case SHOW_HAVE:
1584
1584
        {
1619
1619
        restore_record(table, s->default_values);
1620
1620
        table->field[0]->store(name_buffer, strlen(name_buffer),
1621
1621
                               system_charset_info);
1622
 
        table->field[1]->store(pos, (uint32) (end - pos), system_charset_info);
 
1622
        table->field[1]->store(pos, (uint32_t) (end - pos), system_charset_info);
1623
1623
        table->field[1]->set_notnull();
1624
1624
 
1625
1625
        pthread_mutex_unlock(&LOCK_global_system_variables);
1963
1963
{
1964
1964
  LEX *lex= thd->lex;
1965
1965
  const char *wild= lex->wild ? lex->wild->ptr() : NullS;
1966
 
  bzero((char*) lookup_field_values, sizeof(LOOKUP_FIELD_VALUES));
 
1966
  memset((char*) lookup_field_values, 0, sizeof(LOOKUP_FIELD_VALUES));
1967
1967
  switch (lex->sql_command) {
1968
1968
  case SQLCOM_SHOW_DATABASES:
1969
1969
    if (wild)
2380
2380
 
2381
2381
static uint get_table_open_method(TABLE_LIST *tables,
2382
2382
                                  ST_SCHEMA_TABLE *schema_table,
2383
 
                                  enum enum_schema_tables schema_table_idx __attribute__((__unused__)))
 
2383
                                  enum enum_schema_tables schema_table_idx __attribute__((unused)))
2384
2384
{
2385
2385
  /*
2386
2386
    determine which method will be used for table opening
2423
2423
                                      ST_SCHEMA_TABLE *schema_table,
2424
2424
                                      LEX_STRING *db_name,
2425
2425
                                      LEX_STRING *table_name,
2426
 
                                      enum enum_schema_tables schema_table_idx __attribute__((__unused__)))
 
2426
                                      enum enum_schema_tables schema_table_idx __attribute__((unused)))
2427
2427
{
2428
2428
  TABLE *table= tables->table;
2429
2429
  TABLE_SHARE *share;
2434
2434
  char key[MAX_DBKEY_LENGTH];
2435
2435
  uint key_length;
2436
2436
 
2437
 
  bzero((char*) &table_list, sizeof(TABLE_LIST));
2438
 
  bzero((char*) &tbl, sizeof(TABLE));
 
2437
  memset((char*) &table_list, 0, sizeof(TABLE_LIST));
 
2438
  memset((char*) &tbl, 0, sizeof(TABLE));
2439
2439
 
2440
2440
  table_list.table_name= table_name->str;
2441
2441
  table_list.db= db_name->str;
3003
3003
  table->field[offset]->store(column_type.ptr(),
3004
3004
                         (tmp_buff ? tmp_buff - column_type.ptr() :
3005
3005
                          column_type.length()), cs);
3006
 
  is_blob= (field->type() == MYSQL_TYPE_BLOB);
 
3006
  is_blob= (field->type() == DRIZZLE_TYPE_BLOB);
3007
3007
  if (field->has_charset() || is_blob ||
3008
 
      field->real_type() == MYSQL_TYPE_VARCHAR ||  // For varbinary type
3009
 
      field->real_type() == MYSQL_TYPE_STRING)     // For binary type
 
3008
      field->real_type() == DRIZZLE_TYPE_VARCHAR)  // For varbinary type
3010
3009
  {
3011
 
    uint32 octet_max_length= field->max_display_length();
3012
 
    if (is_blob && octet_max_length != (uint32) 4294967295U)
 
3010
    uint32_t octet_max_length= field->max_display_length();
 
3011
    if (is_blob && octet_max_length != (uint32_t) 4294967295U)
3013
3012
      octet_max_length /= field->charset()->mbmaxlen;
3014
3013
    int64_t char_max_len= is_blob ? 
3015
3014
      (int64_t) octet_max_length / field->charset()->mbminlen :
3029
3028
 
3030
3029
  decimals= field->decimals();
3031
3030
  switch (field->type()) {
3032
 
  case MYSQL_TYPE_NEWDECIMAL:
 
3031
  case DRIZZLE_TYPE_NEWDECIMAL:
3033
3032
    field_length= ((Field_new_decimal*) field)->precision;
3034
3033
    break;
3035
 
  case MYSQL_TYPE_TINY:
3036
 
  case MYSQL_TYPE_SHORT:
3037
 
  case MYSQL_TYPE_LONG:
3038
 
  case MYSQL_TYPE_LONGLONG:
 
3034
  case DRIZZLE_TYPE_TINY:
 
3035
  case DRIZZLE_TYPE_SHORT:
 
3036
  case DRIZZLE_TYPE_LONG:
 
3037
  case DRIZZLE_TYPE_LONGLONG:
3039
3038
    field_length= field->max_display_length() - 1;
3040
3039
    break;
3041
 
  case MYSQL_TYPE_DOUBLE:
 
3040
  case DRIZZLE_TYPE_DOUBLE:
3042
3041
    field_length= field->field_length;
3043
3042
    if (decimals == NOT_FIXED_DEC)
3044
3043
      decimals= -1;                           // return NULL
3207
3206
 
3208
3207
 
3209
3208
 
3210
 
int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
3209
int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
3211
3210
{
3212
3211
  CHARSET_INFO **cs;
3213
3212
  const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS;
3238
3237
}
3239
3238
 
3240
3239
 
3241
 
int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
3240
int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
3242
3241
{
3243
3242
  CHARSET_INFO **cs;
3244
3243
  const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS;
3280
3279
}
3281
3280
 
3282
3281
 
3283
 
int fill_schema_coll_charset_app(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
3282
int fill_schema_coll_charset_app(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
3284
3283
{
3285
3284
  CHARSET_INFO **cs;
3286
3285
  TABLE *table= tables->table;
3584
3583
}
3585
3584
 
3586
3585
 
3587
 
int fill_open_tables(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
3586
int fill_open_tables(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
3588
3587
{
3589
3588
  const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS;
3590
3589
  TABLE *table= tables->table;
3608
3607
}
3609
3608
 
3610
3609
 
3611
 
int fill_variables(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
3610
int fill_variables(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
3612
3611
{
3613
3612
  int res= 0;
3614
3613
  LEX *lex= thd->lex;
3631
3630
}
3632
3631
 
3633
3632
 
3634
 
int fill_status(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((__unused__)))
 
3633
int fill_status(THD *thd, TABLE_LIST *tables, COND *cond __attribute__((unused)))
3635
3634
{
3636
3635
  LEX *lex= thd->lex;
3637
3636
  const char *wild= lex->wild ? lex->wild->ptr() : NullS;
3769
3768
    0   table not found
3770
3769
    1   found the schema table
3771
3770
*/
3772
 
static bool find_schema_table_in_plugin(THD *thd __attribute__((__unused__)),
 
3771
static bool find_schema_table_in_plugin(THD *thd __attribute__((unused)),
3773
3772
                                           plugin_ref plugin,
3774
3773
                                           void* p_table)
3775
3774
{
3857
3856
  for (; fields_info->field_name; fields_info++)
3858
3857
  {
3859
3858
    switch (fields_info->field_type) {
3860
 
    case MYSQL_TYPE_TINY:
3861
 
    case MYSQL_TYPE_LONG:
3862
 
    case MYSQL_TYPE_SHORT:
3863
 
    case MYSQL_TYPE_LONGLONG:
 
3859
    case DRIZZLE_TYPE_TINY:
 
3860
    case DRIZZLE_TYPE_LONG:
 
3861
    case DRIZZLE_TYPE_SHORT:
 
3862
    case DRIZZLE_TYPE_LONGLONG:
3864
3863
      if (!(item= new Item_return_int(fields_info->field_name,
3865
3864
                                      fields_info->field_length,
3866
3865
                                      fields_info->field_type,
3870
3869
      }
3871
3870
      item->unsigned_flag= (fields_info->field_flags & MY_I_S_UNSIGNED);
3872
3871
      break;
3873
 
    case MYSQL_TYPE_NEWDATE:
3874
 
    case MYSQL_TYPE_TIME:
3875
 
    case MYSQL_TYPE_TIMESTAMP:
3876
 
    case MYSQL_TYPE_DATETIME:
 
3872
    case DRIZZLE_TYPE_NEWDATE:
 
3873
    case DRIZZLE_TYPE_TIME:
 
3874
    case DRIZZLE_TYPE_TIMESTAMP:
 
3875
    case DRIZZLE_TYPE_DATETIME:
3877
3876
      if (!(item=new Item_return_date_time(fields_info->field_name,
3878
3877
                                           fields_info->field_type)))
3879
3878
      {
3880
3879
        return(0);
3881
3880
      }
3882
3881
      break;
3883
 
    case MYSQL_TYPE_DOUBLE:
 
3882
    case DRIZZLE_TYPE_DOUBLE:
3884
3883
      if ((item= new Item_float(fields_info->field_name, 0.0, NOT_FIXED_DEC, 
3885
3884
                           fields_info->field_length)) == NULL)
3886
3885
        return(NULL);
3887
3886
      break;
3888
 
    case MYSQL_TYPE_NEWDECIMAL:
 
3887
    case DRIZZLE_TYPE_NEWDECIMAL:
3889
3888
      if (!(item= new Item_decimal((int64_t) fields_info->value, false)))
3890
3889
      {
3891
3890
        return(0);
3900
3899
      item->set_name(fields_info->field_name,
3901
3900
                     strlen(fields_info->field_name), cs);
3902
3901
      break;
3903
 
    case MYSQL_TYPE_BLOB:
 
3902
    case DRIZZLE_TYPE_BLOB:
3904
3903
      if (!(item= new Item_blob(fields_info->field_name,
3905
3904
                                fields_info->field_length)))
3906
3905
      {
3908
3907
      }
3909
3908
      break;
3910
3909
    default:
3911
 
      /* Don't let unimplemented types pass through. Could be a grave error. */
3912
 
      assert(fields_info->field_type == MYSQL_TYPE_STRING);
3913
 
 
3914
3910
      if (!(item= new Item_empty_string("", fields_info->field_length, cs)))
3915
3911
      {
3916
3912
        return(0);
4310
4306
 
4311
4307
ST_FIELD_INFO schema_fields_info[]=
4312
4308
{
4313
 
  {"CATALOG_NAME", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4314
 
  {"SCHEMA_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Database",
4315
 
   SKIP_OPEN_TABLE},
4316
 
  {"DEFAULT_CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0,
4317
 
   SKIP_OPEN_TABLE},
4318
 
  {"DEFAULT_COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4319
 
  {"SQL_PATH", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4320
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4309
  {"CATALOG_NAME", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4310
  {"SCHEMA_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Database",
 
4311
   SKIP_OPEN_TABLE},
 
4312
  {"DEFAULT_CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4313
   SKIP_OPEN_TABLE},
 
4314
  {"DEFAULT_COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4315
  {"SQL_PATH", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4316
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4321
4317
};
4322
4318
 
4323
4319
 
4324
4320
ST_FIELD_INFO tables_fields_info[]=
4325
4321
{
4326
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4327
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4328
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Name",
 
4322
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4323
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4324
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Name",
4329
4325
   SKIP_OPEN_TABLE},
4330
 
  {"TABLE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FRM_ONLY},
4331
 
  {"ENGINE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, "Engine", OPEN_FRM_ONLY},
4332
 
  {"VERSION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
 
4326
  {"TABLE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
 
4327
  {"ENGINE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, "Engine", OPEN_FRM_ONLY},
 
4328
  {"VERSION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4333
4329
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Version", OPEN_FRM_ONLY},
4334
 
  {"ROW_FORMAT", 10, MYSQL_TYPE_STRING, 0, 1, "Row_format", OPEN_FULL_TABLE},
4335
 
  {"TABLE_ROWS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
 
4330
  {"ROW_FORMAT", 10, DRIZZLE_TYPE_VARCHAR, 0, 1, "Row_format", OPEN_FULL_TABLE},
 
4331
  {"TABLE_ROWS", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4336
4332
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Rows", OPEN_FULL_TABLE},
4337
 
  {"AVG_ROW_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, 
 
4333
  {"AVG_ROW_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 
4338
4334
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Avg_row_length", OPEN_FULL_TABLE},
4339
 
  {"DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, 
 
4335
  {"DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 
4340
4336
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_length", OPEN_FULL_TABLE},
4341
 
  {"MAX_DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
 
4337
  {"MAX_DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4342
4338
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Max_data_length", OPEN_FULL_TABLE},
4343
 
  {"INDEX_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, 
 
4339
  {"INDEX_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 
4344
4340
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Index_length", OPEN_FULL_TABLE},
4345
 
  {"DATA_FREE", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
 
4341
  {"DATA_FREE", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4346
4342
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_free", OPEN_FULL_TABLE},
4347
 
  {"AUTO_INCREMENT", MY_INT64_NUM_DECIMAL_DIGITS , MYSQL_TYPE_LONGLONG, 0, 
 
4343
  {"AUTO_INCREMENT", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG, 0, 
4348
4344
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Auto_increment", OPEN_FULL_TABLE},
4349
 
  {"CREATE_TIME", 0, MYSQL_TYPE_DATETIME, 0, 1, "Create_time", OPEN_FULL_TABLE},
4350
 
  {"UPDATE_TIME", 0, MYSQL_TYPE_DATETIME, 0, 1, "Update_time", OPEN_FULL_TABLE},
4351
 
  {"CHECK_TIME", 0, MYSQL_TYPE_DATETIME, 0, 1, "Check_time", OPEN_FULL_TABLE},
4352
 
  {"TABLE_COLLATION", 64, MYSQL_TYPE_STRING, 0, 1, "Collation", OPEN_FRM_ONLY},
4353
 
  {"CHECKSUM", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
 
4345
  {"CREATE_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Create_time", OPEN_FULL_TABLE},
 
4346
  {"UPDATE_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Update_time", OPEN_FULL_TABLE},
 
4347
  {"CHECK_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Check_time", OPEN_FULL_TABLE},
 
4348
  {"TABLE_COLLATION", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY},
 
4349
  {"CHECKSUM", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4354
4350
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Checksum", OPEN_FULL_TABLE},
4355
 
  {"CREATE_OPTIONS", 255, MYSQL_TYPE_STRING, 0, 1, "Create_options",
 
4351
  {"CREATE_OPTIONS", 255, DRIZZLE_TYPE_VARCHAR, 0, 1, "Create_options",
4356
4352
   OPEN_FRM_ONLY},
4357
 
  {"TABLE_COMMENT", TABLE_COMMENT_MAXLEN, MYSQL_TYPE_STRING, 0, 0, "Comment", OPEN_FRM_ONLY},
4358
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4353
  {"TABLE_COMMENT", TABLE_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Comment", OPEN_FRM_ONLY},
 
4354
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4359
4355
};
4360
4356
 
4361
4357
 
4362
4358
ST_FIELD_INFO columns_fields_info[]=
4363
4359
{
4364
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FRM_ONLY},
4365
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FRM_ONLY},
4366
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FRM_ONLY},
4367
 
  {"COLUMN_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Field",
 
4360
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY},
 
4361
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
 
4362
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
 
4363
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Field",
4368
4364
   OPEN_FRM_ONLY},
4369
 
  {"ORDINAL_POSITION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
 
4365
  {"ORDINAL_POSITION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4370
4366
   MY_I_S_UNSIGNED, 0, OPEN_FRM_ONLY},
4371
 
  {"COLUMN_DEFAULT", MAX_FIELD_VARCHARLENGTH, MYSQL_TYPE_STRING, 0,
 
4367
  {"COLUMN_DEFAULT", MAX_FIELD_VARCHARLENGTH, DRIZZLE_TYPE_VARCHAR, 0,
4372
4368
   1, "Default", OPEN_FRM_ONLY},
4373
 
  {"IS_NULLABLE", 3, MYSQL_TYPE_STRING, 0, 0, "Null", OPEN_FRM_ONLY},
4374
 
  {"DATA_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FRM_ONLY},
4375
 
  {"CHARACTER_MAXIMUM_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG,
4376
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4377
 
  {"CHARACTER_OCTET_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS , MYSQL_TYPE_LONGLONG,
4378
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4379
 
  {"NUMERIC_PRECISION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG,
4380
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4381
 
  {"NUMERIC_SCALE", MY_INT64_NUM_DECIMAL_DIGITS , MYSQL_TYPE_LONGLONG,
4382
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4383
 
  {"CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FRM_ONLY},
4384
 
  {"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 1, "Collation", OPEN_FRM_ONLY},
4385
 
  {"COLUMN_TYPE", 65535, MYSQL_TYPE_STRING, 0, 0, "Type", OPEN_FRM_ONLY},
4386
 
  {"COLUMN_KEY", 3, MYSQL_TYPE_STRING, 0, 0, "Key", OPEN_FRM_ONLY},
4387
 
  {"EXTRA", 27, MYSQL_TYPE_STRING, 0, 0, "Extra", OPEN_FRM_ONLY},
4388
 
  {"PRIVILEGES", 80, MYSQL_TYPE_STRING, 0, 0, "Privileges", OPEN_FRM_ONLY},
4389
 
  {"COLUMN_COMMENT", COLUMN_COMMENT_MAXLEN, MYSQL_TYPE_STRING, 0, 0, "Comment", OPEN_FRM_ONLY},
4390
 
  {"STORAGE", 8, MYSQL_TYPE_STRING, 0, 0, "Storage", OPEN_FRM_ONLY},
4391
 
  {"FORMAT", 8, MYSQL_TYPE_STRING, 0, 0, "Format", OPEN_FRM_ONLY},
4392
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4369
  {"IS_NULLABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Null", OPEN_FRM_ONLY},
 
4370
  {"DATA_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
 
4371
  {"CHARACTER_MAXIMUM_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG,
 
4372
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
 
4373
  {"CHARACTER_OCTET_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG,
 
4374
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
 
4375
  {"NUMERIC_PRECISION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG,
 
4376
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
 
4377
  {"NUMERIC_SCALE", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG,
 
4378
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
 
4379
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY},
 
4380
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY},
 
4381
  {"COLUMN_TYPE", 65535, DRIZZLE_TYPE_VARCHAR, 0, 0, "Type", OPEN_FRM_ONLY},
 
4382
  {"COLUMN_KEY", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Key", OPEN_FRM_ONLY},
 
4383
  {"EXTRA", 27, DRIZZLE_TYPE_VARCHAR, 0, 0, "Extra", OPEN_FRM_ONLY},
 
4384
  {"PRIVILEGES", 80, DRIZZLE_TYPE_VARCHAR, 0, 0, "Privileges", OPEN_FRM_ONLY},
 
4385
  {"COLUMN_COMMENT", COLUMN_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Comment", OPEN_FRM_ONLY},
 
4386
  {"STORAGE", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, "Storage", OPEN_FRM_ONLY},
 
4387
  {"FORMAT", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, "Format", OPEN_FRM_ONLY},
 
4388
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4393
4389
};
4394
4390
 
4395
4391
 
4396
4392
ST_FIELD_INFO charsets_fields_info[]=
4397
4393
{
4398
 
  {"CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 0, "Charset",
4399
 
   SKIP_OPEN_TABLE},
4400
 
  {"DEFAULT_COLLATE_NAME", 64, MYSQL_TYPE_STRING, 0, 0, "Default collation",
4401
 
   SKIP_OPEN_TABLE},
4402
 
  {"DESCRIPTION", 60, MYSQL_TYPE_STRING, 0, 0, "Description",
4403
 
   SKIP_OPEN_TABLE},
4404
 
  {"MAXLEN", 3, MYSQL_TYPE_LONGLONG, 0, 0, "Maxlen", SKIP_OPEN_TABLE},
4405
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4394
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Charset",
 
4395
   SKIP_OPEN_TABLE},
 
4396
  {"DEFAULT_COLLATE_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Default collation",
 
4397
   SKIP_OPEN_TABLE},
 
4398
  {"DESCRIPTION", 60, DRIZZLE_TYPE_VARCHAR, 0, 0, "Description",
 
4399
   SKIP_OPEN_TABLE},
 
4400
  {"MAXLEN", 3, DRIZZLE_TYPE_LONGLONG, 0, 0, "Maxlen", SKIP_OPEN_TABLE},
 
4401
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4406
4402
};
4407
4403
 
4408
4404
 
4409
4405
ST_FIELD_INFO collation_fields_info[]=
4410
4406
{
4411
 
  {"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 0, "Collation", SKIP_OPEN_TABLE},
4412
 
  {"CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 0, "Charset",
4413
 
   SKIP_OPEN_TABLE},
4414
 
  {"ID", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, 0, "Id",
4415
 
   SKIP_OPEN_TABLE},
4416
 
  {"IS_DEFAULT", 3, MYSQL_TYPE_STRING, 0, 0, "Default", SKIP_OPEN_TABLE},
4417
 
  {"IS_COMPILED", 3, MYSQL_TYPE_STRING, 0, 0, "Compiled", SKIP_OPEN_TABLE},
4418
 
  {"SORTLEN", 3, MYSQL_TYPE_LONGLONG, 0, 0, "Sortlen", SKIP_OPEN_TABLE},
4419
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4407
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Collation", SKIP_OPEN_TABLE},
 
4408
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Charset",
 
4409
   SKIP_OPEN_TABLE},
 
4410
  {"ID", MY_INT32_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 0, "Id",
 
4411
   SKIP_OPEN_TABLE},
 
4412
  {"IS_DEFAULT", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Default", SKIP_OPEN_TABLE},
 
4413
  {"IS_COMPILED", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Compiled", SKIP_OPEN_TABLE},
 
4414
  {"SORTLEN", 3, DRIZZLE_TYPE_LONGLONG, 0, 0, "Sortlen", SKIP_OPEN_TABLE},
 
4415
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4420
4416
};
4421
4417
 
4422
4418
 
4423
4419
ST_FIELD_INFO events_fields_info[]=
4424
4420
{
4425
 
  {"EVENT_CATALOG", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4426
 
  {"EVENT_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Db",
4427
 
   SKIP_OPEN_TABLE},
4428
 
  {"EVENT_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Name",
4429
 
   SKIP_OPEN_TABLE},
4430
 
  {"DEFINER", 77, MYSQL_TYPE_STRING, 0, 0, "Definer", SKIP_OPEN_TABLE},
4431
 
  {"TIME_ZONE", 64, MYSQL_TYPE_STRING, 0, 0, "Time zone", SKIP_OPEN_TABLE},
4432
 
  {"EVENT_BODY", 8, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4433
 
  {"EVENT_DEFINITION", 65535, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4434
 
  {"EVENT_TYPE", 9, MYSQL_TYPE_STRING, 0, 0, "Type", SKIP_OPEN_TABLE},
4435
 
  {"EXECUTE_AT", 0, MYSQL_TYPE_DATETIME, 0, 1, "Execute at", SKIP_OPEN_TABLE},
4436
 
  {"INTERVAL_VALUE", 256, MYSQL_TYPE_STRING, 0, 1, "Interval value",
4437
 
   SKIP_OPEN_TABLE},
4438
 
  {"INTERVAL_FIELD", 18, MYSQL_TYPE_STRING, 0, 1, "Interval field",
4439
 
   SKIP_OPEN_TABLE},
4440
 
  {"SQL_MODE", 65535, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4441
 
  {"STARTS", 0, MYSQL_TYPE_DATETIME, 0, 1, "Starts", SKIP_OPEN_TABLE},
4442
 
  {"ENDS", 0, MYSQL_TYPE_DATETIME, 0, 1, "Ends", SKIP_OPEN_TABLE},
4443
 
  {"STATUS", 18, MYSQL_TYPE_STRING, 0, 0, "Status", SKIP_OPEN_TABLE},
4444
 
  {"ON_COMPLETION", 12, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4445
 
  {"CREATED", 0, MYSQL_TYPE_DATETIME, 0, 0, 0, SKIP_OPEN_TABLE},
4446
 
  {"LAST_ALTERED", 0, MYSQL_TYPE_DATETIME, 0, 0, 0, SKIP_OPEN_TABLE},
4447
 
  {"LAST_EXECUTED", 0, MYSQL_TYPE_DATETIME, 0, 1, 0, SKIP_OPEN_TABLE},
4448
 
  {"EVENT_COMMENT", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4449
 
  {"ORIGINATOR", 10, MYSQL_TYPE_LONGLONG, 0, 0, "Originator", SKIP_OPEN_TABLE},
4450
 
  {"CHARACTER_SET_CLIENT", MY_CS_NAME_SIZE, MYSQL_TYPE_STRING, 0, 0,
 
4421
  {"EVENT_CATALOG", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4422
  {"EVENT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Db",
 
4423
   SKIP_OPEN_TABLE},
 
4424
  {"EVENT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Name",
 
4425
   SKIP_OPEN_TABLE},
 
4426
  {"DEFINER", 77, DRIZZLE_TYPE_VARCHAR, 0, 0, "Definer", SKIP_OPEN_TABLE},
 
4427
  {"TIME_ZONE", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Time zone", SKIP_OPEN_TABLE},
 
4428
  {"EVENT_BODY", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4429
  {"EVENT_DEFINITION", 65535, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4430
  {"EVENT_TYPE", 9, DRIZZLE_TYPE_VARCHAR, 0, 0, "Type", SKIP_OPEN_TABLE},
 
4431
  {"EXECUTE_AT", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Execute at", SKIP_OPEN_TABLE},
 
4432
  {"INTERVAL_VALUE", 256, DRIZZLE_TYPE_VARCHAR, 0, 1, "Interval value",
 
4433
   SKIP_OPEN_TABLE},
 
4434
  {"INTERVAL_FIELD", 18, DRIZZLE_TYPE_VARCHAR, 0, 1, "Interval field",
 
4435
   SKIP_OPEN_TABLE},
 
4436
  {"SQL_MODE", 65535, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4437
  {"STARTS", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Starts", SKIP_OPEN_TABLE},
 
4438
  {"ENDS", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Ends", SKIP_OPEN_TABLE},
 
4439
  {"STATUS", 18, DRIZZLE_TYPE_VARCHAR, 0, 0, "Status", SKIP_OPEN_TABLE},
 
4440
  {"ON_COMPLETION", 12, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4441
  {"CREATED", 0, DRIZZLE_TYPE_DATETIME, 0, 0, 0, SKIP_OPEN_TABLE},
 
4442
  {"LAST_ALTERED", 0, DRIZZLE_TYPE_DATETIME, 0, 0, 0, SKIP_OPEN_TABLE},
 
4443
  {"LAST_EXECUTED", 0, DRIZZLE_TYPE_DATETIME, 0, 1, 0, SKIP_OPEN_TABLE},
 
4444
  {"EVENT_COMMENT", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4445
  {"ORIGINATOR", 10, DRIZZLE_TYPE_LONGLONG, 0, 0, "Originator", SKIP_OPEN_TABLE},
 
4446
  {"CHARACTER_SET_CLIENT", MY_CS_NAME_SIZE, DRIZZLE_TYPE_VARCHAR, 0, 0,
4451
4447
   "character_set_client", SKIP_OPEN_TABLE},
4452
 
  {"COLLATION_CONNECTION", MY_CS_NAME_SIZE, MYSQL_TYPE_STRING, 0, 0,
 
4448
  {"COLLATION_CONNECTION", MY_CS_NAME_SIZE, DRIZZLE_TYPE_VARCHAR, 0, 0,
4453
4449
   "collation_connection", SKIP_OPEN_TABLE},
4454
 
  {"DATABASE_COLLATION", MY_CS_NAME_SIZE, MYSQL_TYPE_STRING, 0, 0,
 
4450
  {"DATABASE_COLLATION", MY_CS_NAME_SIZE, DRIZZLE_TYPE_VARCHAR, 0, 0,
4455
4451
   "Database Collation", SKIP_OPEN_TABLE},
4456
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4452
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4457
4453
};
4458
4454
 
4459
4455
 
4460
4456
 
4461
4457
ST_FIELD_INFO coll_charset_app_fields_info[]=
4462
4458
{
4463
 
  {"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4464
 
  {"CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4465
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4459
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4460
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4461
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4466
4462
};
4467
4463
 
4468
4464
 
4469
4465
ST_FIELD_INFO stat_fields_info[]=
4470
4466
{
4471
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FRM_ONLY},
4472
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FRM_ONLY},
4473
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Table", OPEN_FRM_ONLY},
4474
 
  {"NON_UNIQUE", 1, MYSQL_TYPE_LONGLONG, 0, 0, "Non_unique", OPEN_FRM_ONLY},
4475
 
  {"INDEX_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FRM_ONLY},
4476
 
  {"INDEX_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Key_name",
4477
 
   OPEN_FRM_ONLY},
4478
 
  {"SEQ_IN_INDEX", 2, MYSQL_TYPE_LONGLONG, 0, 0, "Seq_in_index", OPEN_FRM_ONLY},
4479
 
  {"COLUMN_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Column_name",
4480
 
   OPEN_FRM_ONLY},
4481
 
  {"COLLATION", 1, MYSQL_TYPE_STRING, 0, 1, "Collation", OPEN_FRM_ONLY},
4482
 
  {"CARDINALITY", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0, 1,
 
4467
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY},
 
4468
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
 
4469
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table", OPEN_FRM_ONLY},
 
4470
  {"NON_UNIQUE", 1, DRIZZLE_TYPE_LONGLONG, 0, 0, "Non_unique", OPEN_FRM_ONLY},
 
4471
  {"INDEX_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
 
4472
  {"INDEX_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Key_name",
 
4473
   OPEN_FRM_ONLY},
 
4474
  {"SEQ_IN_INDEX", 2, DRIZZLE_TYPE_LONGLONG, 0, 0, "Seq_in_index", OPEN_FRM_ONLY},
 
4475
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Column_name",
 
4476
   OPEN_FRM_ONLY},
 
4477
  {"COLLATION", 1, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY},
 
4478
  {"CARDINALITY", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 1,
4483
4479
   "Cardinality", OPEN_FULL_TABLE},
4484
 
  {"SUB_PART", 3, MYSQL_TYPE_LONGLONG, 0, 1, "Sub_part", OPEN_FRM_ONLY},
4485
 
  {"PACKED", 10, MYSQL_TYPE_STRING, 0, 1, "Packed", OPEN_FRM_ONLY},
4486
 
  {"NULLABLE", 3, MYSQL_TYPE_STRING, 0, 0, "Null", OPEN_FRM_ONLY},
4487
 
  {"INDEX_TYPE", 16, MYSQL_TYPE_STRING, 0, 0, "Index_type", OPEN_FULL_TABLE},
4488
 
  {"COMMENT", 16, MYSQL_TYPE_STRING, 0, 1, "Comment", OPEN_FRM_ONLY},
4489
 
  {"INDEX_COMMENT", INDEX_COMMENT_MAXLEN, MYSQL_TYPE_STRING, 0, 0, "Index_Comment", OPEN_FRM_ONLY},
4490
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4480
  {"SUB_PART", 3, DRIZZLE_TYPE_LONGLONG, 0, 1, "Sub_part", OPEN_FRM_ONLY},
 
4481
  {"PACKED", 10, DRIZZLE_TYPE_VARCHAR, 0, 1, "Packed", OPEN_FRM_ONLY},
 
4482
  {"NULLABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Null", OPEN_FRM_ONLY},
 
4483
  {"INDEX_TYPE", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "Index_type", OPEN_FULL_TABLE},
 
4484
  {"COMMENT", 16, DRIZZLE_TYPE_VARCHAR, 0, 1, "Comment", OPEN_FRM_ONLY},
 
4485
  {"INDEX_COMMENT", INDEX_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Index_Comment", OPEN_FRM_ONLY},
 
4486
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4491
4487
};
4492
4488
 
4493
4489
 
4494
4490
ST_FIELD_INFO user_privileges_fields_info[]=
4495
4491
{
4496
 
  {"GRANTEE", 81, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4497
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4498
 
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4499
 
  {"IS_GRANTABLE", 3, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4500
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4492
  {"GRANTEE", 81, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4493
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4494
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4495
  {"IS_GRANTABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4496
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4501
4497
};
4502
4498
 
4503
4499
 
4504
4500
ST_FIELD_INFO schema_privileges_fields_info[]=
4505
4501
{
4506
 
  {"GRANTEE", 81, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4507
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4508
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4509
 
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4510
 
  {"IS_GRANTABLE", 3, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4511
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4502
  {"GRANTEE", 81, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4503
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4504
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4505
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4506
  {"IS_GRANTABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4507
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4512
4508
};
4513
4509
 
4514
4510
 
4515
4511
ST_FIELD_INFO table_privileges_fields_info[]=
4516
4512
{
4517
 
  {"GRANTEE", 81, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4518
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4519
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4520
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4521
 
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4522
 
  {"IS_GRANTABLE", 3, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4523
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4513
  {"GRANTEE", 81, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4514
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4515
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4516
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4517
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4518
  {"IS_GRANTABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4519
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4524
4520
};
4525
4521
 
4526
4522
 
4527
4523
ST_FIELD_INFO column_privileges_fields_info[]=
4528
4524
{
4529
 
  {"GRANTEE", 81, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4530
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4531
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4532
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4533
 
  {"COLUMN_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4534
 
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4535
 
  {"IS_GRANTABLE", 3, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4536
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4525
  {"GRANTEE", 81, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4526
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4527
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4528
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4529
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4530
  {"PRIVILEGE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4531
  {"IS_GRANTABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4532
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4537
4533
};
4538
4534
 
4539
4535
 
4540
4536
ST_FIELD_INFO table_constraints_fields_info[]=
4541
4537
{
4542
 
  {"CONSTRAINT_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4543
 
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4544
 
   OPEN_FULL_TABLE},
4545
 
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4546
 
   OPEN_FULL_TABLE},
4547
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4548
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4549
 
  {"CONSTRAINT_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4550
 
   OPEN_FULL_TABLE},
4551
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4538
  {"CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4539
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4540
   OPEN_FULL_TABLE},
 
4541
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4542
   OPEN_FULL_TABLE},
 
4543
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4544
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4545
  {"CONSTRAINT_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4546
   OPEN_FULL_TABLE},
 
4547
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4552
4548
};
4553
4549
 
4554
4550
 
4555
4551
ST_FIELD_INFO key_column_usage_fields_info[]=
4556
4552
{
4557
 
  {"CONSTRAINT_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4558
 
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4559
 
   OPEN_FULL_TABLE},
4560
 
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4561
 
   OPEN_FULL_TABLE},
4562
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4563
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4564
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4565
 
  {"COLUMN_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4566
 
  {"ORDINAL_POSITION", 10 ,MYSQL_TYPE_LONGLONG, 0, 0, 0, OPEN_FULL_TABLE},
4567
 
  {"POSITION_IN_UNIQUE_CONSTRAINT", 10 ,MYSQL_TYPE_LONGLONG, 0, 1, 0,
4568
 
   OPEN_FULL_TABLE},
4569
 
  {"REFERENCED_TABLE_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0,
4570
 
   OPEN_FULL_TABLE},
4571
 
  {"REFERENCED_TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0,
4572
 
   OPEN_FULL_TABLE},
4573
 
  {"REFERENCED_COLUMN_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0,
4574
 
   OPEN_FULL_TABLE},
4575
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4553
  {"CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4554
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4555
   OPEN_FULL_TABLE},
 
4556
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4557
   OPEN_FULL_TABLE},
 
4558
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4559
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4560
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4561
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4562
  {"ORDINAL_POSITION", 10 ,DRIZZLE_TYPE_LONGLONG, 0, 0, 0, OPEN_FULL_TABLE},
 
4563
  {"POSITION_IN_UNIQUE_CONSTRAINT", 10 ,DRIZZLE_TYPE_LONGLONG, 0, 1, 0,
 
4564
   OPEN_FULL_TABLE},
 
4565
  {"REFERENCED_TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4566
   OPEN_FULL_TABLE},
 
4567
  {"REFERENCED_TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4568
   OPEN_FULL_TABLE},
 
4569
  {"REFERENCED_COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4570
   OPEN_FULL_TABLE},
 
4571
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4576
4572
};
4577
4573
 
4578
4574
 
4579
4575
ST_FIELD_INFO table_names_fields_info[]=
4580
4576
{
4581
 
  {"TABLE_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4582
 
  {"TABLE_SCHEMA",NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4583
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Tables_in_",
 
4577
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4578
  {"TABLE_SCHEMA",NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4579
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Tables_in_",
4584
4580
   SKIP_OPEN_TABLE},
4585
 
  {"TABLE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Table_type",
 
4581
  {"TABLE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table_type",
4586
4582
   OPEN_FRM_ONLY},
4587
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4583
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4588
4584
};
4589
4585
 
4590
4586
 
4591
4587
ST_FIELD_INFO open_tables_fields_info[]=
4592
4588
{
4593
 
  {"Database", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Database",
 
4589
  {"Database", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Database",
4594
4590
   SKIP_OPEN_TABLE},
4595
 
  {"Table",NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Table", SKIP_OPEN_TABLE},
4596
 
  {"In_use", 1, MYSQL_TYPE_LONGLONG, 0, 0, "In_use", SKIP_OPEN_TABLE},
4597
 
  {"Name_locked", 4, MYSQL_TYPE_LONGLONG, 0, 0, "Name_locked", SKIP_OPEN_TABLE},
4598
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4591
  {"Table",NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table", SKIP_OPEN_TABLE},
 
4592
  {"In_use", 1, DRIZZLE_TYPE_LONGLONG, 0, 0, "In_use", SKIP_OPEN_TABLE},
 
4593
  {"Name_locked", 4, DRIZZLE_TYPE_LONGLONG, 0, 0, "Name_locked", SKIP_OPEN_TABLE},
 
4594
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4599
4595
};
4600
4596
 
4601
4597
 
4602
4598
ST_FIELD_INFO variables_fields_info[]=
4603
4599
{
4604
 
  {"VARIABLE_NAME", 64, MYSQL_TYPE_STRING, 0, 0, "Variable_name",
 
4600
  {"VARIABLE_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Variable_name",
4605
4601
   SKIP_OPEN_TABLE},
4606
 
  {"VARIABLE_VALUE", 16300, MYSQL_TYPE_STRING, 0, 1, "Value", SKIP_OPEN_TABLE},
4607
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4602
  {"VARIABLE_VALUE", 16300, DRIZZLE_TYPE_VARCHAR, 0, 1, "Value", SKIP_OPEN_TABLE},
 
4603
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4608
4604
};
4609
4605
 
4610
4606
 
4611
4607
ST_FIELD_INFO processlist_fields_info[]=
4612
4608
{
4613
 
  {"ID", 4, MYSQL_TYPE_LONGLONG, 0, 0, "Id", SKIP_OPEN_TABLE},
4614
 
  {"USER", 16, MYSQL_TYPE_STRING, 0, 0, "User", SKIP_OPEN_TABLE},
4615
 
  {"HOST", LIST_PROCESS_HOST_LEN,  MYSQL_TYPE_STRING, 0, 0, "Host",
4616
 
   SKIP_OPEN_TABLE},
4617
 
  {"DB", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, "Db", SKIP_OPEN_TABLE},
4618
 
  {"COMMAND", 16, MYSQL_TYPE_STRING, 0, 0, "Command", SKIP_OPEN_TABLE},
4619
 
  {"TIME", 7, MYSQL_TYPE_LONGLONG, 0, 0, "Time", SKIP_OPEN_TABLE},
4620
 
  {"STATE", 64, MYSQL_TYPE_STRING, 0, 1, "State", SKIP_OPEN_TABLE},
4621
 
  {"INFO", PROCESS_LIST_INFO_WIDTH, MYSQL_TYPE_STRING, 0, 1, "Info",
4622
 
   SKIP_OPEN_TABLE},
4623
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4609
  {"ID", 4, DRIZZLE_TYPE_LONGLONG, 0, 0, "Id", SKIP_OPEN_TABLE},
 
4610
  {"USER", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "User", SKIP_OPEN_TABLE},
 
4611
  {"HOST", LIST_PROCESS_HOST_LEN,  DRIZZLE_TYPE_VARCHAR, 0, 0, "Host",
 
4612
   SKIP_OPEN_TABLE},
 
4613
  {"DB", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, "Db", SKIP_OPEN_TABLE},
 
4614
  {"COMMAND", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "Command", SKIP_OPEN_TABLE},
 
4615
  {"TIME", 7, DRIZZLE_TYPE_LONGLONG, 0, 0, "Time", SKIP_OPEN_TABLE},
 
4616
  {"STATE", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "State", SKIP_OPEN_TABLE},
 
4617
  {"INFO", PROCESS_LIST_INFO_WIDTH, DRIZZLE_TYPE_VARCHAR, 0, 1, "Info",
 
4618
   SKIP_OPEN_TABLE},
 
4619
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4624
4620
};
4625
4621
 
4626
4622
 
4627
4623
ST_FIELD_INFO plugin_fields_info[]=
4628
4624
{
4629
 
  {"PLUGIN_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, "Name", 
4630
 
   SKIP_OPEN_TABLE},
4631
 
  {"PLUGIN_VERSION", 20, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
4632
 
  {"PLUGIN_STATUS", 10, MYSQL_TYPE_STRING, 0, 0, "Status", SKIP_OPEN_TABLE},
4633
 
  {"PLUGIN_TYPE", 80, MYSQL_TYPE_STRING, 0, 0, "Type", SKIP_OPEN_TABLE},
4634
 
  {"PLUGIN_LIBRARY", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, "Library",
4635
 
   SKIP_OPEN_TABLE},
4636
 
  {"PLUGIN_AUTHOR", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4637
 
  {"PLUGIN_DESCRIPTION", 65535, MYSQL_TYPE_STRING, 0, 1, 0, SKIP_OPEN_TABLE},
4638
 
  {"PLUGIN_LICENSE", 80, MYSQL_TYPE_STRING, 0, 1, "License", SKIP_OPEN_TABLE},
4639
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4625
  {"PLUGIN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Name", 
 
4626
   SKIP_OPEN_TABLE},
 
4627
  {"PLUGIN_VERSION", 20, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
 
4628
  {"PLUGIN_STATUS", 10, DRIZZLE_TYPE_VARCHAR, 0, 0, "Status", SKIP_OPEN_TABLE},
 
4629
  {"PLUGIN_TYPE", 80, DRIZZLE_TYPE_VARCHAR, 0, 0, "Type", SKIP_OPEN_TABLE},
 
4630
  {"PLUGIN_LIBRARY", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, "Library",
 
4631
   SKIP_OPEN_TABLE},
 
4632
  {"PLUGIN_AUTHOR", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4633
  {"PLUGIN_DESCRIPTION", 65535, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
 
4634
  {"PLUGIN_LICENSE", 80, DRIZZLE_TYPE_VARCHAR, 0, 1, "License", SKIP_OPEN_TABLE},
 
4635
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4640
4636
};
4641
4637
 
4642
4638
ST_FIELD_INFO referential_constraints_fields_info[]=
4643
4639
{
4644
 
  {"CONSTRAINT_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4645
 
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4646
 
   OPEN_FULL_TABLE},
4647
 
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4648
 
   OPEN_FULL_TABLE},
4649
 
  {"UNIQUE_CONSTRAINT_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0,
4650
 
   OPEN_FULL_TABLE},
4651
 
  {"UNIQUE_CONSTRAINT_SCHEMA", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
4652
 
   OPEN_FULL_TABLE},
4653
 
  {"UNIQUE_CONSTRAINT_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0,
 
4640
  {"CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4641
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4642
   OPEN_FULL_TABLE},
 
4643
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4644
   OPEN_FULL_TABLE},
 
4645
  {"UNIQUE_CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4646
   OPEN_FULL_TABLE},
 
4647
  {"UNIQUE_CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4648
   OPEN_FULL_TABLE},
 
4649
  {"UNIQUE_CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0,
4654
4650
   MY_I_S_MAYBE_NULL, 0, OPEN_FULL_TABLE},
4655
 
  {"MATCH_OPTION", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4656
 
  {"UPDATE_RULE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4657
 
  {"DELETE_RULE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4658
 
  {"TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4659
 
  {"REFERENCED_TABLE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
 
4651
  {"MATCH_OPTION", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4652
  {"UPDATE_RULE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4653
  {"DELETE_RULE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4654
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4655
  {"REFERENCED_TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4660
4656
   OPEN_FULL_TABLE},
4661
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
 
4657
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4662
4658
};
4663
4659
 
4664
4660
 
4665
4661
ST_FIELD_INFO parameters_fields_info[]=
4666
4662
{
4667
 
  {"SPECIFIC_CATALOG", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4668
 
  {"SPECIFIC_SCHEMA", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4669
 
  {"SPECIFIC_NAME", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4670
 
  {"ORDINAL_POSITION", 21 , MYSQL_TYPE_LONG, 0, 0, 0, OPEN_FULL_TABLE},
4671
 
  {"PARAMETER_MODE", 5, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4672
 
  {"PARAMETER_NAME", NAME_LEN, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4673
 
  {"DATA_TYPE", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4674
 
  {"CHARACTER_MAXIMUM_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
4675
 
  {"CHARACTER_OCTET_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
4676
 
  {"NUMERIC_PRECISION", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
4677
 
  {"NUMERIC_SCALE", 21 , MYSQL_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
4678
 
  {"CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4679
 
  {"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 1, 0, OPEN_FULL_TABLE},
4680
 
  {"DTD_IDENTIFIER", 65535, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4681
 
  {"ROUTINE_TYPE", 9, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE},
4682
 
  {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, OPEN_FULL_TABLE}
 
4663
  {"SPECIFIC_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4664
  {"SPECIFIC_SCHEMA", NAME_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4665
  {"SPECIFIC_NAME", NAME_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4666
  {"ORDINAL_POSITION", 21 , DRIZZLE_TYPE_LONG, 0, 0, 0, OPEN_FULL_TABLE},
 
4667
  {"PARAMETER_MODE", 5, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4668
  {"PARAMETER_NAME", NAME_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4669
  {"DATA_TYPE", NAME_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4670
  {"CHARACTER_MAXIMUM_LENGTH", 21 , DRIZZLE_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
 
4671
  {"CHARACTER_OCTET_LENGTH", 21 , DRIZZLE_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
 
4672
  {"NUMERIC_PRECISION", 21 , DRIZZLE_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
 
4673
  {"NUMERIC_SCALE", 21 , DRIZZLE_TYPE_LONG, 0, 1, 0, OPEN_FULL_TABLE},
 
4674
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4675
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
 
4676
  {"DTD_IDENTIFIER", 65535, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4677
  {"ROUTINE_TYPE", 9, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
 
4678
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE}
4683
4679
};
4684
4680
 
4685
4681