Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.8.0
-
None
Description
Columns in tables j3 and j4 are created as 'required' data type:
[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; }
Full outer join on j3/j4 asserts.
This is happening with the join predicate of every SQL type except boolean.
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)
Same problem happens if you one table column types are optional and the other one is required.