PolarDB-X 1.0 is highly compatible with the MySQL protocol and SQL syntax. However, the distributed architecture introduces constraints that do not apply to single-instance MySQL databases. This page lists all SQL statements and features that PolarDB-X 1.0 does not support.
General limits
The following MySQL features are unsupported due to the distributed nature of PolarDB-X 1.0. Distributed execution requires that all operations be decomposable and routable across shards, which makes server-side procedural constructs and stateful session objects incompatible by design.
| Feature | Details |
|---|---|
| Custom data types | — |
| User-defined functions (UDFs) | — |
| Stored procedures | — |
| Triggers | — |
| Cursors | — |
| Temporary tables | — |
| Compound statements | BEGIN...END, LOOP...END LOOP, REPEAT...UNTIL...END REPEAT, WHILE...DO...END WHILE |
| Flow control statements | IF, WHILE |
| Foreign keys | — |
Data definition language (DDL)
The following DDL operations are not supported:
| Operation | Notes |
|---|---|
CREATE TABLE tbl_name LIKE old_tbl_name | Not supported for sharded tables |
CREATE TABLE tbl_name SELECT ... | Not supported for sharded tables |
RENAME TABLE for multiple tables | — |
ALTER TABLE to change shard key fields | — |
Cross-schema DDL, e.g., CREATE TABLE db_name.tbl_name (...) | DDL must operate within a single schema |
For more information, see DDL.
Data manipulation language (DML)
The following DML operations are not supported:
| Operation | Notes |
|---|---|
SELECT INTO OUTFILE, INTO DUMPFILE, INTO var_name | File and variable output is not supported |
STRAIGHT_JOIN, NATURAL JOIN | — |
Subqueries in UPDATE SET clauses | — |
INSERT DELAYED | — |
Variable references in SQL, e.g., SET @c=1, @d=@c+1; SELECT @c, @d | — |
INSERT, REPLACE, UPDATE, or DELETE on broadcast tables in flexible transactions | — |
For more information, see DML.
Subqueries
The following subquery patterns are not supported:
| Pattern | Notes |
|---|---|
Subqueries in HAVING or JOIN ON clauses | — |
ROW functions in scalar subqueries that use = as the operator | — |
For more information, see Subqueries.
Database management
The following statement combinations are not supported:
| Statement | Notes |
|---|---|
SHOW WARNINGS with LIMIT and COUNT | — |
SHOW ERRORS with LIMIT and COUNT | — |
Operators
The assignment operator ':=' is not supported.
For more information, see Operators.
Functions
The following function categories are not supported:
| Category | MySQL reference |
|---|---|
| Full-text search functions | Full-text search functions |
| XML functions | XML functions |
| Global transaction identifier (GTID) functions | Functions used with global transaction identifiers (GTIDs) |
| MySQL Enterprise Encryption functions | MySQL Enterprise Encryption |
For a list of supported functions, see Functions.
Keywords
The following keywords are not supported:
MILLISECONDMICROSECOND