DESC table_with_generated_column;
SHOW CREATE TABLE table_with_generated_column;
If generated expression in DDL references bad column, throw error;
If alter table change/drop column dependent by other columns, throw error;
if alter table change/modify generated columns, throw error if needs.
1. FromPackedUint don't consider time_zone any more, moved to Unflatten
2. use session's time_zone instead of time.Local
3. add a time.Location parameter to some Encode/Decode functions in tablecodec
When insert and update happens, we will cache the changed info in every session. After a duration(five minutes now) passes, handle will sweep every cache and merge them. Then dump the delta info to TiKV.
When old row has invalid utf8 value and the data doesn't change, we should not fail to update.
So temporarily disable utf8 check until we can handle this problem.
* *: change log level
* *: do not truncate
Make transaction life cycle under control, prepare for correctly handle schema out of date error.
The old `GetTxn(forceNew boll)` is replaced by `Txn` and `NewTxn`,
`CommitTxn` and `RollbackTxn` is removed.
When datum converts to decimal, we should check the Flen and Decimal of
the given field type, return max value for overflow and round the value
for truncation.
Column length defined in create table should limits the rune count rather than bytes.
And MySQL doesn't return error for inserting invalid UTF8 string, we should not do it.
When schema version has changed, we don't need to reload all schemas, only
modified table need to be reloaded, this will reduce the pressure on Go garbage collector.
Also removed used map in *inforSchema.
We need to check if the input data is valid UTF8 string if the column charset is UTF8,
Otherwise, it may cause more serious error in the future, and hard to fix.
Pass query string in context, also disallows prepare DDL, so we can be sure that
DDL query do not contains parameter marker.
change binlog row encoding format.
including columnID in binlog row, so it can be adapted to different schema version.
prepend old row for update binlog when don't have PK.