You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Victoria Markman (JIRA)" <ji...@apache.org> on 2015/04/03 17:43:53 UTC

[jira] [Commented] (DRILL-2511) Assert with full outer join when one of the join predicates is of a required type (nullabe parquet)

    [ https://issues.apache.org/jira/browse/DRILL-2511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14394588#comment-14394588 ] 

Victoria Markman commented on DRILL-2511:
-----------------------------------------

My apologies, I must have uploaded wrong set of files.
I can repro the assert in:
{code} 
#Thu Apr 02 02:07:35 EDT 2015
git.commit.id.abbrev=cc97cd4
{code}

{code}
0: jdbc:drill:schema=dfs> select
. . . . . . . . . . . . >                SUM(
. . . . . . . . . . . . >                    CASE    WHEN j2.c_integer IS NULL THEN 0
. . . . . . . . . . . . >                            WHEN j2.c_integer >= 0 THEN j2.c_integer*1.2 + 100
. . . . . . . . . . . . >                            WHEN j2.c_integer < 0 THEN j2.c_integer
. . . . . . . . . . . . >                    END
. . . . . . . . . . . . >                    )
. . . . . . . . . . . . > from
. . . . . . . . . . . . >         j2 FULL OUTER JOIN j1 ON
. . . . . . . . . . . . >         (j1.c_varchar = j2.c_varchar)
. . . . . . . . . . . . >            FULL OUTER JOIN j3 ON
. . . . . . . . . . . . >         (j1.c_varchar = j3.c_varchar)
. . . . . . . . . . . . >            FULL OUTER JOIN j4 ON
. . . . . . . . . . . . >         (j1.c_varchar = j4.c_varchar)
. . . . . . . . . . . . > where
. . . . . . . . . . . . >         j1.c_varchar IS NOT NULL
. . . . . . . . . . . . > ;
+------------+
|   EXPR$0   |
+------------+
Query failed: RemoteRpcException: Failure while running fragment., length: -17 (expected: >= 0) [ c18a2a0b-e9dd-49fd-871f-61595d2f673b on atsqa4-134.qa.lab:31010 ]
[ c18a2a0b-e9dd-49fd-871f-61595d2f673b on atsqa4-134.qa.lab:31010 ]


java.lang.RuntimeException: java.sql.SQLException: Failure while executing query.
	at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
	at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
	at sqlline.SqlLine.print(SqlLine.java:1809)
	at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
	at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
	at sqlline.SqlLine.dispatch(SqlLine.java:889)
	at sqlline.SqlLine.begin(SqlLine.java:763)
	at sqlline.SqlLine.start(SqlLine.java:498)
	at sqlline.SqlLine.main(SqlLine.java:460)
{code}

> Assert with full outer join when one of the join predicates is of a required type (nullabe parquet)
> ---------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-2511
>                 URL: https://issues.apache.org/jira/browse/DRILL-2511
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Data Types
>    Affects Versions: 0.8.0
>            Reporter: Victoria Markman
>            Assignee: Victoria Markman
>             Fix For: 0.9.0
>
>         Attachments: t4.parquet
>
>
> Columns in tables j3 and j4 are created as 'required' data type:
> {code}
> [Fri Mar 20 11:30:42 root@~/parquet-tools-1.5.1-SNAPSHOT ] # ./parquet-schema ~/0_0_0.parquet
> message root {
>   required binary c_varchar (UTF8);
>   required int32 c_integer;
>   required int64 c_bigint;
>   required float c_float;
>   required double c_double;
>   required int32 c_date (DATE);
>   required int32 c_time (TIME);
>   required int64 c_timestamp (TIMESTAMP);
>   required boolean c_boolean;
>   required double d9;
>   required double d18;
>   required double d28;
>   required double d38;
> }
> {code}
> Full outer join on j3/j4 asserts.
> This is happening with the join predicate of every SQL type except boolean.
> {code}
> select * from j3 full outer join j4 on (j3.c_varchar = j4.c_varchar);
> java.lang.AssertionError at org.apache.drill.exec.vector.VarCharVector$Accessor.get(VarCharVector.java:382)
>         at org.apache.drill.exec.vector.VarCharVector$Accessor.getObject(VarCharVector.java:408)
>         at org.apache.drill.exec.vector.accessor.VarCharAccessor.getObject(VarCharAccessor.java:98)
>         at org.apache.drill.exec.vector.accessor.BoundCheckingAccessor.getObject(BoundCheckingAccessor.java:137)
>         at org.apache.drill.jdbc.AvaticaDrillSqlAccessor.getObject(AvaticaDrillSqlAccessor.java:146)
>         at net.hydromatic.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:351)
>         at sqlline.SqlLine$Rows$Row.<init>(SqlLine.java:2388)
>         at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2504)
>         at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
>         at sqlline.SqlLine.print(SqlLine.java:1809)
>         at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
>         at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
>         at sqlline.SqlLine.dispatch(SqlLine.java:889)
>         at sqlline.SqlLine.begin(SqlLine.java:763)
>         at sqlline.SqlLine.start(SqlLine.java:498)
>         at sqlline.SqlLine.main(SqlLine.java:460)
> {code}
> Same problem happens if you one table column types are optional and the other one is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)