You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Suresh Subbiah (JIRA)" <ji...@apache.org> on 2015/10/05 17:03:27 UTC
[jira] [Resolved] (TRAFODION-1154) LP Bug: 1442774 - TMUDF:
Compiling a TPCH query with TMUDF returns internal assertion in
BaseTypes.cpp:118
[ https://issues.apache.org/jira/browse/TRAFODION-1154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Suresh Subbiah resolved TRAFODION-1154.
---------------------------------------
Resolution: Fixed
> LP Bug: 1442774 - TMUDF: Compiling a TPCH query with TMUDF returns internal assertion in BaseTypes.cpp:118
> ----------------------------------------------------------------------------------------------------------
>
> Key: TRAFODION-1154
> URL: https://issues.apache.org/jira/browse/TRAFODION-1154
> Project: Apache Trafodion
> Issue Type: Bug
> Components: sql-cmp
> Reporter: Weishiun Tsai
> Assignee: Hans Zeller
> Priority: Critical
> Fix For: 2.0-incubating
>
>
> As an attempt to test TMUDF with sizable real-life data, TPCH queries are used for this exercise. The TMUDF are implemented using addPassThroughColumns() and copyPassThruData(), so that the output table is exactly the same as the input table. When running all tables through such a TMUDF in a TPCH query, the query result is also expected to be the same as the original query without TMUDFs.
> Most queries run fine except for this one. As shown in the execution output, x1 is the original query with TMUDF, and it compiles fine. x2 is the query with TMUDF, and the compiler returns internal assertion failure in BaseType.cpp, line 118:
> *** ERROR[2006] Internal error: assertion failure () in file ../common/BaseTypes.cpp at line 118.
> This is seen on the v0410 build installed on a workstation. It requires the QA tpch2x tables to reproduce it. Unfortunately, it requires the actual data, and is not reproducible with just an empty set of tpch2x tables. The python scripts to populate tpch2x tables on a workstation are available upon request. (To run the scripts will require DCS up and running with a minimum of 3 mxosrvrs).
> Once the tpch2x tables have been populated on the instance, to reproduce it:
> (1) Download the attached tar file and untar it to get the 3 files in there. Put the files in any directory <mydir>.
> (2) Make sure that you have run ./sqenv.sh of your Trafodion instance first as building UDF needs $MY_SQROOT for the header files.
> (3) run build.sh
> (4) Change the line “create library qa_udf_lib file '<mydir>/qaTmudfTest.so';”; in mytest.sql and fill in <mydir>
> (5) From sqlci, obey mytest.sql
> ---------------------------------------------------------------------------------------------------
> Here is the execution output:
> >>create schema mytest;
> --- SQL operation complete.
> >>set schema mytest;
> --- SQL operation complete.
> >>
> >>create library qaTmudfLib file '<mydir>/qaTmu
> dfTest.so';
> --- SQL operation complete.
> >>
> >>create table_mapping function qaTmudfGeneral ()
> +>external name 'QA_TMUDF'
> +>language cpp
> +>library qaTmudfLib;
> --- SQL operation complete.
> >>
> >>set schema g_tpch2x;
> --- SQL operation complete.
> >>
> >>showddl part;
> CREATE TABLE TRAFODION.G_TPCH2X.PART
> (
> P_PARTKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_NAME VARCHAR(55) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_MFGR CHAR(25) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_BRAND CHAR(10) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_TYPE VARCHAR(25) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_SIZE INT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_CONTAINER CHAR(10) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , P_RETAILPRICE NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , P_COMMENT VARCHAR(23) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , PRIMARY KEY (P_PARTKEY ASC)
> )
> SALT USING 8 PARTITIONS
> ;
> --- SQL operation complete.
> >>showddl supplier;
> CREATE TABLE TRAFODION.G_TPCH2X.SUPPLIER
> (
> S_SUPPKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , S_NAME CHAR(25) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , S_ADDRESS VARCHAR(40) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , S_NATIONKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , S_PHONE CHAR(15) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , S_ACCTBAL NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , S_COMMENT VARCHAR(101) CHARACTER SET ISO88591
> COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , PRIMARY KEY (S_SUPPKEY ASC)
> )
> SALT USING 8 PARTITIONS
> ;
> --- SQL operation complete.
> >>showddl lineitem;
> CREATE TABLE TRAFODION.G_TPCH2X.LINEITEM
> (
> L_ORDERKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_PARTKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_SUPPKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_LINENUMBER INT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_QUANTITY NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , L_EXTENDEDPRICE NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , L_DISCOUNT NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , L_TAX NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , L_RETURNFLAG CHAR(1) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_LINESTATUS CHAR(1) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_SHIPDATE DATE NO DEFAULT NOT NULL NOT DROPPABLE
> , L_COMMITDATE DATE NO DEFAULT NOT NULL NOT DROPPABLE
> , L_RECEIPTDATE DATE NO DEFAULT NOT NULL NOT DROPPABLE
> , L_SHIPINSTRUCT CHAR(25) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_SHIPMODE CHAR(10) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , L_COMMENT VARCHAR(44) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , PRIMARY KEY (L_SHIPDATE ASC, L_ORDERKEY ASC, L_LINENUMBER ASC)
> )
> SALT USING 8 PARTITIONS
> ;
> --- SQL operation complete.
> >>showddl partsupp;
> CREATE TABLE TRAFODION.G_TPCH2X.PARTSUPP
> (
> PS_PARTKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , PS_SUPPKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , PS_AVAILQTY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , PS_SUPPLYCOST NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , PS_COMMENT VARCHAR(199) CHARACTER SET ISO88591
> COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , PRIMARY KEY (PS_PARTKEY ASC, PS_SUPPKEY ASC)
> )
> SALT USING 8 PARTITIONS
> ;
> --- SQL operation complete.
> >>showddl orders;
> CREATE TABLE TRAFODION.G_TPCH2X.ORDERS
> (
> O_ORDERKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , O_CUSTKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , O_ORDERSTATUS CHAR(1) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , O_TOTALPRICE NUMERIC(12, 2) NO DEFAULT NOT NULL NOT
> DROPPABLE
> , O_ORDERDATE DATE NO DEFAULT NOT NULL NOT DROPPABLE
> , O_ORDERPRIORITY CHAR(15) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , O_CLERK CHAR(15) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , O_SHIPPRIORITY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , O_COMMENT VARCHAR(79) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , PRIMARY KEY (O_ORDERKEY ASC)
> )
> SALT USING 8 PARTITIONS
> ;
> --- SQL operation complete.
> >>showddl nation;
> CREATE TABLE TRAFODION.G_TPCH2X.NATION
> (
> N_NATIONKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , N_NAME CHAR(25) CHARACTER SET ISO88591 COLLATE
> DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , N_REGIONKEY INT NO DEFAULT NOT NULL NOT DROPPABLE
> , N_COMMENT VARCHAR(152) CHARACTER SET ISO88591
> COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
> , PRIMARY KEY (N_NATIONKEY ASC)
> )
> SALT USING 8 PARTITIONS
> ;
> --- SQL operation complete.
> >>
> >>select count(*) from part;
> (EXPR)
> --------------------
> 400000
> --- 1 row(s) selected.
> >>select count(*) from supplier;
> (EXPR)
> --------------------
> 20000
> --- 1 row(s) selected.
> >>select count(*) from lineitem;
> (EXPR)
> --------------------
> 11997996
> --- 1 row(s) selected.
> >>select count(*) from partsupp;
> (EXPR)
> --------------------
> 1600000
> --- 1 row(s) selected.
> >>select count(*) from orders;
> (EXPR)
> --------------------
> 3000000
> --- 1 row(s) selected.
> >>select count(*) from nation;
> (EXPR)
> --------------------
> 25
> --- 1 row(s) selected.
> >>
> >>prepare x1 from select
> +>nation,
> +>o_year,
> +>cast(sum(amount) as numeric(18,2)) as sum_profit
> +>from
> +>(
> +>select
> +>n_name as nation,
> +>extract(year from o_orderdate) as o_year,
> +>l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
> +>from
> +>part,
> +>supplier,
> +>lineitem,
> +>partsupp,
> +>orders,
> +>nation
> +>where
> +>s_suppkey = l_suppkey
> +>and ps_suppkey = l_suppkey
> +>and ps_partkey = l_partkey
> +>and p_partkey = l_partkey
> +>and o_orderkey = l_orderkey
> +>and s_nationkey = n_nationkey
> +>and p_name like '%maroon%'
> +>) as profit
> +>group by
> +>nation,
> +>o_year
> +>order by
> +>nation,
> +>o_year desc;
> *** WARNING[6007] Multi-column statistics for columns (L_PARTKEY, L_SUPPKEY) from table TRAFODION.G_TPCH2X.LINEITEM were not available. The columns were being used by Join operator. As a result, the access path chosen might not be the best possible.
> *** WARNING[6007] Multi-column statistics for columns (PS_PARTKEY, PS_SUPPKEY) from table TRAFODION.G_TPCH2X.PARTSUPP were not available. The columns were being used by Join operator. As a result, the access path chosen might not be the best possible.
> --- SQL command prepared.
> >>
> >>
> >>prepare x2 from select
> +>nation,
> +>o_year,
> +>cast(sum(amount) as numeric(18,2)) as sum_profit
> +>from
> +>(
> +>select
> +>n_name as nation,
> +>extract(year from o_orderdate) as o_year,
> +>l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
> +>from
> +>UDF(trafodion.mytest.qaTmudfGeneral(TABLE(select * from part))),
> +>UDF(trafodion.mytest.qaTmudfGeneral(TABLE(select * from supplier))),
> +>UDF(trafodion.mytest.qaTmudfGeneral(TABLE(select * from lineitem))),
> +>UDF(trafodion.mytest.qaTmudfGeneral(TABLE(select * from partsupp))),
> +>UDF(trafodion.mytest.qaTmudfGeneral(TABLE(select * from orders))),
> +>UDF(trafodion.mytest.qaTmudfGeneral(TABLE(select * from nation)))
> +>where
> +>s_suppkey = l_suppkey
> +>and ps_suppkey = l_suppkey
> +>and ps_partkey = l_partkey
> +>and p_partkey = l_partkey
> +>and o_orderkey = l_orderkey
> +>and s_nationkey = n_nationkey
> +>and p_name like '%maroon%'
> +>) as profit
> +>group by
> +>nation,
> +>o_year
> +>order by
> +>nation,
> +>o_year desc;
> *** ERROR[2006] Internal error: assertion failure () in file ../common/BaseTypes.cpp at line 118.
> *** ERROR[8822] The statement was not prepared.
> >>
> >>set schema mytest;
> --- SQL operation complete.
> >>
> >>drop function qaTmudfGeneral cascade;
> --- SQL operation complete.
> >>drop library qaTmudfLib cascade;
> --- SQL operation complete.
> >>drop schema mytest cascade;
> --- SQL operation complete.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)