- Introduction
- Concepts
- Architecture
- Key Features
- Horizontal Scalability
- MySQL Compatible Syntax
- Replicate from and to MySQL
- Distributed Transactions with Strong Consistency
- Cloud Native Architecture
- Minimize ETL with HTAP
- Fault Tolerance & Recovery with Raft
- Automatic Rebalancing
- Deployment and Orchestration with Ansible, Kubernetes, Docker
- JSON Support
- Spark Integration
- Read Historical Data Without Restoring from Backup
- Fast Import and Restore of Data
- Hybrid of Column and Row Storage
- SQL Plan Management
- Open Source
- Online Schema Changes
- How-to
- Get Started
- Deploy
- Hardware Recommendations
- From Binary Tarball
- Orchestrated Deployment
- Geographic Redundancy
- Data Migration with Ansible
- Configure
- Secure
- Transport Layer Security (TLS)
- Generate Self-signed Certificates
- Monitor
- Migrate
- Maintain
- Common Ansible Operations
- Backup and Restore
- Use BR (recommended)
- Identify Abnormal Queries
- Scale
- Upgrade
- Troubleshoot
- Reference
- SQL
- MySQL Compatibility
- SQL Language Structure
- Attributes
- Data Types
- Functions and Operators
- Function and Operator Reference
- Type Conversion in Expression Evaluation
- Operators
- Control Flow Functions
- String Functions
- Numeric Functions and Operators
- Date and Time Functions
- Bit Functions and Operators
- Cast Functions and Operators
- Encryption and Compression Functions
- Information Functions
- JSON Functions
- Aggregate (GROUP BY) Functions
- Window Functions
- Miscellaneous Functions
- Precision Math
- List of Expressions for Pushdown
- SQL Statements
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ALTER DATABASE
ALTER INSTANCE
ALTER TABLE
ALTER USER
ANALYZE TABLE
BEGIN
CHANGE COLUMN
COMMIT
CREATE DATABASE
CREATE INDEX
CREATE ROLE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP ROLE
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEXES [FROM|IN]
SHOW INDEX [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW SCHEMAS
SHOW STATUS
SHOW [FULL] TABLES
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SPLIT REGION
START TRANSACTION
TRACE
TRUNCATE
UPDATE
USE
- Constraints
- Generated Columns
- Partitioning
- Character Set
- SQL Mode
- Views
- Configuration
- Security
- Transactions
- System Databases
- Errors Codes
- Supported Client Drivers
- Garbage Collection (GC)
- Performance
- Overview
- Understanding the Query Execution Plan
- The Blocklist of Optimization Rules and Expression Pushdown
- Introduction to Statistics
- TopN and Limit Push Down
- Optimizer Hints
- Follower Read
- Check the TiDB Cluster Status Using SQL Statements
- Execution Plan Binding
- Statement Summary Table
- Tune TiKV
- Operating System Tuning
- Column Pruning
- Key Monitoring Metrics
- Alert Rules
- Best Practices
- TiSpark
- TiKV
- TiFlash
- TiDB Binlog
- Tools
- Overview
- Use Cases
- Download
- TiDB Operator
- Table Filter
- Backup & Restore (BR)
- Mydumper
- Syncer
- Loader
- Data Migration
- TiDB Lightning
- sync-diff-inspector
- PD Control
- PD Recover
- TiKV Control
- TiDB Control
- TiDB in Kubernetes
- FAQs
- Support
- Contribute
- Releases
- All Releases
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- Glossary
Important
You are viewing the documentation of an older version of the TiDB database (TiDB v3.1).
It is recommended that you use the latest LTS version of the TiDB database.
TiDB 2.1.19 Release Notes
Release date: December 27, 2019
TiDB version: 2.1.19
TiDB Ansible version: 2.1.19
TiDB
- SQL Optimizer
- Optimize the scenario of
select max(_tidb_rowid) from t
to avoid full table scan #13294 - Fix the incorrect results caused by the incorrect value assigned to the user variable in the query and the push-down of predicates #13230
- Fix the issue that the statistics are not accurate because a data race occurs when statistics are updated #13690
- Fix the issue that the result is incorrect when the
UPDATE
statement contains both a sub-query and a stored generated column; fix theUPDATE
statement execution error when this statement contains two same-named tables from different databases #13357 - Fix the issue that the query plan might be incorrectly selected because the
PhysicalUnionScan
operator incorrectly sets the statistics #14134 - Remove the
minAutoAnalyzeRatio
constraint to make the automaticANALYZE
more timely #14013 - Fix the issue that the estimated number of rows is greater than
1
when theWHERE
clause contains an equal condition on the unique key #13385
- Optimize the scenario of
- SQL Execution Engine
- Fix the precision overflow when using
int64
as the intermediate result ofunit64
inConvertJSONToInt
#13036 - Fix the issue that when the
SLEEP
function is in a query (for example,select 1 from (select sleep(1)) t;)
), column pruning causessleep(1)
in the query to be invalid #13039 - Reduce memory overhead by reusing
Chunk
in theINSERT ON DUPLICATE UPDATE
statement #12999 - Add more transaction-related fields for the
slow_query
table #13129:Prewrite_time
Commit_time
Get_commit_ts_time
Commit_backoff_time
Backoff_types
Resolve_lock_time
Local_latch_wait_time
Write_key
Write_size
Prewrite_region
Txn_retry
- Fix the issue that a subquery contained in an
UPDATE
statement is incorrectly converted; fix theUPDATE
execution failure when theWHERE
clause contains a subquery #13120 - Support executing
ADMIN CHECK TABLE
on partitioned tables #13143 - Fix the issue that the precision of statements such as
SHOW CREATE TABLE
is incomplete whenON UPDATE CURRENT_TIMESTAMP
is used as a column attribute and floating point precision is specified #12462 - Fix the panic occurred when executing the
SELECT * FROM information_schema.KEY_COLUMN_USAGE
statement because the foreign key is not checked when dropping, modifying or changing the column #14162 - Fix the issue that the returned data might be duplicated when
Streaming
is enabled in TiDB #13255 - Fix the
Invalid time format
error caused by daylight saving time #13624 - Fix the issue that data is incorrect because the precision is lost when an integer is converted to an unsigned floating point or decimal type #13756
- Fix the issue that an incorrect type of value is returned when the
Quote
function handles theNULL
value #13681 - Fix the issue that the timezone is incorrect after parsing the date from strings using
gotime.Local
#13792 - Fix the issue that the result might be incorrect because the
binSearch
function does not return an error in the implementation ofbuiltinIntervalRealSig
#13768 - Fix the issue that an error might occur when converting the string type to the floating point type in the
INSERT
statement execution #14009 - Fix the incorrect result returned from the
sum(distinct)
function #13041 - Fix the issue that
data too long
is returned whenCAST
converting the data inunion
of the same location to the merged type because the returned type length of thejsonUnquoteFunction
function is given an incorrect value #13645 - Fix the issue that the password cannot be set because the privilege check is too strict #13805
- Fix the precision overflow when using
- Server
- Fix the issue that
KILL CONNECTION
might cause the goroutine leak #13252 - Support getting the binlog status of all TiDB nodes via the
info/all
interface of the HTTP API #13188 - Fix the failure to build the TiDB project on Windows #13650
- Add the
server-version
configuration item to control and modify the version of TiDB server #13904 - Fix the issue that the binary
plugin
compiled with Go1.13 does not run normally #13527
- Fix the issue that
- DDL
- Use the table’s
COLLATE
instead of the system’s default charset in the column when a table is created and the table containsCOLLATE
#13190 - Limit the length of the index name when creating a table #13311
- Fix the issue that the length of the table name is not checked when renaming a table #13345
- Check the width range of the
BIT
column #13511 - Make the error information output from
change/modify column
more understandable #13798 - Fix the issue that when executing the
drop column
operation that has not yet been handled by the downstream Drainer, the downstream might receive DML operations without the affected column #13974
- Use the table’s
TiKV
- Raftstore
- Fix the panic occurred when restarting TiKV and
is_merging
is given an incorrect value in the process of merging Regions and applying the Compact log #5884
- Fix the panic occurred when restarting TiKV and
- Importer
- Remove the limit on the gRPC message length #5809
PD
- Improve the performance of the HTTP API for getting all Regions #1988
- Upgrade etcd to fix the issue that etcd PreVote cannot elect a leader (downgrade not supported) #2052
Tools
- TiDB Binlog
- Optimize the node status information output through binlogctl #777
- Fix the panic occurred because of the
nil
value in the Drainer filter configuration #802 - Optimize the
Graceful
exit of Pump #825 - Add more detailed monitoring metrics when Pump writes binlog data #830
- Optimize Drainer’s logic to refresh table information after Drainer has executed a DDL operation #836
- Fix the issue that the commit binlog of a DDL operation is ignored when Pump does not receive this binlog #855
TiDB Ansible
What’s on this page
Was this page helpful?