diff options
author | unknown <monty@mysql.com> | 2005-05-14 00:01:40 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-05-14 00:01:40 +0300 |
commit | 037b0a7b14288f078bb3e6e75c14b4fc3181b4f0 (patch) | |
tree | f66bb31f8c3bb3a7c23d82b86abf8f0810f05403 /sql/sql_table.cc | |
parent | 04890a2e20d338a2f1b4b279c6dd6da3cd6d0f95 (diff) | |
parent | cdd6bc9bfeb1a82e7c7cfd8880f8e014ca5d9ff8 (diff) | |
download | mariadb-git-037b0a7b14288f078bb3e6e75c14b4fc3181b4f0.tar.gz |
Merge with 4.0
BitKeeper/etc/logging_ok:
auto-union
mysql-test/r/outfile2.result:
Merge rename: mysql-test/r/outfile.result -> mysql-test/r/outfile2.result
myisam/mi_key.c:
Auto merged
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/auto_increment.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/t/auto_increment.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
sql/handler.h:
Auto merged
mysql-test/t/alter_table.test:
Merge
mysql-test/t/outfile.test:
Merge
sql/item_func.cc:
Merge
sql/share/czech/errmsg.txt:
Merge
sql/share/danish/errmsg.txt:
Merge
sql/share/dutch/errmsg.txt:
Merge
sql/share/english/errmsg.txt:
Merge
sql/share/estonian/errmsg.txt:
Merge
sql/share/french/errmsg.txt:
Merge
sql/share/german/errmsg.txt:
Merge
sql/share/greek/errmsg.txt:
Merge
sql/share/hungarian/errmsg.txt:
Merge
sql/share/italian/errmsg.txt:
Merge
sql/share/japanese/errmsg.txt:
Merge
sql/share/korean/errmsg.txt:
Merge
sql/share/norwegian-ny/errmsg.txt:
Merge
sql/share/norwegian/errmsg.txt:
Merge
sql/share/polish/errmsg.txt:
Merge
sql/share/portuguese/errmsg.txt:
Merge
sql/share/romanian/errmsg.txt:
Merge
sql/share/russian/errmsg.txt:
Merge
sql/share/slovak/errmsg.txt:
Merge
sql/share/spanish/errmsg.txt:
Merge
sql/share/swedish/errmsg.txt:
Merge
sql/share/ukrainian/errmsg.txt:
Merge
sql/sql_table.cc:
Merge
sql/sql_yacc.yy:
Keep old
sql/unireg.cc:
Merge
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index c03edfdb012..7b0f24bcc45 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -451,7 +451,7 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, const char *key_name; create_field *sql_field,*dup_field; uint field,null_fields,blob_columns; - ulong pos; + ulong record_offset= 0; KEY *key_info; KEY_PART_INFO *key_part_info; int timestamps= 0, timestamps_with_niladic= 0; @@ -629,10 +629,9 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, } it2.rewind(); } - /* If fixed row records, we need one bit to check for deleted rows */ - if (!(db_options & HA_OPTION_PACK_RECORD)) - null_fields++; - pos=(null_fields+7)/8; + + /* record_offset will be increased with 'length-of-null-bits' later */ + record_offset= 0; it.rewind(); while ((sql_field=it++)) @@ -737,10 +736,10 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, } if (!(sql_field->flags & NOT_NULL_FLAG)) sql_field->pack_flag|=FIELDFLAG_MAYBE_NULL; - sql_field->offset= pos; + sql_field->offset= record_offset; if (MTYP_TYPENR(sql_field->unireg_check) == Field::NEXT_NUMBER) auto_increment++; - pos+=sql_field->pack_length; + record_offset+= sql_field->pack_length; } if (timestamps_with_niladic > 1) { @@ -1048,6 +1047,7 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, /* Implicitly set primary key fields to NOT NULL for ISO conf. */ sql_field->flags|= NOT_NULL_FLAG; sql_field->pack_flag&= ~FIELDFLAG_MAYBE_NULL; + null_fields--; } else key_info->flags|= HA_NULL_PART_KEY; @@ -1392,6 +1392,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, if (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE) create_info->data_file_name= create_info->index_file_name= 0; create_info->table_options=db_options; + create_info->null_bits= null_fields; if (rea_create_table(thd, path, create_info, fields, key_count, key_info_buffer)) |