TiDB root@localhost:test> CREATE TABLE `t4_gi` (
-> `id` int NOT NULL,
-> PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
-> /*T![softdelete] KEY `i1` (`_tidb_softdelete_time`) GLOBAL */,
-> KEY `i2` (`id`),
-> KEY `i3` (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
-> PARTITION BY HASH (`id`) PARTITIONS 4
-> SOFTDELETE_JOB_INTERVAL='24h';
(1064, 'You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 9 column 24 near "SOFTDELETE_JOB_INTERVAL=\'24h\'" ')
TiDB root@localhost:test> CREATE TABLE `t4_gi` (
-> `id` int NOT NULL,
-> PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
-> /*T![softdelete] , KEY `i1` (`_tidb_softdelete_time`) GLOBAL */,
-> KEY `i2` (`id`),
-> KEY `i3` (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
-> SOFTDELETE=RETENTION 7 DAY SOFTDELETE_JOB_INTERVAL='24h';
(1072, 'column does not exist: _tidb_softdelete_time')
Design Doc: #64294
Development Tasks
Feature Branches
Please merge the PRs to the feature branches:
SoftDelete
TiDB
Parser & Optimizer
M1
_tidb_commit_tsnew hidden column | tidb-test=pr/2635 #64610INSERTstatements for softdelete table semantic in planner | tidb-test=feature/active-active tikv=feature/active-active #64892SELECTstatement and softdelete filters | tidb-test=feature/active-active tikv=feature/active-active #64918tidb_translate_softdelete_sqlsupport and fix the point get fast path in planner | tidb-test=feature/active-active tikv=feature/active-active #64993buildUpdateandbuildDeleteto reduce code repetition and prepare for later changes | tidb-test=feature/active-active tikv=feature/active-active #65033DELETEstatement rewrite for softdelete tables | tidb-test=feature/active-active tikv=feature/active-active #65013M2
TIDB_SOFTDELETE_TABLE_STATSsystem table for softdelete tables | tidb-test=feature/active-active tikv=feature/active-active #65409tidb_translate_softdelete_sqlvariable into the plan cache key | tidb-test=feature/active-active tikv=feature/active-active #65053_tidb_softdelete_timewhentidb_translate_softdelete_sqlis off | tidb-test=feature/active-active tikv=feature/active-active #65199RECOVER VALUESstatements for softdelete tables | tidb-test=feature/active-active tikv=feature/active-active #65389DDL
M1
M2
information_schema.tidb_softdelete_table_statssystem table. *: addTIDB_SOFTDELETE_TABLE_STATSsystem table for softdelete tables | tidb-test=feature/active-active tikv=feature/active-active #65409CREATE TABLE/ADD COLUMNActionTypemust be determined_tidb_commit_ts_tidb_origin_tsand_tidb_softdelete_timeM3:
Executors
M1
InsertExecsupports replacing softdelete rows instead of returning an error when a conflict occurs. #64701M2
FOR UPDATEshould lock the row even if it does not exist or is soft-deleted. #65171M3
Active-Active Support
PD
M1
proto
M1
TiKV
M1
client-go
M1
Getalways returnnilvalue when not found tikv/client-go#1798MinCommitTSmanually for a transaction. #64797TiDB
Parser & Optimizer
M1
_tidb_commit_tshidden column and passing corresponding information to the executor.M2
_tidb_commit_tscolumn | tidb-test=feature/active-active tikv=feature/active-active #65507M3
DDL
M1
active_activeoptions and AST in parser, including comment format in restoreExecutors & Transaction
M1
WithRequireCommitTS#64537WithReturnCommitTS| tidb-test=957ed0b #64538_tidb_origin_tsnot null. #64893_tidb_commit_ts#64721M2
_tidb_commit_ts#65268M3
Observability
M2
TTL
CDC
M1
M2
Others
Tool compatibility
M3
Master Cherry Pick
TiKV
need_commit_tsfor TiKV command batch_get_command tikv/tikv#19301RangesScannerwhen it is required tikv/tikv#19333Client-go
WithReturnCommitTSandSetCommitWaitUntilTSOtikv/client-go#1831ErrCommitTSLagwhen waiting forcommitWaitUntilTSOtimeout tikv/client-go#1842SetCommitWaitUntilTSOTimeoutdoes not work in causal consistency tikv/client-go#1847WithReturnCommitTSis used (#1861) tikv/client-go#1864TiDB
WithReturnCommitTS#65306_tidb_commit_tsnew hidden column | tidb-test=pr/2663 #65620Release-8.5
kvproto
client-go
WithReturnCommitTSis used tikv/client-go#1861SetCommitWaitUntilTSOTimeoutand do not wait TSO tikv/client-go#1875TiKV
TiDB