Make lots of fixes to handle the most complex case of reorganising
of partitions where two-phased processes are needed in some cases.
sql/ha_partition.cc:
Rewrote the rename partitions and drop partitions to align with how
the table log handles things.
sql/handler.h:
Added new entry to partition_element to keep track of log entry for
a partition during ALTER TABLE that reorganises existing partitions.
sql/mysql_priv.h:
Converted 'd', 'e' and so forth to constants with somewhat more
descriptive names
Added method to inactivate log entries
sql/sql_partition.cc:
Fix change of partitions
sql/sql_table.cc:
More constants with somewhat descriptive names
Moved around some methods between internal part and external part
Added new method to handle inactivation of log entries
New function to set exec_log_entry
Moving code outside lock of table log
Fixing some initialisations of list reference to avoid
releasing wrong parts
sql/sql_partition.cc:
New function to set exec_log_entry
Moving code outside lock of table log
Fixing some initialisations of list reference to avoid
releasing wrong parts
sql/sql_table.cc:
Initialisation of write_header needed
A little more complete handling
sql/mysql_priv.h:
Complete flag
sql/sql_table.cc:
A little more complete handling
sql/sql_partition.cc:
A little more complete handling
A number of fixes
sql/handler.h:
A numbre of fixes
sql/mysql_priv.h:
A numbre of fixes
sql/share/errmsg.txt:
A numbre of fixes
sql/sql_partition.cc:
A numbre of fixes
sql/sql_table.cc:
A numbre of fixes
Step 14: First version of table log for add/Drop partition
sql/ha_partition.cc:
Moved create partition name code to sql_partition.cc
sql/handler.h:
Added entries in partition_info to keep track of table log entries
sql/mysql_priv.h:
Moved create partition name code to sql_partition.cc
sql/sql_partition.cc:
Moved create partition name code to sql_partition.cc
First version of table log for add/drop partition
sql/sql_table.cc:
Add IO_SIZE to table log header
Close down table log also at exit of main thread
sql/mysqld.cc:
Close down table log also at exit of main thread
sql/sql_table.cc:
Close down table log also at exit of main thread
Lots of compilation fixes
sql/mysql_priv.h:
Lots of compilation fixes
sql/sql_partition.cc:
Lots of compilation fixes
sql/sql_table.cc:
Lots of compilation fixes
Most of the code for handling the table log is in place now, except
the action part at recovery and proper error handling in some places.
sql/mysql_priv.h:
Removed internal methods from external table log interface
Added and changed interface
sql/mysqld.cc:
Added call to execute table log recovery
sql/sql_table.cc:
Most of the code for handling the table log is in place now, except
the action part at recovery and proper error handling in some places.
Lots of new code for table log
include/my_sys.h:
Spell error
sql/mysql_priv.h:
More structs and methods for table log
sql/sql_partition.cc:
lock/unlock global table log mutex
sql/sql_table.cc:
Lots of new code for table log
New methods to read/write/initialise table log
sql/mysql_priv.h:
New methods to read/write/initialise table log
sql/sql_table.cc:
New methods to read/write/initialise table log
BUILD/SETUP.sh:
Fixed BUILD scripts
BUILD/compile-pentium-debug-max:
Fixed BUILD scripts
sql/ha_partition.cc:
Need to handle states differently when creating handler files
sql/mysql_priv.h:
Some error inject fixes
sql/mysqld.cc:
Some error inject fixes
sql/set_var.cc:
Some error inject fixes
sql/sql_partition.cc:
Fixing a bug with generate partition syntax
A number of fixes
sql/sql_table.cc:
Fix a few bugs
sql/table.cc:
fix
There are (at least) two implementations of the checksum
computation. One is in MyISAM for the quick checksum. It
is executed on every row change. The other is in the
SQL layer for the extended checksum. It retrieves all rows
of a table via the respective storage engine.
In former MySQL versions varchars were stored with their
maximum length, but now with their real length similar to
blobs.
This change had been forgotten to take care of in the
extended checksum calculation. Hence too much data was
checksumed. In MyISAM this change had been taken care of
already. Only the real data is included in the checksum.
I changed mysql_checksum_table() so that it uses the
length information of true varchar fields instead
of the field length like in former varchar
implementations.
mysql-test/r/innodb.result:
Bug#8841 - CHECKSUM TABLE is broken in MyISAM
Fixed test results.
mysql-test/r/myisam.result:
Bug#8841 - CHECKSUM TABLE is broken in MyISAM
Fixed test results.
sql/sql_table.cc:
Bug#8841 - CHECKSUM TABLE is broken in MyISAM
Changed mysql_checksum_table() so that it uses the
length information of true varchar fields instead
of the field length like in former varchar
implementations.
There are (at least) two implementations of the checksum
computation. One is in MyISAM for the quick checksum. It
is executed on every row change. The other is in the
SQL layer for the extended checksum. It retrieves all rows
of a table via the respective storage engine.
In former MySQL versions varchars were stored with their
maximum length, but now with their real length similar to
blobs.
This change had been forgotten to take care of in the
extended checksum calculation. Hence too much data was
checksumed. In MyISAM this change had been taken care of
already. Only the real data is included in the checksum.
I changed mysql_checksum_table() so that it uses the
length information of true varchar fields instead
of the field length like in former varchar
implementations.
Interface changes pushed early.
Separation of public and implementation interface for external_lock()
in preparation for implementation.
sql/handler.cc:
Separating public virtual external_lock() into public non-virtual
ha_external_lock() and private virtual external_lock(). Some minor
changes to ha_*_row() function.
sql/handler.h:
Separating public virtual external_lock() into public non-virtual
ha_external_lock() and private virtual external_lock().
sql/lock.cc:
Using new public ha_external_lock instead of internal external_lock.
sql/opt_range.cc:
Using new public ha_external_lock instead of internal external_lock.
sql/sql_table.cc:
Using new public ha_external_lock instead of internal external_lock.