You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-17 09:41:06 +03:00
133 lines
6.0 KiB
SQL
Executable File
133 lines
6.0 KiB
SQL
Executable File
# WWW 5/13. Wrapped l_orderkey/3.0 updates with round. We truncate on updates where InnoDB rounds.
|
|
#Update with column=simple column
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_partkey=l_orderkey where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#update with multiple simple columns
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_partkey=l_orderkey, l_returnflag=l_linestatus, l_comment = 'Hello world' where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update integer with decimal values
|
|
#
|
|
set autocommit=0;
|
|
# WWW - Changed 123.9 to 123.4 below to avoid difference between IDB (truncate) and InnoDB (round) behavior on updates.
|
|
update lineitem set l_orderkey=0.00009, l_partkey = 123.4 where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_suppkey, l_partkey, l_linenumber, l_tax;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#update with multiple columns of different data types
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_shipinstruct=l_linestatus, l_comment=l_shipmode where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update with expression. integer column with integer constant
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_orderkey=round(l_orderkey / 3), l_partkey=l_partkey*3 where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_suppkey, l_partkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update with expression. integer column with decimal constant
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_orderkey=round(l_orderkey / 3.0), l_partkey=l_partkey*3.0 where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_suppkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update with expression. decimal column with integer constant
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_quantity=round(l_quantity / 3), l_extendedprice=l_extendedprice*3 where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update with expression. decimal column with decimal constant
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_quantity=round(l_quantity / 3.0), l_extendedprice=l_extendedprice*3.0 where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update with expression. Integer column with string value
|
|
#
|
|
set autocommit=0;
|
|
# WWW. Changed 55.9 to 55.3 below to avoid truncate vs round differing behavior between IDB and InnoDB.
|
|
update lineitem set l_orderkey='55', l_partkey = '55.3' where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_suppkey, l_partkey, l_linenumber, l_tax;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#Update with expression. Integer column with string value
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_quantity='55', l_extendedprice = '55.9' where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
#update with functions and nested functions
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_orderkey=length(l_comment) where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber, l_suppkey, l_partkey;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_partkey=length(l_comment) * 10 where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_partkey=power(length(l_comment) * 10,2) where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
set autocommit=0;
|
|
update lineitem set l_partkey=power(length(l_comment) * 10,2) - round(l_suppkey / l_quantity) where l_orderkey < 100;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_suppkey, l_linenumber, l_partkey;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
|
|
#
|
|
# Update with joins
|
|
#
|
|
set autocommit=0;
|
|
update orders, customer set c_comment = o_clerk, c_acctbal=c_acctbal+o_totalprice where c_custkey = o_orderkey and c_custkey< 100;
|
|
select * from customer where c_custkey < 100 order by c_custkey;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
set autocommit=0;
|
|
update orders, customer set c_comment = o_clerk, c_acctbal=c_acctbal+o_totalprice where c_custkey = o_orderkey and o_custkey< 100;
|
|
select * from customer where c_custkey < 100 order by c_custkey;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|
|
# update with query
|
|
#
|
|
set autocommit=0;
|
|
update orders, customer set c_comment = o_clerk, c_acctbal=c_acctbal+o_totalprice where c_custkey = o_orderkey and o_orderkey in (select l_orderkey from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber);
|
|
select * from customer where c_custkey < 100 order by c_custkey;
|
|
rollback;
|
|
select * from lineitem where l_orderkey < 100 order by l_orderkey, l_linenumber;
|
|
#
|