# Partitioned Table Limitations

+ `LOAD DATA` can load data into a partitioned table, but it does not support selecting specific partitions
+ Functions available for partition key expressions
  + `ABS, CEILING, FLOOR, MOD`
  + `HOUR, MICROSECOND, MINUTE, SECOND, TIME_TO_SEC, TO_SECONDS, UNIX_TIMESTAMP`
  + `DAY, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, EXTRACT ,DATEDIFF, TO_DAYS`
  + `MONTH, QUARTER, WEEKDAY, YEAR, YEARWEEK`
+ MySQL compatibility
  + `RANGE, RANGE COLUMNS`
  + `LIST, LIST COLUMNS`
  + `HASH, KEY`
------------------------------------------------------------------------------
The `LOAD DATA` syntax does not support partition selection currently in TiDB.

Only the functions shown in the following list are allowed in partitioning expressions:
```
ABS()
CEILING()
DATEDIFF()
DAY()
DAYOFMONTH()
DAYOFWEEK()
DAYOFYEAR()
EXTRACT() (see EXTRACT() function with WEEK specifier)
FLOOR()
HOUR()
MICROSECOND()
MINUTE()
MOD()
MONTH()
QUARTER()
SECOND()
TIME_TO_SEC()
TO_DAYS()
TO_SECONDS()
UNIX_TIMESTAMP() (with TIMESTAMP columns)
WEEKDAY()
YEAR()
YEARWEEK()
```

TiDB supports `RANGE` partitioning, `RANGE COLUMNS` partitioning, `LIST` partitioning, `LIST COLUMNS` partitioning, `HASH` partitioning, and `KEY` partitioning. Other partitioning types that are available in MySQL are not supported yet in TiDB.

For a partitioned table, the result obtained from the `SELECT * FROM <table_name>` query does not maintain any specific order among the partitions. This behavior differs from the outcome in MySQL.