Details
-
New Feature
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Do
-
None
Description
Example:
MariaDB [inventory]> update inventory.products set supplier='MariaDB' where supplier='mySQL';
|
ERROR 1815 (HY000): Internal error: WARNING: UPDATE DML is blocked for Columnstore tables. For more details, see the webpage https://
|
|
MariaDB [inventory]> delete from inventory.products where supplier='DML Imports';
|
ERROR 1815 (HY000): Internal error: WARNING: DELETE DML is blocked for Columnstore tables. For more details, see the webpage https://
|
The Columnstore engine is not optimized for UPDATEs or DELETEs. In some situations, such DML will require an unforseen amount of time to complete, such as days or weeks. This can lead to user-interactive cancel operations. UPDATEs and DELETEs, and in particular the rollback of such commands can permanently damage Columnstore extent mapping.
By blocking such DML as a feature, we would encourage customers to become more knowledgeable about the Columnstore product. It would also allow customers to block UPDATE or DELETE commands. A customer would toggle the feature on or off with a global/session variable. For example:
In .cnf file:
columnstore_block_delete_dml = 1 # (default 1)
|
columnstore_block_update_dml = 1 # (default 1)
|
In session:
MariaDB [inventory]> set session columnstore_block_delete_dml=0;
|
Query OK, 0 rows affected (0.000 sec)
|
|
MariaDB [inventory]> set session columnstore_block_update_dml=0;
|
Query OK, 0 rows affected (0.000 sec)
|