You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Dave Oshinsky (JIRA)" <ji...@apache.org> on 2015/12/10 16:43:10 UTC

[jira] [Created] (DRILL-4184) query selecting on parquet decimal field fails with ClassCastException

Dave Oshinsky created DRILL-4184:
------------------------------------

             Summary: query selecting on parquet decimal field fails with ClassCastException
                 Key: DRILL-4184
                 URL: https://issues.apache.org/jira/browse/DRILL-4184
             Project: Apache Drill
          Issue Type: Bug
          Components: Storage - Parquet
    Affects Versions: 1.3.0
         Environment: Windows 7 Professional, Java 1.8.0_66
            Reporter: Dave Oshinsky


Selecting on a decimal field in a parquet file throws an exception as shown below.  The successful query at bottom selected on a string field in the same file.

0: jdbc:drill:zk=local> select count(*) from dfs.`c:/dao/DBArchivePredictor/tenrows.parquet` where acct_no=70000020;
org.apache.drill.common.exceptions.DrillRuntimeException: Error in parquet recor
d reader.
Message: Failure in setting up reader
Parquet Metadata: ParquetMetaData{FileMetaData{schema: message sbi.acct_mstr {
  required binary ACCT_NO (DECIMAL(20,0));
  optional binary SF_NO (UTF8);
  optional binary LF_NO (UTF8);
  optional binary BRANCH_NO (DECIMAL(20,0));
  optional binary INTRO_CUST_NO (DECIMAL(20,0));
  optional binary INTRO_ACCT_NO (DECIMAL(20,0));
  optional binary INTRO_SIGN (UTF8);
  optional binary TYPE (UTF8);
  optional binary OPR_MODE (UTF8);
  optional binary CUR_ACCT_TYPE (UTF8);
  optional binary TITLE (UTF8);
  optional binary CORP_CUST_NO (DECIMAL(20,0));
  optional binary APLNDT (UTF8);
  optional binary OPNDT (UTF8);
  optional binary VERI_EMP_NO (DECIMAL(20,0));
  optional binary VERI_SIGN (UTF8);
  optional binary MANAGER_SIGN (UTF8);
  optional binary CURBAL (DECIMAL(8,2));
  optional binary STATUS (UTF8);
}
, metadata: {parquet.avro.schema={"type":"record","name":"acct_mstr","namespace"
:"sbi","fields":[{"name":"ACCT_NO","type":{"type":"bytes","logicalType":"decimal
","precision":20,"scale":0,"cv_auto_incr":false,"cv_case_sensitive":false,"cv_co
lumn_class":"java.math.BigDecimal","cv_connection":"oracle.jdbc.driver.T4CConnec
tion","cv_currency":true,"cv_def_writable":false,"cv_nullable":0,"cv_precision":
20,"cv_read_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_s
ubscript":1,"cv_type":2,"cv_typename":"NUMBER","cv_writable":true}},{"name":"SF_
NO","type":["null",{"type":"string","cv_auto_incr":false,"cv_case_sensitive":tru
e,"cv_column_class":"java.lang.String","cv_currency":false,"cv_def_writable":fal
se,"cv_nullable":1,"cv_precision":10,"cv_read_only":false,"cv_scale":0,"cv_searc
hable":true,"cv_signed":true,"cv_subscript":2,"cv_type":12,"cv_typename":"VARCHA
R2","cv_writable":true}]},{"name":"LF_NO","type":["null",{"type":"string","cv_au
to_incr":false,"cv_case_sensitive":true,"cv_column_class":"java.lang.String","cv
_currency":false,"cv_def_writable":false,"cv_nullable":1,"cv_precision":10,"cv_r
ead_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscript
":3,"cv_type":12,"cv_typename":"VARCHAR2","cv_writable":true}]},{"name":"BRANCH_
NO","type":["null",{"type":"bytes","logicalType":"decimal","precision":20,"scale
":0,"cv_auto_incr":false,"cv_case_sensitive":false,"cv_column_class":"java.math.
BigDecimal","cv_currency":true,"cv_def_writable":false,"cv_nullable":1,"cv_preci
sion":20,"cv_read_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true
,"cv_subscript":4,"cv_type":2,"cv_typename":"NUMBER","cv_writable":true}]},{"nam
e":"INTRO_CUST_NO","type":["null",{"type":"bytes","logicalType":"decimal","preci
sion":20,"scale":0,"cv_auto_incr":false,"cv_case_sensitive":false,"cv_column_cla
ss":"java.math.BigDecimal","cv_currency":true,"cv_def_writable":false,"cv_nullab
le":1,"cv_precision":20,"cv_read_only":false,"cv_scale":0,"cv_searchable":true,"
cv_signed":true,"cv_subscript":5,"cv_type":2,"cv_typename":"NUMBER","cv_writable
":true}]},{"name":"INTRO_ACCT_NO","type":["null",{"type":"bytes","logicalType":"
decimal","precision":20,"scale":0,"cv_auto_incr":false,"cv_case_sensitive":false
,"cv_column_class":"java.math.BigDecimal","cv_currency":true,"cv_def_writable":f
alse,"cv_nullable":1,"cv_precision":20,"cv_read_only":false,"cv_scale":0,"cv_sea
rchable":true,"cv_signed":true,"cv_subscript":6,"cv_type":2,"cv_typename":"NUMBE
R","cv_writable":true}]},{"name":"INTRO_SIGN","type":["null",{"type":"string","c
v_auto_incr":false,"cv_case_sensitive":true,"cv_column_class":"java.lang.String"
,"cv_currency":false,"cv_def_writable":false,"cv_nullable":1,"cv_precision":1,"c
v_read_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscr
ipt":7,"cv_type":12,"cv_typename":"VARCHAR2","cv_writable":true}]},{"name":"TYPE
","type":["null",{"type":"string","cv_auto_incr":false,"cv_case_sensitive":true,
"cv_column_class":"java.lang.String","cv_currency":false,"cv_def_writable":false
,"cv_nullable":1,"cv_precision":2,"cv_read_only":false,"cv_scale":0,"cv_searchab
le":true,"cv_signed":true,"cv_subscript":8,"cv_type":12,"cv_typename":"VARCHAR2"
,"cv_writable":true}]},{"name":"OPR_MODE","type":["null",{"type":"string","cv_au
to_incr":false,"cv_case_sensitive":true,"cv_column_class":"java.lang.String","cv
_currency":false,"cv_def_writable":false,"cv_nullable":1,"cv_precision":2,"cv_re
ad_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscript"
:9,"cv_type":12,"cv_typename":"VARCHAR2","cv_writable":true}]},{"name":"CUR_ACCT
_TYPE","type":["null",{"type":"string","cv_auto_incr":false,"cv_case_sensitive":
true,"cv_column_class":"java.lang.String","cv_currency":false,"cv_def_writable":
false,"cv_nullable":1,"cv_precision":4,"cv_read_only":false,"cv_scale":0,"cv_sea
rchable":true,"cv_signed":true,"cv_subscript":10,"cv_type":12,"cv_typename":"VAR
CHAR2","cv_writable":true}]},{"name":"TITLE","type":["null",{"type":"string","cv
_auto_incr":false,"cv_case_sensitive":true,"cv_column_class":"java.lang.String",
"cv_currency":false,"cv_def_writable":false,"cv_nullable":1,"cv_precision":30,"c
v_read_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscr
ipt":11,"cv_type":12,"cv_typename":"VARCHAR2","cv_writable":true}]},{"name":"COR
P_CUST_NO","type":["null",{"type":"bytes","logicalType":"decimal","precision":20
,"scale":0,"cv_auto_incr":false,"cv_case_sensitive":false,"cv_column_class":"jav
a.math.BigDecimal","cv_currency":true,"cv_def_writable":false,"cv_nullable":1,"c
v_precision":20,"cv_read_only":false,"cv_scale":0,"cv_searchable":true,"cv_signe
d":true,"cv_subscript":12,"cv_type":2,"cv_typename":"NUMBER","cv_writable":true}
]},{"name":"APLNDT","type":["null",{"type":"string","cv_auto_incr":false,"cv_cas
e_sensitive":false,"cv_column_class":"java.sql.Timestamp","cv_currency":false,"c
v_def_writable":false,"cv_nullable":1,"cv_precision":0,"cv_read_only":false,"cv_
scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscript":13,"cv_type":93,"c
v_typename":"DATE","cv_writable":true}]},{"name":"OPNDT","type":["null",{"type":
"string","cv_auto_incr":false,"cv_case_sensitive":false,"cv_column_class":"java.
sql.Timestamp","cv_currency":false,"cv_def_writable":false,"cv_nullable":1,"cv_p
recision":0,"cv_read_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":t
rue,"cv_subscript":14,"cv_type":93,"cv_typename":"DATE","cv_writable":true}]},{"
name":"VERI_EMP_NO","type":["null",{"type":"bytes","logicalType":"decimal","prec
ision":20,"scale":0,"cv_auto_incr":false,"cv_case_sensitive":false,"cv_column_cl
ass":"java.math.BigDecimal","cv_currency":true,"cv_def_writable":false,"cv_nulla
ble":1,"cv_precision":20,"cv_read_only":false,"cv_scale":0,"cv_searchable":true,
"cv_signed":true,"cv_subscript":15,"cv_type":2,"cv_typename":"NUMBER","cv_writab
le":true}]},{"name":"VERI_SIGN","type":["null",{"type":"string","cv_auto_incr":f
alse,"cv_case_sensitive":true,"cv_column_class":"java.lang.String","cv_currency"
:false,"cv_def_writable":false,"cv_nullable":1,"cv_precision":1,"cv_read_only":f
alse,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscript":16,"cv_ty
pe":12,"cv_typename":"VARCHAR2","cv_writable":true}]},{"name":"MANAGER_SIGN","ty
pe":["null",{"type":"string","cv_auto_incr":false,"cv_case_sensitive":true,"cv_c
olumn_class":"java.lang.String","cv_currency":false,"cv_def_writable":false,"cv_
nullable":1,"cv_precision":1,"cv_read_only":false,"cv_scale":0,"cv_searchable":t
rue,"cv_signed":true,"cv_subscript":17,"cv_type":12,"cv_typename":"VARCHAR2","cv
_writable":true}]},{"name":"CURBAL","type":["null",{"type":"bytes","logicalType"
:"decimal","precision":8,"scale":2,"cv_auto_incr":false,"cv_case_sensitive":fals
e,"cv_column_class":"java.math.BigDecimal","cv_currency":true,"cv_def_writable":
false,"cv_nullable":1,"cv_precision":8,"cv_read_only":false,"cv_scale":2,"cv_sea
rchable":true,"cv_signed":true,"cv_subscript":18,"cv_type":2,"cv_typename":"NUMB
ER","cv_writable":true}]},{"name":"STATUS","type":["null",{"type":"string","cv_a
uto_incr":false,"cv_case_sensitive":true,"cv_column_class":"java.lang.String","c
v_currency":false,"cv_def_writable":false,"cv_nullable":1,"cv_precision":1,"cv_r
ead_only":false,"cv_scale":0,"cv_searchable":true,"cv_signed":true,"cv_subscript
":19,"cv_type":12,"cv_typename":"VARCHAR2","cv_writable":true}]}]}}}, blocks: [B
lockMetaData{10, 1281 [ColumnMetaData{SNAPPY [ACCT_NO] BINARY  [BIT_PACKED, PLAI
N], 4}, ColumnMetaData{SNAPPY [SF_NO] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY
], 88}, ColumnMetaData{SNAPPY [LF_NO] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY
], 163}, ColumnMetaData{SNAPPY [BRANCH_NO] BINARY  [RLE, BIT_PACKED, PLAIN_DICTI
ONARY], 241}, ColumnMetaData{SNAPPY [INTRO_CUST_NO] BINARY  [RLE, BIT_PACKED, PL
AIN_DICTIONARY], 298}, ColumnMetaData{SNAPPY [INTRO_ACCT_NO] BINARY  [RLE, BIT_P
ACKED, PLAIN_DICTIONARY], 364}, ColumnMetaData{SNAPPY [INTRO_SIGN] BINARY  [RLE,
 BIT_PACKED, PLAIN_DICTIONARY], 421}, ColumnMetaData{SNAPPY [TYPE] BINARY  [RLE,
 BIT_PACKED, PLAIN_DICTIONARY], 478}, ColumnMetaData{SNAPPY [OPR_MODE] BINARY  [
RLE, BIT_PACKED, PLAIN_DICTIONARY], 538}, ColumnMetaData{SNAPPY [CUR_ACCT_TYPE]
BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 598}, ColumnMetaData{SNAPPY [TITLE]
 BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 658}, ColumnMetaData{SNAPPY [CORP_
CUST_NO] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 736}, ColumnMetaData{SNAPP
Y [APLNDT] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 802}, ColumnMetaData{SNA
PPY [OPNDT] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 919}, ColumnMetaData{SN
APPY [VERI_EMP_NO] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 1036}, ColumnMet
aData{SNAPPY [VERI_SIGN] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 1093}, Col
umnMetaData{SNAPPY [MANAGER_SIGN] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY], 1
150}, ColumnMetaData{SNAPPY [CURBAL] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONARY]
, 1207}, ColumnMetaData{SNAPPY [STATUS] BINARY  [RLE, BIT_PACKED, PLAIN_DICTIONA
RY], 1270}]}]}
        at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader
