- Docs Home
- About TiDB
- Quick Start
- Develop
- Overview
- Quick Start
- Build a TiDB Cluster in TiDB Cloud (Developer Tier)
- CRUD SQL in TiDB
- Build a Simple CRUD App with TiDB
- Example Applications
- Connect to TiDB
- Design Database Schema
- Write Data
- Read Data
- Transaction
- Optimize
- Troubleshoot
- Reference
- Cloud Native Development Environment
- Third-party Support
- Deploy
- Software and Hardware Requirements
- Environment Configuration Checklist
- Plan Cluster Topology
- Install and Start
- Verify Cluster Status
- Test Cluster Performance
- Migrate
- Overview
- Migration Tools
- Migration Scenarios
- Migrate from Aurora
- Migrate MySQL of Small Datasets
- Migrate MySQL of Large Datasets
- Migrate and Merge MySQL Shards of Small Datasets
- Migrate and Merge MySQL Shards of Large Datasets
- Migrate from CSV Files
- Migrate from SQL Files
- Migrate from One TiDB Cluster to Another TiDB Cluster
- Migrate from TiDB to MySQL-compatible Databases
- Advanced Migration
- Integrate
- Maintain
- Monitor and Alert
- Troubleshoot
- TiDB Troubleshooting Map
- Identify Slow Queries
- Analyze Slow Queries
- SQL Diagnostics
- Identify Expensive Queries Using Top SQL
- Identify Expensive Queries Using Logs
- Statement Summary Tables
- Troubleshoot Hotspot Issues
- Troubleshoot Increased Read and Write Latency
- Save and Restore the On-Site Information of a Cluster
- Troubleshoot Cluster Setup
- Troubleshoot High Disk I/O Usage
- Troubleshoot Lock Conflicts
- Troubleshoot TiFlash
- Troubleshoot Write Conflicts in Optimistic Transactions
- Troubleshoot Inconsistency Between Data and Indexes
- Performance Tuning
- Tuning Guide
- Configuration Tuning
- System Tuning
- Software Tuning
- SQL Tuning
- Overview
- Understanding the Query Execution Plan
- SQL Optimization Process
- Overview
- Logic Optimization
- Physical Optimization
- Prepare Execution Plan Cache
- Control Execution Plans
- Tutorials
- TiDB Tools
- Overview
- Use Cases
- Download
- TiUP
- Documentation Map
- Overview
- Terminology and Concepts
- Manage TiUP Components
- FAQ
- Troubleshooting Guide
- Command Reference
- Overview
- TiUP Commands
- TiUP Cluster Commands
- Overview
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DM Commands
- Overview
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDB Cluster Topology Reference
- DM Cluster Topology Reference
- Mirror Reference Guide
- TiUP Components
- PingCAP Clinic Diagnostic Service
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- About TiDB Data Migration
- Architecture
- Quick Start
- Deploy a DM cluster
- Tutorials
- Advanced Tutorials
- Maintain
- Cluster Upgrade
- Tools
- Performance Tuning
- Manage Data Sources
- Manage Tasks
- Export and Import Data Sources and Task Configurations of Clusters
- Handle Alerts
- Daily Check
- Reference
- Architecture
- Command Line
- Configuration Files
- OpenAPI
- Compatibility Catalog
- Secure
- Monitoring and Alerts
- Error Codes
- Glossary
- Example
- Troubleshoot
- Release Notes
- Backup & Restore (BR)
- TiDB Binlog
- TiCDC
- Dumpling
- sync-diff-inspector
- TiSpark
- Reference
- Cluster Architecture
- Key Monitoring Metrics
- Secure
- Privileges
- SQL
- SQL Language Structure and Syntax
- SQL Statements
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER TABLE COMPACT
ALTER USER
ANALYZE TABLE
BACKUP
BATCH
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
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
RESTORE
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 [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- Data Types
- Functions and Operators
- Overview
- 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
- Locking Functions
- Information Functions
- JSON Functions
- Aggregate (GROUP BY) Functions
- Window Functions
- Miscellaneous Functions
- Precision Math
- Set Operations
- List of Expressions for Pushdown
- TiDB Specific Functions
- Clustered Indexes
- Constraints
- Generated Columns
- SQL Mode
- Table Attributes
- Transactions
- Garbage Collection (GC)
- Views
- Partitioning
- Temporary Tables
- Cached Tables
- Character Set and Collation
- Placement Rules in SQL
- System Tables
mysql
- INFORMATION_SCHEMA
- Overview
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- TiDB Dashboard
- Overview
- Maintain
- Access
- Overview Page
- Cluster Info Page
- Top SQL Page
- Key Visualizer Page
- Metrics Relation Graph
- SQL Statements Analysis
- Slow Queries Page
- Cluster Diagnostics
- Search Logs Page
- Instance Profiling
- Session Management and Configuration
- FAQ
- CLI
- Command Line Flags
- Configuration File Parameters
- System Variables
- Storage Engines
- Telemetry
- Errors Codes
- Table Filter
- Schedule Replicas by Topology Labels
- FAQs
- Release Notes
- All Releases
- Release Timeline
- TiDB Versioning
- v6.1
- v6.0
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- Glossary
TiDB 3.0.2 Release Notes
Release date: August 7, 2019
TiDB version: 3.0.2
TiDB Ansible version: 3.0.2
TiDB
- SQL Optimizer
- Fix the issue that the “Can’t find column in schema” message is reported when the same table occurs multiple times in a query and logically the query result is always empty #11247
- Fix the issue that the query plan does not meet the expectation caused by the
TIDB_INLJ
hint not working correctly in some cases (likeexplain select /*+ TIDB_INLJ(t1) */ t1.b, t2.a from t t1, t t2 where t1.b = t2.a
) #11362 - Fix the issue that the column name in the query result is wrong in some cases (like
SELECT IF(1,c,c) FROM t
) #11379 - Fix the issue that some queries like
SELECT 0 LIKE 'a string'
returnTRUE
because theLIKE
expression is implicitly converted to 0 in some cases #11411 - Support sub-queries in the
SHOW
statement, likeSHOW COLUMNS FROM tbl WHERE FIELDS IN (SELECT 'a')
#11459 - Fix the issue that the related column of the aggregate function cannot be found and an error is reported caused by the
outerJoinElimination
optimizing rule not correctly handling the column alias; improve alias parsing in the optimizing process to make optimization cover more query types #11377 - Fix the issue that no error is reported when the syntax restriction is violated in the Window function (for example,
UNBOUNDED PRECEDING
is not allowed to appear at the end of the Frame definition) #11543 - Fix the issue that
FUNCTION_NAME
is in uppercase in theERROR 3593 (HY000): You cannot use the window function FUNCTION_NAME in this context
error message, which causes incompatibility with MySQL #11535 - Fix the issue that the unimplemented
IGNORE NULLS
syntax in the Window function is used but no error is reported #11593 - Fix the issue that the Optimizer does not correctly estimate time equal conditions #11512
- Support updating the Top-N statistics based on the feedback information #11507
- SQL Execution Engine
- Fix the issue that the returned value is not
NULL
when theINSERT
function containsNULL
in parameters #11248 - Fix the issue that the computing result might be wrong when the partitioned table is checked by the
ADMIN CHECKSUM
operation #11266 - Fix the issue that the result might be wrong when INDEX JOIN uses the prefix index #11246
- Fix the issue that result might be wrong caused by incorrectly aligning fractions when the
DATE_ADD
function does subtraction on date numbers involving microseconds #11288 - Fix the wrong result caused by the
DATE_ADD
function incorrectly processing the negative numbers inINTERVAL
#11325 - Fix the issue that the number of fractional digits returned by
Mod(%)
,Multiple(*)
orMinus(-)
is different from that in MySQL whenMod(%)
,Multiple(*)
orMinus(-)
returns 0 and the number of fractional digits is large (likeselect 0.000 % 0.11234500000000000000
) #11251 - Fix the issue that
NULL
with a warning is incorrectly returned when the length of the result returned byCONCAT
andCONCAT_WS
functions exceedsmax_allowed_packet
#11275 - Fix the issue that
NULL
with a warning is incorrectly returned when parameters in theSUBTIME
andADDTIME
functions are invalid #11337 - Fix the issue that
NULL
is incorrectly returned when parameters in theCONVERT_TZ
function are invalid #11359 - Add the
MEMORY
column to the result returned byEXPLAIN ANALYZE
to show the memory usage of this query #11418 - Add
CARTESIAN
Join to the result ofEXPLAIN
#11429 - Fix the incorrect data of auto-increment columns of the float and double types #11385
- Fix the panic issue caused by some
nil
information when pseudo statistics are dumped #11460 - Fix the incorrect query result of
SELECT … CASE WHEN … ELSE NULL ...
caused by constant folding optimization #11441 - Fix the issue that
floatStrToIntStr
does not correctly parse the input such as+999.9999e2
#11473 - Fix the issue that
NULL
is not returned in some cases when the result of theDATE_ADD
andDATE_SUB
function overflows #11476 - Fix the issue that the conversion result is different from that in MySQL if the string contains an invalid character when a long string is converted to an integer #11469
- Fix the issue that the result of the
REGEXP BINARY
function is incompatible with MySQL caused by case sensitiveness of this function #11504 - Fix the issue that an error is reported when the
GRANT ROLE
statement receivesCURRENT_ROLE
; fix the issue that theREVOKE ROLE
statement does not correctly revoke themysql.default_role
privilege #11356 - Fix the display format issue of the
Incorrect datetime value
warning information when executing statements likeSELECT ADDDATE('2008-01-34', -1)
#11447 - Fix the issue that the error message reports
constant … overflows float
rather thanconstant … overflows bigint
if the result overflows when a float field of the JSON data is converted to an integer #11534 - Fix the issue that the result might be wrong caused by incorrect type conversion when the
DATE_ADD
function receivesFLOAT
,DOUBLE
andDECIMAL
column parameters #11527 - Fix the wrong result caused by incorrectly processing the sign of the INTERVAL fraction in the
DATE_ADD
function #11615 - Fix the incorrect query result when Index Lookup Join contains the prefix index caused by
Ranger
not correctly handling the prefix index #11565 - Fix the issue that the “Incorrect arguments to NAME_CONST” message is reported if the
NAME_CONST
function is executed when the second parameter ofNAME_CONST
is a negative number #11268 - Fix the issue that the result is incompatible with MySQL when an SQL statement involves computing the current time and the value is fetched multiple times; use the same value when fetching the current time for the same SQL statement #11394
- Fix the issue that
Close
is not called forChildExecutor
when theClose
ofbaseExecutor
reports an error. This issue might lead to Goroutine leaks when theKILL
statements do not take effect andChildExecutor
is not closed #11576
- Fix the issue that the returned value is not
- Server
- Fix the issue that the auto-added value is 0 instead of the current timestamp when
LOAD DATA
processes the missingTIMESTAMP
field in the CSV file #11250 - Fix issues that the
SHOW CREATE USER
statement does not correctly check related privileges, andUSER
andHOST
returned bySHOW CREATE USER CURRENT_USER()
might be wrong #11229 - Fix the issue that the returned result might be wrong when
executeBatch
is used in JDBC #11290 - Reduce printing the log information of the streaming client when changing the TiKV server’s port #11370
- Optimize the logic of reconnecting the streaming client to the TiKV server so that the streaming client will not be blocked for a long time #11372
- Add
REGION_ID
inINFORMATION_SCHEMA.TIDB_HOT_REGIONS
#11350 - Cancel the timeout duration of obtaining Region information from the PD API to ensure that obtaining Region information will not end in a failure when TiDB API
http://{TiDBIP}:10080/regions/hot
is called due to PD timeout when the number of Regions is large #11383 - Fix the issue that Region related requests do not return partitioned table-related Regions in the HTTP API #11466
- Make the following changes to reduce the probability of locking timeout caused by slow operations when the user manually validates pessimistic locking #11521:
- Increase the default TTL of pessimistic locking from 30 seconds to 40 seconds
- Increase the maximum TTL from 60 seconds to 120 seconds
- Calculate the pessimistic locking duration from the first
LockKeys
request
- Change the
SendRequest
function logic in the TiKV client: try to immediately connect to another peer instead of keeping waiting when the connect cannot be built #11531 - Optimize the Region cache: label the removed store as invalid when a store is moved while another store goes online with a same address, to update the store information in the cache as soon as possible #11567
- Add the Region ID to the result returned by the
http://{TiDB_ADDRESS:TIDB_IP}/mvcc/key/{db}/{table}/{handle}
API #11557 - Fix the issue that Scatter Table does not work caused by the Scatter Table API not escaping the Range key #11298
- Optimize the Region cache: label the store where the Region exists as invalid when the correspondent store is inaccessible, to avoid reduced query performance caused by accessing this store #11498
- Fix the error that the table schema can still be obtained through the HTTP API after dropping the database with the same name multiple times #11585
- Fix the issue that the auto-added value is 0 instead of the current timestamp when
- DDL
- Fix the issue that an error occurs when a non-string column with a zero length is being indexed #11214
- Disallow modifying the columns with foreign key constraints and full-text indexes (Note: TiDB still supports foreign key constraints and full-text indexes in syntax) #11274
- Fix the issue that the index offset of the column might be wrong because the position changed by the
ALTER TABLE
statement and the default value of the column are used concurrently #11346 - Fix two issues that occur when parsing JSON files:
- Disallow dropping indexes on the auto-increment column to avoid that the auto-increment column might get an incorrect result #11399
- Fix the following issues #11492:
- The character set and the collation of the column are not consistent when explicitly specifying the collation but not the character set
- The error is not correctly reported when there is a conflict between the character set and the collation that are specified by
ALTER TABLE … MODIFY COLUMN
- Incompatibility with MySQL when using
ALTER TABLE … MODIFY COLUMN
to specify character sets and collations multiple times
- Add the trace details of the subquery to the result of the
TRACE
query #11458 - Optimize the performance of executing
ADMIN CHECK TABLE
and greatly reduce its execution time #11547 - Add the result returned by
SPLIT TABLE … REGIONS/INDEX
and makeTOTAL_SPLIT_REGION
andSCATTER_FINISH_RATIO
display the number of Regions that have been split successfully before timeout in the result #11484 - Fix the issue that the precision displayed by statements like
SHOW CREATE TABLE
is incomplete whenON UPDATE CURRENT_TIMESTAMP
is the column attribute and the float precision is specified #11591 - Fix the issue that the index result of the column cannot be correctly calculated when the expression of a virtual generated column contains another virtual generated column #11475
- Fix the issue that the minus sign cannot be added after
VALUE LESS THAN
in theALTER TABLE … ADD PARTITION …
statement #11581
- Monitor
TiKV
- Fix the bug that TiKV panics if the Raft log is not written in time #5160
- Fix the bug that the panic information is not written into the log file after TiKV panics #5198
- Fix the bug that the Insert operation might be incorrectly performed in the pessimistic transaction #5203
- Lower the output level of some logs that require no manual intervention to INFO #5193
- Improve the accuracy of monitoring the storage engine size #5200
- Improve the accuracy of the Region size in tikv-ctl #5195
- Improve the performance of the deadlock detector for pessimistic locking #5192
- Improve the performance of GC in the Titan storage engine #5197
PD
- Fix the bug that the Scatter Region scheduler cannot work #1642
- Fix the bug that the merge Region operation cannot be performed in pd-ctl #1653
- Fix the bug that the remove-tombstone operation cannot be performed in pd-ctl #1651
- Fix the issue that the Region overlapping with the key scope cannot be found when performing the scan Region operation #1648
- Add the retrying mechanism to make sure that the members are added successfully in PD #1643
Tools
TiDB Binlog
- Add the configuration item check feature when starting, which will stop the Binlog service and report an error when an invalid item is found #687
- Add the
node-id
configuration in Drainer to specify a specific logic used by Drainer #684
TiDB Lightning
- Fix the issue that
tikv_gc_life_time
fails to be changed back to its original value when 2 checksums are running at the same time #218 - Add the configuration item check feature when starting, which will stop the Binlog service and report an error when an invalid item is found #217
TiDB Ansible
- Fix the unit error that the Disk Performance monitor treats seconds as milliseconds #840
- Add the
log4j
configuration file in Spark #841 - Fix the issue that the Prometheus configuration file is generated in the wrong format when Binlog is enabled and Kafka or ZooKeeper is configured #844
- Fix the issue that the
pessimistic-txn
configuration parameter is left out in the generated TiDB configuration file #850 - Add and optimize metrics on the TiDB Dashboard #853
- Add descriptions for each monitoring item on the TiDB Dashboard #854
- Add the TiDB Summary Dashboard to better view the cluster status and troubleshoot issues #855
- Update the Allocator Stats monitoring item on the TiKV Dashboard #857
- Fix the unit error in the Node Exporter’s alerting expression #860
- Upgrade the TiSpark jar package to v2.1.2 #862
- Update the descriptions of the Ansible Task feature #867
- Update the expression of the local reader requests monitoring item on the TiDB Dashboard #874
- Update the expression of the TiKV Memory monitoring item on the Overview Dashboard, and fix the issue of wrongly displayed monitoring #879
- Remove the Binlog support in the Kafka mode #878
- Fix the issue that PD fails to transfer the Leader when executing the
rolling_update.yml
operation #887
What’s on this page
Was this page helpful?