* consecutive id
* add AllocN interface func for util/kvencoder/allocator.go
* fix allocN test
* fix allocN tests
* fix allocN test 1
* fix allocN test 2
* fix allocN test 3
* fix allocN test 4
* fix cache
* add auto consecutive increment id in insert executor
* add auto consecutive increment id comment in insert executor
* try fix test case
* fix session_test.TestAutoIncrementID autoid overflow
* fix session_test.TestAutoIncrementID unsighed autoid overflow
* fix autoid usigned computing overflow
* fix conflict with suli's PR
* fix index out of range
* merge similar function
* delete fillRowLazy
* fix commment
* fix bug of rebase
* fix auto.go maxUint64 will be allocated
* fix maxInt64 autoid allocated
* fix batch rowIdx update
* add maxUint64 and maxInt64 limit in allocN
* reconstruct the autoid lazy alloc
* fix format
* remove commnet
* use new kind of logutil.logger(ctx) instead of logutil.BgLogger()
* combine alloc() and allocN together
* remove cache of hasValue
* remove cache of hasValue
* remove cache of hasValue
* remove cache of hasValue
* add test : autoID can find in retryInfo
* add test : autoID can find in retryInfo
* extract retry logic
* extract retry logic
* Update executor/insert_common.go
Co-Authored-By: bb7133 <bb7133@gmail.com>
* Update executor/insert_common.go
Co-Authored-By: bb7133 <bb7133@gmail.com>
* fix comment
* fix comment
* fix comment
* fix comment
* fix comment
* return min and max instead of slice in alloc autoid
* return min and max instead of slice in alloc autoid
* return min and max instead of slice in alloc autoid
* add comment for alloc N
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.