.handleAndRaise(ParquetRecordReader.java:346)
        at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader
.setup(ParquetRecordReader.java:339)
        at org.apache.drill.exec.physical.impl.ScanBatch.<init>(ScanBatch.java:1
01)
        at org.apache.drill.exec.store.parquet.ParquetScanBatchCreator.getBatch(
ParquetScanBatchCreator.java:168)
        at org.apache.drill.exec.store.parquet.ParquetScanBatchCreator.getBatch(
ParquetScanBatchCreator.java:56)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCr
eator.java:151)
        at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreat
or.java:174)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCr
eator.java:131)
        at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreat
or.java:174)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCr
eator.java:131)
        at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreat
or.java:174)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCr
eator.java:131)
        at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreat
or.java:174)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCr
eator.java:131)
        at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreat
or.java:174)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch(ImplCr
eator.java:131)
        at org.apache.drill.exec.physical.impl.ImplCreator.getChildren(ImplCreat
or.java:174)
        at org.apache.drill.exec.physical.impl.ImplCreator.getRootExec(ImplCreat
or.java:105)
        at org.apache.drill.exec.physical.impl.ImplCreator.getExec(ImplCreator.j
ava:79)
        at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExec
utor.java:230)
        at org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable
.java:38)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: org.apache.drill.exec.vector.Decimal28S
parseVector cannot be cast to org.apache.drill.exec.vector.VariableWidthVector
        at org.apache.drill.exec.store.parquet.columnreaders.VarLengthValuesColu
mn.<init>(VarLengthValuesColumn.java:44)
        at org.apache.drill.exec.store.parquet.columnreaders.VarLengthColumnRead
ers$Decimal28Column.<init>(VarLengthColumnReaders.java:52)
        at org.apache.drill.exec.store.parquet.columnreaders.ColumnReaderFactory
.getReader(ColumnReaderFactory.java:178)
        at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader
.setup(ParquetRecordReader.java:319)
        ... 22 more
Error: SYSTEM ERROR: ClassCastException: org.apache.drill.exec.vector.Decimal28S
parseVector cannot be cast to org.apache.drill.exec.vector.VariableWidthVector

Fragment 0:0

[Error Id: 22bfa8dd-1129-4300-9449-409e96d6c800 on DaveOshinsky-PC.gp.cv.commvau
lt.com:31010] (state=,code=0)
0: jdbc:drill:zk=local> select count(*) from dfs.`c:/dao/DBArchivePredictor/tenr
ows.parquet` where opr_mode='JO';
+---------+
| EXPR$0  |
+---------+
| 10      |
+---------+
1 row selected (0.406 seconds)
0: jdbc:drill:zk=local>



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