Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Do
-
1.2.5
-
None
-
Ubuntu 18
Description
Starting from the 50g DBT3 DB.
Been attempting to combine lineitem & orders -> lineorders for benchmarking reasons. Pretty straightforward.
Ran into three problems and one debatable problem
1) I ran out of tmp space (not sure why this is using tmp space, but not worried about that yet) and the import aborted but left the table locked
2) I added tmp space, then tried again. I got a nonsensical error message "ERROR 1030 (HY000): Got error -1 "Internal error < 0 (Not system error)" from storage engine Columnstore". This apparently is what we return when the table is locked (I didn't know it was locked, and this msg didn't help).
3) After removing the table lock, I ran it again. It seems to have succeeded, but not told mysqld of that fact. So, the mysql client just sat there. Hitting ctrl-c to get out of the client thankfully did not roll the whole thing back. Getting the row count of the new table gives the right result.
4) (debatable) insert-select goes through the mariadb server, which generates an enormous binlog for this (45GB). I'm rarely on the user side of a DB; not sure if it's supposed to do that, or if we can disable it for this kind of operation. I imagine there must be a configurable limit on how large it can get before it starts rolling off data. This one is mainly on me; I need to find out what the options are for the user to avoid an out-of-space error b/c of the binlog.
The create table stmt for lineorder:
create table if not exists lineorder (
lo_orderkey bigint,
lo_partkey int,
lo_suppkey int,
lo_linenumber bigint,
lo_quantity decimal(12,2),
lo_extendedprice decimal(12,2),
lo_discount decimal(12,2),
lo_tax decimal(12,2),
lo_returnflag char (1),
lo_linestatus char (1),
lo_shipdate date,
lo_commitdate date,
lo_receiptdate date,
lo_shipinstruct char (25),
lo_shipmode char (10),
lo_custkey int,
lo_orderstatus char (1),
lo_totalprice decimal(12,2),
lo_orderdate date,
lo_orderpriority char (15),
lo_clerk char (15),
lo_shippriority int,
lo_comment varchar(79)
) engine=columnstore;
The insert-select stmt:
insert into lineorder select
l_orderkey,
l_partkey,
l_suppkey,
l_linenumber,
l_quantity,
l_extendedprice,
l_discount,
l_tax,
l_returnflag,
l_linestatus,
l_shipdate,
l_commitdate,
l_receiptdate,
l_shipinstruct,
l_shipmode,
o_custkey,
o_orderstatus,
o_totalprice,
o_orderdate,
o_orderpriority,
o_clerk,
o_shippriority,
o_comment
from
lineitem join orders on
l_orderkey = o_orderkey
;