~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/show.cc

  • Committer: Padraig O'Sullivan
  • Date: 2009-06-19 20:17:46 UTC
  • mto: This revision was merged to the branch mainline in revision 1067.
  • Revision ID: osullivan.padraig@gmail.com-20090619201746-sw9j9hkqshv9hv5k
Converted the ST_FIELDS_INFO structure to a class named FieldInfo. Made all
data members of this class private and provided getters for every data
member. No setters are needed since this data is never modified once a field
is created. Updated the appropriate files which use FieldInfo.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3660
3660
  Table *table;
3661
3661
  List<Item> field_list;
3662
3662
  InfoSchemaTable *schema_table= table_list->schema_table;
3663
 
  ST_FIELD_INFO *fields_info= schema_table->getFieldsInfo();
 
3663
  FieldInfo *fields_info= schema_table->getFieldsInfo();
3664
3664
  const CHARSET_INFO * const cs= system_charset_info;
3665
3665
 
3666
 
  for (; fields_info->field_name; fields_info++)
 
3666
  for (; fields_info->getName(); fields_info++)
3667
3667
  {
3668
 
    switch (fields_info->field_type) {
 
3668
    switch (fields_info->getType()) {
3669
3669
    case DRIZZLE_TYPE_LONG:
3670
3670
    case DRIZZLE_TYPE_LONGLONG:
3671
 
      if (!(item= new Item_return_int(fields_info->field_name,
3672
 
                                      fields_info->field_length,
3673
 
                                      fields_info->field_type,
3674
 
                                      fields_info->value)))
 
3671
      if (!(item= new Item_return_int(fields_info->getName(),
 
3672
                                      fields_info->getLength(),
 
3673
                                      fields_info->getType(),
 
3674
                                      fields_info->getValue())))
3675
3675
      {
3676
3676
        return(0);
3677
3677
      }
3678
 
      item->unsigned_flag= (fields_info->field_flags & MY_I_S_UNSIGNED);
 
3678
      item->unsigned_flag= (fields_info->getFlags() & MY_I_S_UNSIGNED);
3679
3679
      break;
3680
3680
    case DRIZZLE_TYPE_DATE:
3681
3681
    case DRIZZLE_TYPE_TIMESTAMP:
3682
3682
    case DRIZZLE_TYPE_DATETIME:
3683
 
      if (!(item=new Item_return_date_time(fields_info->field_name,
3684
 
                                           fields_info->field_type)))
 
3683
      if (!(item=new Item_return_date_time(fields_info->getName(),
 
3684
                                           fields_info->getType())))
3685
3685
      {
3686
3686
        return(0);
3687
3687
      }
3688
3688
      break;
3689
3689
    case DRIZZLE_TYPE_DOUBLE:
3690
 
      if ((item= new Item_float(fields_info->field_name, 0.0, NOT_FIXED_DEC,
3691
 
                           fields_info->field_length)) == NULL)
 
3690
      if ((item= new Item_float(fields_info->getName(), 0.0, NOT_FIXED_DEC,
 
3691
                           fields_info->getLength())) == NULL)
3692
3692
        return NULL;
3693
3693
      break;
3694
3694
    case DRIZZLE_TYPE_NEWDECIMAL:
3695
 
      if (!(item= new Item_decimal((int64_t) fields_info->value, false)))
 
3695
      if (!(item= new Item_decimal((int64_t) fields_info->getValue(), false)))
3696
3696
      {
3697
3697
        return(0);
3698
3698
      }
3699
 
      item->unsigned_flag= (fields_info->field_flags & MY_I_S_UNSIGNED);
3700
 
      item->decimals= fields_info->field_length%10;
3701
 
      item->max_length= (fields_info->field_length/100)%100;
 
3699
      item->unsigned_flag= (fields_info->getFlags() & MY_I_S_UNSIGNED);
 
3700
      item->decimals= fields_info->getLength() % 10;
 
3701
      item->max_length= (fields_info->getLength()/100)%100;
3702
3702
      if (item->unsigned_flag == 0)
3703
3703
        item->max_length+= 1;
3704
3704
      if (item->decimals > 0)
3705
3705
        item->max_length+= 1;
3706
 
      item->set_name(fields_info->field_name,
3707
 
                     strlen(fields_info->field_name), cs);
 
3706
      item->set_name(fields_info->getName(),
 
3707
                     strlen(fields_info->getName()), cs);
3708
3708
      break;
3709
3709
    case DRIZZLE_TYPE_BLOB:
3710
 
      if (!(item= new Item_blob(fields_info->field_name,
3711
 
                                fields_info->field_length)))
 
3710
      if (!(item= new Item_blob(fields_info->getName(),
 
3711
                                fields_info->getLength())))
3712
3712
      {
3713
3713
        return(0);
3714
3714
      }
3715
3715
      break;
3716
3716
    default:
3717
 
      if (!(item= new Item_empty_string("", fields_info->field_length, cs)))
 
3717
      if (!(item= new Item_empty_string("", fields_info->getLength(), cs)))
3718
3718
      {
3719
3719
        return(0);
3720
3720
      }
3721
 
      item->set_name(fields_info->field_name,
3722
 
                     strlen(fields_info->field_name), cs);
 
3721
      item->set_name(fields_info->getName(),
 
3722
                     strlen(fields_info->getName()), cs);
3723
3723
      break;
3724
3724
    }
3725
3725
    field_list.push_back(item);
3726
 
    item->maybe_null= (fields_info->field_flags & MY_I_S_MAYBE_NULL);
 
3726
    item->maybe_null= (fields_info->getFlags() & MY_I_S_MAYBE_NULL);
3727
3727
    field_count++;
3728
3728
  }
3729
3729
  Tmp_Table_Param *tmp_table_param =
3767
3767
int InfoSchemaMethods::oldFormat(Session *session, InfoSchemaTable *schema_table)
3768
3768
  const
3769
3769
{
3770
 
  ST_FIELD_INFO *field_info= schema_table->getFieldsInfo();
 
3770
  FieldInfo *field_info= schema_table->getFieldsInfo();
3771
3771
  Name_resolution_context *context= &session->lex->select_lex.context;
3772
 
  for (; field_info->field_name; field_info++)
 
3772
  for (; field_info->getName(); field_info++)
3773
3773
  {
3774
 
    if (field_info->old_name)
 
3774
    if (field_info->getOldName())
3775
3775
    {
3776
3776
      Item_field *field= new Item_field(context,
3777
 
                                        NULL, NULL, field_info->field_name);
 
3777
                                        NULL, NULL, field_info->getName());
3778
3778
      if (field)
3779
3779
      {
3780
 
        field->set_name(field_info->old_name,
3781
 
                        strlen(field_info->old_name),
 
3780
        field->set_name(field_info->getOldName(),
 
3781
                        strlen(field_info->getOldName()),
3782
3782
                        system_charset_info);
3783
3783
        if (session->add_item_to_list(field))
3784
3784
          return 1;
3799
3799
 
3800
3800
  if (!sel->item_list.elements)
3801
3801
  {
3802
 
    ST_FIELD_INFO *field_info= schema_table->getSpecificField(1);
 
3802
    FieldInfo *field_info= schema_table->getSpecificField(1);
3803
3803
    String buffer(tmp,sizeof(tmp), system_charset_info);
3804
3804
    Item_field *field= new Item_field(context,
3805
 
                                      NULL, NULL, field_info->field_name);
 
3805
                                      NULL, NULL, field_info->getName());
3806
3806
    if (!field || session->add_item_to_list(field))
3807
3807
      return 1;
3808
3808
    buffer.length(0);
3809
 
    buffer.append(field_info->old_name);
 
3809
    buffer.append(field_info->getOldName());
3810
3810
    if (lex->wild && lex->wild->ptr())
3811
3811
    {
3812
3812
      buffer.append(STRING_WITH_LEN(" ("));
3827
3827
  LEX *lex= session->lex;
3828
3828
  Name_resolution_context *context= &lex->select_lex.context;
3829
3829
 
3830
 
  ST_FIELD_INFO *field_info= schema_table->getSpecificField(2);
 
3830
  FieldInfo *field_info= schema_table->getSpecificField(2);
3831
3831
  buffer.length(0);
3832
 
  buffer.append(field_info->old_name);
 
3832
  buffer.append(field_info->getOldName());
3833
3833
  buffer.append(lex->select_lex.db);
3834
3834
  if (lex->wild && lex->wild->ptr())
3835
3835
  {
3838
3838
    buffer.append(')');
3839
3839
  }
3840
3840
  Item_field *field= new Item_field(context,
3841
 
                                    NULL, NULL, field_info->field_name);
 
3841
                                    NULL, NULL, field_info->getName());
3842
3842
  if (session->add_item_to_list(field))
3843
3843
    return 1;
3844
3844
  field->set_name(buffer.ptr(), buffer.length(), system_charset_info);
3846
3846
  {
3847
3847
    field->set_name(buffer.ptr(), buffer.length(), system_charset_info);
3848
3848
    field_info= schema_table->getSpecificField(3);
3849
 
    field= new Item_field(context, NULL, NULL, field_info->field_name);
 
3849
    field= new Item_field(context, NULL, NULL, field_info->getName());
3850
3850
    if (session->add_item_to_list(field))
3851
3851
      return 1;
3852
 
    field->set_name(field_info->old_name, strlen(field_info->old_name),
 
3852
    field->set_name(field_info->getOldName(), strlen(field_info->getOldName()),
3853
3853
                    system_charset_info);
3854
3854
  }
3855
3855
  return 0;
3861
3861
{
3862
3862
  int fields_arr[]= {3, 14, 13, 6, 15, 5, 16, 17, 18, -1};
3863
3863
  int *field_num= fields_arr;
3864
 
  ST_FIELD_INFO *field_info;
 
3864
  FieldInfo *field_info;
3865
3865
  Name_resolution_context *context= &session->lex->select_lex.context;
3866
3866
 
3867
3867
  for (; *field_num >= 0; field_num++)
3872
3872
                               *field_num == 18))
3873
3873
      continue;
3874
3874
    Item_field *field= new Item_field(context,
3875
 
                                      NULL, NULL, field_info->field_name);
 
3875
                                      NULL, NULL, field_info->getName());
3876
3876
    if (field)
3877
3877
    {
3878
 
      field->set_name(field_info->old_name,
3879
 
                      strlen(field_info->old_name),
 
3878
      field->set_name(field_info->getOldName(),
 
3879
                      strlen(field_info->getOldName()),
3880
3880
                      system_charset_info);
3881
3881
      if (session->add_item_to_list(field))
3882
3882
        return 1;
3891
3891
{
3892
3892
  int fields_arr[]= {0, 2, 1, 3, -1};
3893
3893
  int *field_num= fields_arr;
3894
 
  ST_FIELD_INFO *field_info;
 
3894
  FieldInfo *field_info;
3895
3895
  Name_resolution_context *context= &session->lex->select_lex.context;
3896
3896
 
3897
3897
  for (; *field_num >= 0; field_num++)
3898
3898
  {
3899
3899
    field_info= schema_table->getSpecificField(*field_num);
3900
3900
    Item_field *field= new Item_field(context,
3901
 
                                      NULL, NULL, field_info->field_name);
 
3901
                                      NULL, NULL, field_info->getName());
3902
3902
    if (field)
3903
3903
    {
3904
 
      field->set_name(field_info->old_name,
3905
 
                      strlen(field_info->old_name),
 
3904
      field->set_name(field_info->getOldName(),
 
3905
                      strlen(field_info->getOldName()),
3906
3906
                      system_charset_info);
3907
3907
      if (session->add_item_to_list(field))
3908
3908
        return 1;
4077
4077
  return(result);
4078
4078
}
4079
4079
 
4080
 
ST_FIELD_INFO schema_fields_info[]=
4081
 
{
4082
 
  {"CATALOG_NAME", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
4083
 
  {"SCHEMA_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Database",
4084
 
   SKIP_OPEN_TABLE},
4085
 
  {"DEFAULT_CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4086
 
   SKIP_OPEN_TABLE},
4087
 
  {"DEFAULT_COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
4088
 
  {"SQL_PATH", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
4089
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4090
 
};
4091
 
 
4092
 
 
4093
 
ST_FIELD_INFO tables_fields_info[]=
4094
 
{
4095
 
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
4096
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
4097
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Name",
4098
 
   SKIP_OPEN_TABLE},
4099
 
  {"TABLE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
4100
 
  {"ENGINE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, "Engine", OPEN_FRM_ONLY},
4101
 
  {"VERSION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4102
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Version", OPEN_FRM_ONLY},
4103
 
  {"ROW_FORMAT", 10, DRIZZLE_TYPE_VARCHAR, 0, 1, "Row_format", OPEN_FULL_TABLE},
4104
 
  {"TABLE_ROWS", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4105
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Rows", OPEN_FULL_TABLE},
4106
 
  {"AVG_ROW_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4107
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Avg_row_length", OPEN_FULL_TABLE},
4108
 
  {"DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4109
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_length", OPEN_FULL_TABLE},
4110
 
  {"MAX_DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4111
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Max_data_length", OPEN_FULL_TABLE},
4112
 
  {"INDEX_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4113
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Index_length", OPEN_FULL_TABLE},
4114
 
  {"DATA_FREE", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4115
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_free", OPEN_FULL_TABLE},
4116
 
  {"AUTO_INCREMENT", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG, 0,
4117
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Auto_increment", OPEN_FULL_TABLE},
4118
 
  {"CREATE_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Create_time", OPEN_FULL_TABLE},
4119
 
  {"UPDATE_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Update_time", OPEN_FULL_TABLE},
4120
 
  {"CHECK_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Check_time", OPEN_FULL_TABLE},
4121
 
  {"TABLE_COLLATION", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY},
4122
 
  {"CHECKSUM", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4123
 
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Checksum", OPEN_FULL_TABLE},
4124
 
  {"CREATE_OPTIONS", 255, DRIZZLE_TYPE_VARCHAR, 0, 1, "Create_options",
4125
 
   OPEN_FRM_ONLY},
4126
 
  {"TABLE_COMMENT", TABLE_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Comment", OPEN_FRM_ONLY},
4127
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4128
 
};
4129
 
 
4130
 
 
4131
 
ST_FIELD_INFO columns_fields_info[]=
4132
 
{
4133
 
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY},
4134
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
4135
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
4136
 
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Field",
4137
 
   OPEN_FRM_ONLY},
4138
 
  {"ORDINAL_POSITION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
4139
 
   MY_I_S_UNSIGNED, 0, OPEN_FRM_ONLY},
4140
 
  {"COLUMN_DEFAULT", MAX_FIELD_VARCHARLENGTH, DRIZZLE_TYPE_VARCHAR, 0,
4141
 
   1, "Default", OPEN_FRM_ONLY},
4142
 
  {"IS_NULLABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Null", OPEN_FRM_ONLY},
4143
 
  {"DATA_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
4144
 
  {"CHARACTER_MAXIMUM_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG,
4145
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4146
 
  {"CHARACTER_OCTET_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG,
4147
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4148
 
  {"NUMERIC_PRECISION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG,
4149
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4150
 
  {"NUMERIC_SCALE", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG,
4151
 
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY},
4152
 
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY},
4153
 
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY},
4154
 
  {"COLUMN_TYPE", 65535, DRIZZLE_TYPE_VARCHAR, 0, 0, "Type", OPEN_FRM_ONLY},
4155
 
  {"COLUMN_KEY", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Key", OPEN_FRM_ONLY},
4156
 
  {"EXTRA", 27, DRIZZLE_TYPE_VARCHAR, 0, 0, "Extra", OPEN_FRM_ONLY},
4157
 
  {"PRIVILEGES", 80, DRIZZLE_TYPE_VARCHAR, 0, 0, "Privileges", OPEN_FRM_ONLY},
4158
 
  {"COLUMN_COMMENT", COLUMN_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Comment", OPEN_FRM_ONLY},
4159
 
  {"STORAGE", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, "Storage", OPEN_FRM_ONLY},
4160
 
  {"FORMAT", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, "Format", OPEN_FRM_ONLY},
4161
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4162
 
};
4163
 
 
4164
 
 
4165
 
ST_FIELD_INFO charsets_fields_info[]=
4166
 
{
4167
 
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Charset",
4168
 
   SKIP_OPEN_TABLE},
4169
 
  {"DEFAULT_COLLATE_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Default collation",
4170
 
   SKIP_OPEN_TABLE},
4171
 
  {"DESCRIPTION", 60, DRIZZLE_TYPE_VARCHAR, 0, 0, "Description",
4172
 
   SKIP_OPEN_TABLE},
4173
 
  {"MAXLEN", 3, DRIZZLE_TYPE_LONGLONG, 0, 0, "Maxlen", SKIP_OPEN_TABLE},
4174
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4175
 
};
4176
 
 
4177
 
 
4178
 
ST_FIELD_INFO collation_fields_info[]=
4179
 
{
4180
 
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Collation", SKIP_OPEN_TABLE},
4181
 
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Charset",
4182
 
   SKIP_OPEN_TABLE},
4183
 
  {"ID", MY_INT32_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 0, "Id",
4184
 
   SKIP_OPEN_TABLE},
4185
 
  {"IS_DEFAULT", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Default", SKIP_OPEN_TABLE},
4186
 
  {"IS_COMPILED", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Compiled", SKIP_OPEN_TABLE},
4187
 
  {"SORTLEN", 3, DRIZZLE_TYPE_LONGLONG, 0, 0, "Sortlen", SKIP_OPEN_TABLE},
4188
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4189
 
};
4190
 
 
4191
 
 
4192
 
 
4193
 
ST_FIELD_INFO coll_charset_app_fields_info[]=
4194
 
{
4195
 
  {"COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
4196
 
  {"CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
4197
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4198
 
};
4199
 
 
4200
 
 
4201
 
ST_FIELD_INFO stat_fields_info[]=
4202
 
{
4203
 
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY},
4204
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
4205
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table", OPEN_FRM_ONLY},
4206
 
  {"NON_UNIQUE", 1, DRIZZLE_TYPE_LONGLONG, 0, 0, "Non_unique", OPEN_FRM_ONLY},
4207
 
  {"INDEX_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY},
4208
 
  {"INDEX_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Key_name",
4209
 
   OPEN_FRM_ONLY},
4210
 
  {"SEQ_IN_INDEX", 2, DRIZZLE_TYPE_LONGLONG, 0, 0, "Seq_in_index", OPEN_FRM_ONLY},
4211
 
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Column_name",
4212
 
   OPEN_FRM_ONLY},
4213
 
  {"COLLATION", 1, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY},
4214
 
  {"CARDINALITY", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 1,
4215
 
   "Cardinality", OPEN_FULL_TABLE},
4216
 
  {"SUB_PART", 3, DRIZZLE_TYPE_LONGLONG, 0, 1, "Sub_part", OPEN_FRM_ONLY},
4217
 
  {"PACKED", 10, DRIZZLE_TYPE_VARCHAR, 0, 1, "Packed", OPEN_FRM_ONLY},
4218
 
  {"NULLABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Null", OPEN_FRM_ONLY},
4219
 
  {"INDEX_TYPE", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "Index_type", OPEN_FULL_TABLE},
4220
 
  {"COMMENT", 16, DRIZZLE_TYPE_VARCHAR, 0, 1, "Comment", OPEN_FRM_ONLY},
4221
 
  {"INDEX_COMMENT", INDEX_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Index_Comment", OPEN_FRM_ONLY},
4222
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4223
 
};
4224
 
 
4225
 
 
4226
 
ST_FIELD_INFO table_constraints_fields_info[]=
4227
 
{
4228
 
  {"CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
4229
 
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4230
 
   OPEN_FULL_TABLE},
4231
 
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4232
 
   OPEN_FULL_TABLE},
4233
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4234
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4235
 
  {"CONSTRAINT_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4236
 
   OPEN_FULL_TABLE},
4237
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4238
 
};
4239
 
 
4240
 
 
4241
 
ST_FIELD_INFO key_column_usage_fields_info[]=
4242
 
{
4243
 
  {"CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
4244
 
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4245
 
   OPEN_FULL_TABLE},
4246
 
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4247
 
   OPEN_FULL_TABLE},
4248
 
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
4249
 
  {"TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4250
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4251
 
  {"COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4252
 
  {"ORDINAL_POSITION", 10 ,DRIZZLE_TYPE_LONGLONG, 0, 0, 0, OPEN_FULL_TABLE},
4253
 
  {"POSITION_IN_UNIQUE_CONSTRAINT", 10 ,DRIZZLE_TYPE_LONGLONG, 0, 1, 0,
4254
 
   OPEN_FULL_TABLE},
4255
 
  {"REFERENCED_TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
4256
 
   OPEN_FULL_TABLE},
4257
 
  {"REFERENCED_TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
4258
 
   OPEN_FULL_TABLE},
4259
 
  {"REFERENCED_COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
4260
 
   OPEN_FULL_TABLE},
4261
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4262
 
};
4263
 
 
4264
 
 
4265
 
ST_FIELD_INFO table_names_fields_info[]=
4266
 
{
4267
 
  {"TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
4268
 
  {"TABLE_SCHEMA",NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
4269
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Tables_in_",
4270
 
   SKIP_OPEN_TABLE},
4271
 
  {"TABLE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table_type",
4272
 
   OPEN_FRM_ONLY},
4273
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4274
 
};
4275
 
 
4276
 
 
4277
 
ST_FIELD_INFO open_tables_fields_info[]=
4278
 
{
4279
 
  {"Database", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Database",
4280
 
   SKIP_OPEN_TABLE},
4281
 
  {"Table",NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table", SKIP_OPEN_TABLE},
4282
 
  {"In_use", 1, DRIZZLE_TYPE_LONGLONG, 0, 0, "In_use", SKIP_OPEN_TABLE},
4283
 
  {"Name_locked", 4, DRIZZLE_TYPE_LONGLONG, 0, 0, "Name_locked", SKIP_OPEN_TABLE},
4284
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4285
 
};
4286
 
 
4287
 
 
4288
 
ST_FIELD_INFO variables_fields_info[]=
4289
 
{
4290
 
  {"VARIABLE_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Variable_name",
4291
 
   SKIP_OPEN_TABLE},
4292
 
  {"VARIABLE_VALUE", 16300, DRIZZLE_TYPE_VARCHAR, 0, 1, "Value", SKIP_OPEN_TABLE},
4293
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4294
 
};
4295
 
 
4296
 
 
4297
 
ST_FIELD_INFO processlist_fields_info[]=
4298
 
{
4299
 
  {"ID", 4, DRIZZLE_TYPE_LONGLONG, 0, 0, "Id", SKIP_OPEN_TABLE},
4300
 
  {"USER", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "User", SKIP_OPEN_TABLE},
4301
 
  {"HOST", LIST_PROCESS_HOST_LEN,  DRIZZLE_TYPE_VARCHAR, 0, 0, "Host",
4302
 
   SKIP_OPEN_TABLE},
4303
 
  {"DB", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, "Db", SKIP_OPEN_TABLE},
4304
 
  {"COMMAND", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "Command", SKIP_OPEN_TABLE},
4305
 
  {"TIME", 7, DRIZZLE_TYPE_LONGLONG, 0, 0, "Time", SKIP_OPEN_TABLE},
4306
 
  {"STATE", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "State", SKIP_OPEN_TABLE},
4307
 
  {"INFO", PROCESS_LIST_INFO_WIDTH, DRIZZLE_TYPE_VARCHAR, 0, 1, "Info",
4308
 
   SKIP_OPEN_TABLE},
4309
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4310
 
};
4311
 
 
4312
 
 
4313
 
ST_FIELD_INFO plugin_fields_info[]=
4314
 
{
4315
 
  {"PLUGIN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Name",
4316
 
   SKIP_OPEN_TABLE},
4317
 
  {"PLUGIN_VERSION", 20, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE},
4318
 
  {"PLUGIN_STATUS", 10, DRIZZLE_TYPE_VARCHAR, 0, 0, "Status", SKIP_OPEN_TABLE},
4319
 
  {"PLUGIN_AUTHOR", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
4320
 
  {"PLUGIN_DESCRIPTION", 65535, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE},
4321
 
  {"PLUGIN_LICENSE", 80, DRIZZLE_TYPE_VARCHAR, 0, 1, "License", SKIP_OPEN_TABLE},
4322
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
4323
 
};
4324
 
 
4325
 
ST_FIELD_INFO referential_constraints_fields_info[]=
4326
 
{
4327
 
  {"CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE},
4328
 
  {"CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4329
 
   OPEN_FULL_TABLE},
4330
 
  {"CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4331
 
   OPEN_FULL_TABLE},
4332
 
  {"UNIQUE_CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
4333
 
   OPEN_FULL_TABLE},
4334
 
  {"UNIQUE_CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4335
 
   OPEN_FULL_TABLE},
4336
 
  {"UNIQUE_CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0,
4337
 
   MY_I_S_MAYBE_NULL, 0, OPEN_FULL_TABLE},
4338
 
  {"MATCH_OPTION", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4339
 
  {"UPDATE_RULE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4340
 
  {"DELETE_RULE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4341
 
  {"TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE},
4342
 
  {"REFERENCED_TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
4343
 
   OPEN_FULL_TABLE},
4344
 
  {0, 0, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE}
 
4080
FieldInfo schema_fields_info[]=
 
4081
{
 
4082
  FieldInfo("CATALOG_NAME",
 
4083
            FN_REFLEN,
 
4084
            DRIZZLE_TYPE_VARCHAR,
 
4085
            0, 1, 0, SKIP_OPEN_TABLE),
 
4086
  FieldInfo("SCHEMA_NAME",
 
4087
            NAME_CHAR_LEN,
 
4088
            DRIZZLE_TYPE_VARCHAR,
 
4089
            0, 0, "Database", SKIP_OPEN_TABLE),
 
4090
  FieldInfo("DEFAULT_CHARACTER_SET_NAME", 
 
4091
            64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4092
            SKIP_OPEN_TABLE),
 
4093
  FieldInfo("DEFAULT_COLLATION_NAME",
 
4094
            64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4095
            SKIP_OPEN_TABLE),
 
4096
  FieldInfo("SQL_PATH",
 
4097
            FN_REFLEN,
 
4098
            DRIZZLE_TYPE_VARCHAR,
 
4099
            0, 1, 0, SKIP_OPEN_TABLE),
 
4100
  FieldInfo()
 
4101
};
 
4102
 
 
4103
 
 
4104
FieldInfo tables_fields_info[]=
 
4105
{
 
4106
  FieldInfo("TABLE_CATALOG",  FN_REFLEN, DRIZZLE_TYPE_VARCHAR,
 
4107
            0, 1, 0, SKIP_OPEN_TABLE),
 
4108
  FieldInfo("TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR,
 
4109
            0, 0, 0, SKIP_OPEN_TABLE), 
 
4110
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR,
 
4111
            0, 0, "Name", SKIP_OPEN_TABLE),
 
4112
  FieldInfo("TABLE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR,
 
4113
            0, 0, 0, OPEN_FRM_ONLY),
 
4114
  FieldInfo("ENGINE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR,
 
4115
            0, 1, "Engine", OPEN_FRM_ONLY),
 
4116
  FieldInfo("VERSION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4117
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Version", OPEN_FRM_ONLY),
 
4118
  FieldInfo("ROW_FORMAT", 10, DRIZZLE_TYPE_VARCHAR, 0, 1, "Row_format", OPEN_FULL_TABLE),
 
4119
  FieldInfo("TABLE_ROWS", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4120
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Rows", OPEN_FULL_TABLE),
 
4121
  FieldInfo("AVG_ROW_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4122
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Avg_row_length", OPEN_FULL_TABLE),
 
4123
  FieldInfo("DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4124
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_length", OPEN_FULL_TABLE),
 
4125
  FieldInfo("MAX_DATA_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4126
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Max_data_length", OPEN_FULL_TABLE),
 
4127
  FieldInfo("INDEX_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4128
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Index_length", OPEN_FULL_TABLE),
 
4129
  FieldInfo("DATA_FREE", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4130
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Data_free", OPEN_FULL_TABLE),
 
4131
  FieldInfo("AUTO_INCREMENT", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG, 0,
 
4132
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Auto_increment", OPEN_FULL_TABLE),
 
4133
  FieldInfo("CREATE_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Create_time", OPEN_FULL_TABLE),
 
4134
  FieldInfo("UPDATE_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Update_time", OPEN_FULL_TABLE),
 
4135
  FieldInfo("CHECK_TIME", 0, DRIZZLE_TYPE_DATETIME, 0, 1, "Check_time", OPEN_FULL_TABLE),
 
4136
  FieldInfo("TABLE_COLLATION", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY),
 
4137
  FieldInfo("CHECKSUM", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4138
   (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Checksum", OPEN_FULL_TABLE),
 
4139
  FieldInfo("CREATE_OPTIONS", 255, DRIZZLE_TYPE_VARCHAR, 0, 1, "Create_options",
 
4140
   OPEN_FRM_ONLY),
 
4141
  FieldInfo("TABLE_COMMENT", TABLE_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR,
 
4142
            0, 0, "Comment", OPEN_FRM_ONLY),
 
4143
  FieldInfo()
 
4144
};
 
4145
 
 
4146
 
 
4147
FieldInfo columns_fields_info[]=
 
4148
{
 
4149
  FieldInfo("TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY),
 
4150
  FieldInfo("TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY),
 
4151
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY),
 
4152
  FieldInfo("COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Field",
 
4153
   OPEN_FRM_ONLY),
 
4154
  FieldInfo("ORDINAL_POSITION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0,
 
4155
   MY_I_S_UNSIGNED, 0, OPEN_FRM_ONLY),
 
4156
  FieldInfo("COLUMN_DEFAULT", MAX_FIELD_VARCHARLENGTH, DRIZZLE_TYPE_VARCHAR, 0,
 
4157
   1, "Default", OPEN_FRM_ONLY),
 
4158
  FieldInfo("IS_NULLABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Null", OPEN_FRM_ONLY),
 
4159
  FieldInfo("DATA_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY),
 
4160
  FieldInfo("CHARACTER_MAXIMUM_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG,
 
4161
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY),
 
4162
  FieldInfo("CHARACTER_OCTET_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG,
 
4163
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY),
 
4164
  FieldInfo("NUMERIC_PRECISION", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG,
 
4165
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY),
 
4166
  FieldInfo("NUMERIC_SCALE", MY_INT64_NUM_DECIMAL_DIGITS , DRIZZLE_TYPE_LONGLONG,
 
4167
   0, (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), 0, OPEN_FRM_ONLY),
 
4168
  FieldInfo("CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY),
 
4169
  FieldInfo("COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY),
 
4170
  FieldInfo("COLUMN_TYPE", 65535, DRIZZLE_TYPE_VARCHAR, 0, 0, "Type", OPEN_FRM_ONLY),
 
4171
  FieldInfo("COLUMN_KEY", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Key", OPEN_FRM_ONLY),
 
4172
  FieldInfo("EXTRA", 27, DRIZZLE_TYPE_VARCHAR, 0, 0, "Extra", OPEN_FRM_ONLY),
 
4173
  FieldInfo("PRIVILEGES", 80, DRIZZLE_TYPE_VARCHAR, 0, 0, "Privileges", OPEN_FRM_ONLY),
 
4174
  FieldInfo("COLUMN_COMMENT", COLUMN_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Comment", OPEN_FRM_ONLY),
 
4175
  FieldInfo("STORAGE", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, "Storage", OPEN_FRM_ONLY),
 
4176
  FieldInfo("FORMAT", 8, DRIZZLE_TYPE_VARCHAR, 0, 0, "Format", OPEN_FRM_ONLY),
 
4177
  FieldInfo()
 
4178
};
 
4179
 
 
4180
 
 
4181
FieldInfo charsets_fields_info[]=
 
4182
{
 
4183
  FieldInfo("CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Charset",
 
4184
   SKIP_OPEN_TABLE),
 
4185
  FieldInfo("DEFAULT_COLLATE_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Default collation",
 
4186
   SKIP_OPEN_TABLE),
 
4187
  FieldInfo("DESCRIPTION", 60, DRIZZLE_TYPE_VARCHAR, 0, 0, "Description",
 
4188
   SKIP_OPEN_TABLE),
 
4189
  FieldInfo("MAXLEN", 3, DRIZZLE_TYPE_LONGLONG, 0, 0, "Maxlen", SKIP_OPEN_TABLE),
 
4190
  FieldInfo()
 
4191
};
 
4192
 
 
4193
 
 
4194
FieldInfo collation_fields_info[]=
 
4195
{
 
4196
  FieldInfo("COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Collation", SKIP_OPEN_TABLE),
 
4197
  FieldInfo("CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Charset",
 
4198
   SKIP_OPEN_TABLE),
 
4199
  FieldInfo("ID", MY_INT32_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 0, "Id",
 
4200
   SKIP_OPEN_TABLE),
 
4201
  FieldInfo("IS_DEFAULT", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Default", SKIP_OPEN_TABLE),
 
4202
  FieldInfo("IS_COMPILED", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Compiled", SKIP_OPEN_TABLE),
 
4203
  FieldInfo("SORTLEN", 3, DRIZZLE_TYPE_LONGLONG, 0, 0, "Sortlen", SKIP_OPEN_TABLE),
 
4204
  FieldInfo()
 
4205
};
 
4206
 
 
4207
 
 
4208
 
 
4209
FieldInfo coll_charset_app_fields_info[]=
 
4210
{
 
4211
  FieldInfo("COLLATION_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE),
 
4212
  FieldInfo("CHARACTER_SET_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE),
 
4213
  FieldInfo()
 
4214
};
 
4215
 
 
4216
 
 
4217
FieldInfo stat_fields_info[]=
 
4218
{
 
4219
  FieldInfo("TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FRM_ONLY),
 
4220
  FieldInfo("TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY),
 
4221
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table", OPEN_FRM_ONLY),
 
4222
  FieldInfo("NON_UNIQUE", 1, DRIZZLE_TYPE_LONGLONG, 0, 0, "Non_unique", OPEN_FRM_ONLY),
 
4223
  FieldInfo("INDEX_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FRM_ONLY),
 
4224
  FieldInfo("INDEX_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Key_name",
 
4225
   OPEN_FRM_ONLY),
 
4226
  FieldInfo("SEQ_IN_INDEX", 2, DRIZZLE_TYPE_LONGLONG, 0, 0, "Seq_in_index", OPEN_FRM_ONLY),
 
4227
  FieldInfo("COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Column_name",
 
4228
   OPEN_FRM_ONLY),
 
4229
  FieldInfo("COLLATION", 1, DRIZZLE_TYPE_VARCHAR, 0, 1, "Collation", OPEN_FRM_ONLY),
 
4230
  FieldInfo("CARDINALITY", MY_INT64_NUM_DECIMAL_DIGITS, DRIZZLE_TYPE_LONGLONG, 0, 1,
 
4231
   "Cardinality", OPEN_FULL_TABLE),
 
4232
  FieldInfo("SUB_PART", 3, DRIZZLE_TYPE_LONGLONG, 0, 1, "Sub_part", OPEN_FRM_ONLY),
 
4233
  FieldInfo("PACKED", 10, DRIZZLE_TYPE_VARCHAR, 0, 1, "Packed", OPEN_FRM_ONLY),
 
4234
  FieldInfo("NULLABLE", 3, DRIZZLE_TYPE_VARCHAR, 0, 0, "Null", OPEN_FRM_ONLY),
 
4235
  FieldInfo("INDEX_TYPE", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "Index_type", OPEN_FULL_TABLE),
 
4236
  FieldInfo("COMMENT", 16, DRIZZLE_TYPE_VARCHAR, 0, 1, "Comment", OPEN_FRM_ONLY),
 
4237
  FieldInfo("INDEX_COMMENT", INDEX_COMMENT_MAXLEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Index_Comment", OPEN_FRM_ONLY),
 
4238
  FieldInfo()
 
4239
};
 
4240
 
 
4241
 
 
4242
FieldInfo table_constraints_fields_info[]=
 
4243
{
 
4244
  FieldInfo("CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE),
 
4245
  FieldInfo("CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4246
   OPEN_FULL_TABLE),
 
4247
  FieldInfo("CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4248
   OPEN_FULL_TABLE),
 
4249
  FieldInfo("TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4250
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4251
  FieldInfo("CONSTRAINT_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4252
   OPEN_FULL_TABLE),
 
4253
  FieldInfo()
 
4254
};
 
4255
 
 
4256
 
 
4257
FieldInfo key_column_usage_fields_info[]=
 
4258
{
 
4259
  FieldInfo("CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE),
 
4260
  FieldInfo("CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4261
   OPEN_FULL_TABLE),
 
4262
  FieldInfo("CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4263
   OPEN_FULL_TABLE),
 
4264
  FieldInfo("TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE),
 
4265
  FieldInfo("TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4266
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4267
  OPEN_FULL_TABLE),
 
4268
  FieldInfo("COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4269
  FieldInfo("ORDINAL_POSITION", 10 ,DRIZZLE_TYPE_LONGLONG, 0, 0, 0, OPEN_FULL_TABLE),
 
4270
  FieldInfo("POSITION_IN_UNIQUE_CONSTRAINT", 10 ,DRIZZLE_TYPE_LONGLONG, 0, 1, 0,
 
4271
   OPEN_FULL_TABLE),
 
4272
  FieldInfo("REFERENCED_TABLE_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4273
   OPEN_FULL_TABLE),
 
4274
  FieldInfo("REFERENCED_TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4275
   OPEN_FULL_TABLE),
 
4276
  FieldInfo("REFERENCED_COLUMN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4277
   OPEN_FULL_TABLE),
 
4278
  FieldInfo()
 
4279
};
 
4280
 
 
4281
 
 
4282
FieldInfo table_names_fields_info[]=
 
4283
{
 
4284
  FieldInfo("TABLE_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE),
 
4285
  FieldInfo("TABLE_SCHEMA",NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE),
 
4286
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Tables_in_",
 
4287
   SKIP_OPEN_TABLE),
 
4288
  FieldInfo("TABLE_TYPE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table_type",
 
4289
   OPEN_FRM_ONLY),
 
4290
  FieldInfo()
 
4291
};
 
4292
 
 
4293
 
 
4294
FieldInfo open_tables_fields_info[]=
 
4295
{
 
4296
  FieldInfo("Database", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Database",
 
4297
   SKIP_OPEN_TABLE),
 
4298
  FieldInfo("Table",NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Table", SKIP_OPEN_TABLE),
 
4299
  FieldInfo("In_use", 1, DRIZZLE_TYPE_LONGLONG, 0, 0, "In_use", SKIP_OPEN_TABLE),
 
4300
  FieldInfo("Name_locked", 4, DRIZZLE_TYPE_LONGLONG, 0, 0, "Name_locked", SKIP_OPEN_TABLE),
 
4301
  FieldInfo()
 
4302
};
 
4303
 
 
4304
 
 
4305
FieldInfo variables_fields_info[]=
 
4306
{
 
4307
  FieldInfo("VARIABLE_NAME", 64, DRIZZLE_TYPE_VARCHAR, 0, 0, "Variable_name",
 
4308
   SKIP_OPEN_TABLE),
 
4309
  FieldInfo("VARIABLE_VALUE", 16300, DRIZZLE_TYPE_VARCHAR, 0, 1, "Value", SKIP_OPEN_TABLE),
 
4310
  FieldInfo()
 
4311
};
 
4312
 
 
4313
 
 
4314
FieldInfo processlist_fields_info[]=
 
4315
{
 
4316
  FieldInfo("ID", 4, DRIZZLE_TYPE_LONGLONG, 0, 0, "Id", SKIP_OPEN_TABLE),
 
4317
  FieldInfo("USER", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "User", SKIP_OPEN_TABLE),
 
4318
  FieldInfo("HOST", LIST_PROCESS_HOST_LEN,  DRIZZLE_TYPE_VARCHAR, 0, 0, "Host",
 
4319
   SKIP_OPEN_TABLE),
 
4320
  FieldInfo("DB", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, "Db", SKIP_OPEN_TABLE),
 
4321
  FieldInfo("COMMAND", 16, DRIZZLE_TYPE_VARCHAR, 0, 0, "Command", SKIP_OPEN_TABLE),
 
4322
  FieldInfo("TIME", 7, DRIZZLE_TYPE_LONGLONG, 0, 0, "Time", SKIP_OPEN_TABLE),
 
4323
  FieldInfo("STATE", 64, DRIZZLE_TYPE_VARCHAR, 0, 1, "State", SKIP_OPEN_TABLE),
 
4324
  FieldInfo("INFO", PROCESS_LIST_INFO_WIDTH, DRIZZLE_TYPE_VARCHAR, 0, 1, "Info",
 
4325
   SKIP_OPEN_TABLE),
 
4326
  FieldInfo()
 
4327
};
 
4328
 
 
4329
 
 
4330
FieldInfo plugin_fields_info[]=
 
4331
{
 
4332
  FieldInfo("PLUGIN_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, "Name",
 
4333
   SKIP_OPEN_TABLE),
 
4334
  FieldInfo("PLUGIN_VERSION", 20, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, SKIP_OPEN_TABLE),
 
4335
  FieldInfo("PLUGIN_STATUS", 10, DRIZZLE_TYPE_VARCHAR, 0, 0, "Status", SKIP_OPEN_TABLE),
 
4336
  FieldInfo("PLUGIN_AUTHOR", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE),
 
4337
  FieldInfo("PLUGIN_DESCRIPTION", 65535, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, SKIP_OPEN_TABLE),
 
4338
  FieldInfo("PLUGIN_LICENSE", 80, DRIZZLE_TYPE_VARCHAR, 0, 1, "License", SKIP_OPEN_TABLE),
 
4339
  FieldInfo()
 
4340
};
 
4341
 
 
4342
FieldInfo referential_constraints_fields_info[]=
 
4343
{
 
4344
  FieldInfo("CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0, OPEN_FULL_TABLE),
 
4345
  FieldInfo("CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4346
   OPEN_FULL_TABLE),
 
4347
  FieldInfo("CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4348
   OPEN_FULL_TABLE),
 
4349
  FieldInfo("UNIQUE_CONSTRAINT_CATALOG", FN_REFLEN, DRIZZLE_TYPE_VARCHAR, 0, 1, 0,
 
4350
   OPEN_FULL_TABLE),
 
4351
  FieldInfo("UNIQUE_CONSTRAINT_SCHEMA", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4352
   OPEN_FULL_TABLE),
 
4353
  FieldInfo("UNIQUE_CONSTRAINT_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0,
 
4354
   MY_I_S_MAYBE_NULL, 0, OPEN_FULL_TABLE),
 
4355
  FieldInfo("MATCH_OPTION", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4356
  FieldInfo("UPDATE_RULE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4357
  FieldInfo("DELETE_RULE", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4358
  FieldInfo("TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0, OPEN_FULL_TABLE),
 
4359
  FieldInfo("REFERENCED_TABLE_NAME", NAME_CHAR_LEN, DRIZZLE_TYPE_VARCHAR, 0, 0, 0,
 
4360
   OPEN_FULL_TABLE),
 
4361
  FieldInfo()
4345
4362
};
4346
4363
 
4347
4364
static CharSetISMethods char_set_methods;
4444
4461
                                 -1, -1, true, false, 0,
4445
4462
                                 &variables_methods);
4446
4463
 
4447
 
/*
4448
 
  Description of ST_FIELD_INFO in table.h
4449
 
 
4450
 
  Make sure that the order of schema_tables and enum_schema_tables are the same.
4451
 
 
4452
 
*/
 
4464
/**
 
4465
 * @note
 
4466
 *   Make sure that the order of schema_tables and enum_schema_tables are the same.
 
4467
 */
4453
4468
 
4454
4469
InfoSchemaTable schema_tables[]=
4455
4470
{