Commit f3bb583c authored by unknown's avatar unknown

BUG#32050 - table logging gone wrong.

INSERT/UPDATE against CSV table created by MySQL earlier than 5.1.23
with NULL-able column results in server crash in debug builds.

Starting with 5.1.23 CSV doesn't permit creation of NULL-able columns,
but it is still possible to get such table from older MySQL versions.

Fixed by removing excessive DBUG_ASSERT().


scripts/mysql_system_tables_fix.sql:
  Starting with 5.1.23 CSV doesn't permit creation of NULL-able columns.
  Alter system CSV tables structure so that all columns are NOT NULL.
storage/csv/ha_tina.cc:
  Starting with 5.1.23 CSV doesn't permit creation of NULL-able columns,
  but it is still possible to get such table from older MySQL versions.
  
  Removed excessive DBUG_ASSERT().
parent c20245d2
......@@ -513,6 +513,22 @@ ALTER TABLE tables_priv MODIFY Table_priv set('Select','Insert','Update','Delete
UPDATE user SET Trigger_priv=Super_priv WHERE @hadTriggerPriv = 0;
#
# Log Table
#
ALTER TABLE general_log
MODIFY COLUMN user_host MEDIUMTEXT NOT NULL,
MODIFY COLUMN thread_id INTEGER NOT NULL,
MODIFY COLUMN server_id INTEGER NOT NULL,
MODIFY COLUMN command_type VARCHAR(64) NOT NULL,
MODIFY COLUMN argument MEDIUMTEXT NOT NULL;
ALTER TABLE slow_log
MODIFY COLUMN db VARCHAR(512) NOT NULL,
MODIFY COLUMN last_insert_id INTEGER NOT NULL,
MODIFY COLUMN insert_id INTEGER NOT NULL,
MODIFY COLUMN server_id INTEGER NOT NULL;
# Activate the new, possible modified privilege tables
# This should not be needed, but gives us some extra testing that the above
# changes was correct
......
......@@ -473,14 +473,6 @@ int ha_tina::encode_quote(uchar *buf)
const char *end_ptr;
const bool was_null= (*field)->is_null();
/*
CSV does not support nulls. ::create() prevents creation of a table
with nullable columns so if we encounter them here, there is a bug.
This may only occur if the frm was created by an older version of
mysqld which permitted table creation with nullable columns.
*/
DBUG_ASSERT(!(*field)->maybe_null());
/*
assistance for backwards compatibility in production builds.
note: this will not work for ENUM columns.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment