# `VERSION::7.3.0` Default `LIST` Partition - Example

+ Add a default partition when creating a `LIST` or `LIST COLUMNS` partition table
```
CREATE TABLE users (
 uid INT NOT NULL,
 uname VARCHAR(25) NOT NULL,
 ucity VARCHAR(25) NOT NULL,
 addr VARCHAR(25) NOT NULL
)
~!@PARTITION BY LIST COLUMNS (ucity)@!~(
PARTITION p0 VALUES IN ('Seattle','Seoul','Tokyo','Sydney'),
PARTITION p1 VALUES IN ('Berlin', 'Cairo', 'Madrid'),
PARTITION p2 VALUES IN ('Vancouver', 'Ottawa', 'Chicago'),
PARTITION pDef ~!@DEFAULT@!~
); 
```
+ Add a default partition to a existing `LIST` or `LIST COLUMNS` partition table
```
ALTER TABLE users ADD PARTITION (PARTITION pDef ~!@DEFAULT@!~);
```

------------------------------------------------------------------------------
From v7.3.0, you can add a default partition to a `LIST` or `LIST COLUMNS` partitioned table. Rows that do not match value sets of any partitions can be placed in the default partition.

```
tidb>CREATE TABLE users (
    ->  uid INT NOT NULL,
    ->  uname VARCHAR(25) NOT NULL,
    ->  ucity VARCHAR(25) NOT NULL,
    ->  addr VARCHAR(25) NOT NULL
    -> )
    -> PARTITION BY LIST COLUMNS ( ucity )(
    -> PARTITION p0 VALUES IN ('Seattle','Seoul','Tokyo','Sydney'),
    -> PARTITION p1 VALUES IN ('Berlin', 'Cairo', 'Madrid'),
    -> PARTITION p2 VALUES IN ('Vancouver', 'Ottawa', 'Chicago'),
    -> PARTITION pDef DEFAULT
    -> ); 
Query OK, 0 rows affected (0.53 sec)

tidb>INSERT INTO users VALUES(1, 'Austin', 'Sydney', '148 City Road');
Query OK, 1 row affected (0.01 sec)

tidb>INSERT INTO users VALUES(2, 'Avianna', 'Berlin', 'Kaiserswerther Str. 16-18');
Query OK, 1 row affected (0.01 sec)

tidb>INSERT INTO users VALUES(3, 'Tim', 'Chicago', '5801 S Ellis Ave');
Query OK, 1 row affected (0.01 sec)

tidb>INSERT INTO users VALUES(4, 'Kerney', 'Yokohama', '79-1, Tokiwadai');
Query OK, 1 row affected (0.00 sec)

tidb>SELECT TABLE_NAME, PARTITION_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='users';
+------------+----------------+------------+
| TABLE_NAME | PARTITION_NAME | TABLE_ROWS |
+------------+----------------+------------+
| users      | p0             |          1 |
| users      | p1             |          1 |
| users      | p2             |          1 |
| users      | pDef           |          1 |
+------------+----------------+------------+
4 rows in set (0.01 sec)

tidb>DROP TABLE users;
Query OK, 0 rows affected (0.52 sec)

tidb>CREATE TABLE users (
    ->  uid INT NOT NULL,
    ->  uname VARCHAR(25) NOT NULL,
    ->  ucity VARCHAR(25) NOT NULL,
    ->  addr VARCHAR(25) NOT NULL
    -> )
    -> PARTITION BY LIST COLUMNS ( ucity )(
    -> PARTITION p0 VALUES IN ('Seattle','Seoul','Tokyo','Sydney'),
    -> PARTITION p1 VALUES IN ('Berlin', 'Cairo', 'Madrid'),
    -> PARTITION p2 VALUES IN ('Vancouver', 'Ottawa', 'Chicago')
    -> ); 
Query OK, 0 rows affected (0.54 sec)

tidb>INSERT INTO users VALUES(1, 'Austin', 'Sydney', '148 City Road');
Query OK, 1 row affected (0.02 sec)

tidb>INSERT INTO users VALUES(2, 'Avianna', 'Berlin', 'Kaiserswerther Str. 16-18');
Query OK, 1 row affected (0.00 sec)

tidb>INSERT INTO users VALUES(3, 'Tim', 'Chicago', '5801 S Ellis Ave');
Query OK, 1 row affected (0.00 sec)

tidb>INSERT INTO users VALUES(4, 'Kerney', 'Yokohama', '79-1, Tokiwadai');
ERROR 1526 (HY000): Table has no partition for value from column_list

tidb>ALTER TABLE users ADD PARTITION (PARTITION pDef DEFAULT);
Query OK, 0 rows affected (0.53 sec)

tidb>INSERT INTO users VALUES(4, 'Kerney', 'Yokohama', '79-1, Tokiwadai');
Query OK, 1 row affected (0.00 sec)
```

If you plan to replicate the table to a MySQL-compatible database using `TiCDC`, you need to verify whether the destination supports the default `LIST` partition or not.