drill-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rahul Raj <rahul....@option3.io>
Subject Re: Query Compilation error with 80+ CASE statements
Date Thu, 28 Feb 2019 07:20:17 GMT
Hi Girish,

The plans look almost the same. I have attached them here.

The generated class with error details at the end of the file:
https://raw.githubusercontent.com/rajrahul/files/master/ProjectorGen8680.java

Plan when query fails:
https://raw.githubusercontent.com/rajrahul/files/master/error-plan.txt

Plan without error:
https://raw.githubusercontent.com/rajrahul/files/master/withouterror-plan.txt

@Arjun, the property does not help .

Regards,
Rahul


On Thu, Feb 28, 2019 at 10:47 AM Arjun kr <arjun.kr@outlook.com> wrote:

> Rahul,
>
> You can try setting system option 'exec.java.compiler.exp_in_method_size'
> to lesser value from the default of 50 if you haven't tried already and see
> if it succeeds.
>
>
> alter session set `exec.java.compiler.exp_in_method_size` = <number>;
>
> Thanks,
>
> Arjun
>
> ________________________________
> From: Abhishek Girish <agirish@apache.org>
> Sent: Thursday, February 28, 2019 5:55 AM
> To: user
> Subject: Re: Query Compilation error with 80+ CASE statements
>
> Rahul,
>
> Can you please share plans for both queries (one with fewer which succeeds
> and one which fails). Also the verbose error.
>
> On Tue, Feb 26, 2019 at 11:33 PM Rahul Raj <rahul.raj@option3.io> wrote:
>
> > Some more update to the mail above:
> >
> > The query above has a UDF 'checkNull' used . The UDF code is placed
> inside
> > the compiled query code, causing it to fail where there are more case
> > statements. The below snippet is from the UDF.
> >
> > {
> >     if (input.end - input.start == 0) {
> >         throw new RuntimeException("IllegalArgumentException : null
> values
> > in non nullable fields");
> >     } else
> >     {
> >         out = input;
> >     }
> > }
> >
> > Any thoughts on this? Are there any naming conventions while developing a
> > UDF?
> >
> > Regards,
> > Rahul
> >
> >
> >
> > On Wed, Feb 27, 2019 at 12:14 PM Rahul Raj <rahul.raj@option3.io> wrote:
> >
> > > Hi,
> > >
> > > I am getting compilation error on Drill 1.15 when query contains a
> large
> > > number of case statements. I have included the query below. Query works
> > > fine when few case statements are removed.
> > >
> > > org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR:
> > > CompileException: File
> > >
> >
> 'org.apache.drill.exec.compile.DrillJavaFileObject[ProjectorGen8635.java]',
> > > Line 872, Column 9: ProjectorGen8635.java:872: error: cannot assign a
> > value
> > > to final variable out out = input; ^
> > > (compiler.err.cant.assign.val.to.final.var) Fragment 0:0 Please, refer
> to
> > > logs for more information. [Error Id:
> > a0d3f054-7c60-4915-9629-55e5dacd8606
> > > on jiffydemo:31010]
> > >
> > > Query is :
> > >
> > > SELECT
> > >      CAST(`A1` AS INT) `A1`
> > >    , CAST(`A2` AS INT) `A2`
> > >    ,  `A3`
> > >    ,  `A4`
> > >    ,  `A5`
> > >    , (CASE WHEN (`A6` = '') THEN null ELSE `A6` END) `A6`
> > >    ,  `A7`
> > >    ,  `A8`
> > >    ,  `A9`
> > >    ,  `A10`
> > >    , CAST(A11 AS INT) `A11`
> > >    , (CASE WHEN (`A12` = '') THEN null ELSE `A12` END) `A12`
> > >    , CAST(`checkNull`(`A13`) AS INT) `A13`
> > >    , CAST(`checkNull`(`A14`) AS INT) `A14`
> > >    , (CASE WHEN (`A15` = '') THEN null ELSE `A15` END) `A15`
> > >    , CAST(`checkNull`(`A16`) AS INT) `A16`
> > >    , CAST(`checkNull`(`A17`) AS INT) `A17`
> > >    , CAST(`checkNull`(`A18`) AS INT) `A18`
> > >    , (CASE WHEN (`A19` = '') THEN null ELSE `A19` END) `A19`
> > >    ,  `A20`
> > >    ,  `A21`
> > >    ,  `A22`
> > >    , (CASE WHEN (`_1` = '') THEN null ELSE `_1` END) `_1`
> > >    , (CASE WHEN (`_2` = '') THEN null ELSE `_2` END) `_2`
> > >    , (CASE WHEN (`_3` = '') THEN null ELSE `_3` END) `_3`
> > >    , (CASE WHEN (`_4` = '') THEN null ELSE `_4` END) `_4`
> > >    , (CASE WHEN (`_5` = '') THEN null ELSE `_5` END) `_5`
> > >    , (CASE WHEN (`_6` = '') THEN null ELSE `_6` END) `_6`
> > >    , (CASE WHEN (`_7` = '') THEN null ELSE `_7` END) `_7`
> > >    , (CASE WHEN (`_8` = '') THEN null ELSE `_8` END) `_8`
> > >    , (CASE WHEN (`_9` = '') THEN null ELSE `_9` END) `_9`
> > >    , (CASE WHEN (`_10` = '') THEN null ELSE `_10` END) `_10`
> > >    , (CASE WHEN (`_11` = '') THEN null ELSE `_11` END) `_11`
> > >    , (CASE WHEN (`_12` = '') THEN null ELSE `_12` END) `_12`
> > >    , (CASE WHEN (`_13` = '') THEN null ELSE `_13` END) `_13`
> > >    , (CASE WHEN (`_14` = '') THEN null ELSE `_14` END) `_14`
> > >    , (CASE WHEN (`_15` = '') THEN null ELSE `_15` END) `_15`
> > >    , (CASE WHEN (`_16` = '') THEN null ELSE `_16` END) `_16`
> > >    , (CASE WHEN (`_17` = '') THEN null ELSE `_17` END) `_17`
> > >    , (CASE WHEN (`_18` = '') THEN null ELSE `_18` END) `_18`
> > >    , (CASE WHEN (`_19` = '') THEN null ELSE `_19` END) `_19`
> > >    , (CASE WHEN (`_20` = '') THEN null ELSE `_20` END) `_20`
> > >    , (CASE WHEN (`_21` = '') THEN null ELSE `_21` END) `_21`
> > >    , (CASE WHEN (`_22` = '') THEN null ELSE `_22` END) `_22`
> > >    , (CASE WHEN (`_23` = '') THEN null ELSE `_23` END) `_23`
> > >    , (CASE WHEN (`_24` = '') THEN null ELSE `_24` END) `_24`
> > >    , (CASE WHEN (`_25` = '') THEN null ELSE `_25` END) `_25`
> > >    , (CASE WHEN (`_26` = '') THEN null ELSE `_26` END) `_26`
> > >    , (CASE WHEN (`_27` = '') THEN null ELSE `_27` END) `_27`
> > >    , (CASE WHEN (`_28` = '') THEN null ELSE `_28` END) `_28`
> > >    , (CASE WHEN (`_29` = '') THEN null ELSE `_29` END) `_29`
> > >    , (CASE WHEN (`_30` = '') THEN null ELSE `_30` END) `_30`
> > >    , (CASE WHEN (`_31` = '') THEN null ELSE `_31` END) `_31`
> > >    , (CASE WHEN (`_32` = '') THEN null ELSE `_32` END) `_32`
> > >    , (CASE WHEN (`_33` = '') THEN null ELSE `_33` END) `_33`
> > >    , (CASE WHEN (`_34` = '') THEN null ELSE `_34` END) `_34`
> > >    , (CASE WHEN (`_35` = '') THEN null ELSE `_35` END) `_35`
> > >    , (CASE WHEN (`_36` = '') THEN null ELSE `_36` END) `_36`
> > >    , (CASE WHEN (`_37` = '') THEN null ELSE `_37` END) `_37`
> > >    , (CASE WHEN (`_38` = '') THEN null ELSE `_38` END) `_38`
> > >    , (CASE WHEN (`_39` = '') THEN null ELSE `_39` END) `_39`
> > >    , (CASE WHEN (`_40` = '') THEN null ELSE `_40` END) `_40`
> > >    , (CASE WHEN (`_41` = '') THEN null ELSE `_41` END) `_41`
> > >    , (CASE WHEN (`_42` = '') THEN null ELSE `_42` END) `_42`
> > >    , (CASE WHEN (`_43` = '') THEN null ELSE `_43` END) `_43`
> > >    , (CASE WHEN (`_44` = '') THEN null ELSE `_44` END) `_44`
> > >    , (CASE WHEN (`_45` = '') THEN null ELSE `_45` END) `_45`
> > >    , (CASE WHEN (`_46` = '') THEN null ELSE `_46` END) `_46`
> > >    , (CASE WHEN (`_47` = '') THEN null ELSE `_47` END) `_47`
> > >    , (CASE WHEN (`_48` = '') THEN null ELSE `_48` END) `_48`
> > >    , (CASE WHEN (`_49` = '') THEN null ELSE `_49` END) `_49`
> > >    , (CASE WHEN (`_50` = '') THEN null ELSE `_50` END) `_50`
> > >    , (CASE WHEN (`_51` = '') THEN null ELSE `_51` END) `_51`
> > >    , (CASE WHEN (`_52` = '') THEN null ELSE `_52` END) `_52`
> > >    , (CASE WHEN (`_53` = '') THEN null ELSE `_53` END) `_53`
> > >    , (CASE WHEN (`_54` = '') THEN null ELSE `_54` END) `_54`
> > >    , (CASE WHEN (`_55` = '') THEN null ELSE `_55` END) `_55`
> > >    , (CASE WHEN (`_56` = '') THEN null ELSE `_56` END) `_56`
> > >    , (CASE WHEN (`_57` = '') THEN null ELSE `_57` END) `_57`
> > >    , (CASE WHEN (`_58` = '') THEN null ELSE `_58` END) `_58`
> > >    , (CASE WHEN (`_59` = '') THEN null ELSE `_59` END) `_59`
> > >    , (CASE WHEN (`_60` = '') THEN null ELSE `_60` END) `_60`
> > >    , (CASE WHEN (`_61` = '') THEN null ELSE `_61` END) `_61`
> > >    , (CASE WHEN (`_62` = '') THEN null ELSE `_62` END) `_62`
> > >    , (CASE WHEN (`_63` = '') THEN null ELSE `_63` END) `_63`
> > >    , (CASE WHEN (`_64` = '') THEN null ELSE `_64` END) `_64`
> > >    , (CASE WHEN (`_65` = '') THEN null ELSE `_65` END) `_65`
> > >    , (CASE WHEN (`_66` = '') THEN null ELSE `_66` END) `_66`
> > >    , (CASE WHEN (`_67` = '') THEN null ELSE `_67` END) `_67`
> > >    , (CASE WHEN (`_68` = '') THEN null ELSE `_68` END) `_68`
> > >    , (CASE WHEN (`_69` = '') THEN null ELSE `_69` END) `_69`
> > >    , (CASE WHEN (`_70` = '') THEN null ELSE `_70` END) `_70`
> > >    , (CASE WHEN (`_71` = '') THEN null ELSE `_71` END) `_71`
> > >    , (CASE WHEN (`_72` = '') THEN null ELSE `_72` END) `_72`
> > >    , (CASE WHEN (`_73` = '') THEN null ELSE `_73` END) `_73`
> > >    , (CASE WHEN (`_74` = '') THEN null ELSE `_74` END) `_74`
> > >
> > >
> > >    FROM
> > > ( select '0' `A1`, '1' `A2`, '2' `A3`, '3' `A4`, '4' `A5`, '5' `A6`,
> '6'
> > > `A7`, '7' `A8`, '8' `A9`, '9' `A10`, '10' `A11`, '11' `A12`, '12'
> `A13`,
> > > '13' `A14`, '14' `A15`, '15' `A16`, '16' `A17`, '17' `A18`, '18' `A19`,
> > > '19' `A20`, '20' `A21`, '21' `A22`, '23' `_1`, '24' `_2`, '25' `_3`,
> '26'
> > > `_4`, '27' `_5`, '28' `_6`, '29' `_7`, '30' `_8`, '31' `_9`, '32'
> `_10`,
> > > '33' `_11`, '34' `_12`, '35' `_13`, '36' `_14`, '37' `_15`, '38' `_16`,
> > > '39' `_17`, '40' `_18`, '41' `_19`, '42' `_20`, '43' `_21`, '44' `_22`,
> > > '45' `_23`, '46' `_24`, '47' `_25`, '48' `_26`, '49' `_27`, '50' `_28`,
> > > '51' `_29`, '52' `_30`, '53' `_31`, '54' `_32`, '55' `_33`, '56' `_34`,
> > > '57' `_35`, '58' `_36`, '59' `_37`, '60' `_38`, '61' `_39`, '62' `_40`,
> > > '63' `_41`, '64' `_42`, '65' `_43`, '66' `_44`, '67' `_45`, '68' `_46`,
> > > '69' `_47`, '70' `_48`, '71' `_49`, '72' `_50`, '73' `_51`, '74' `_52`,
> > > '75' `_53`, '76' `_54`, '77' `_55`, '78' `_56`, '79' `_57`, '80' `_58`,
> > > '81' `_59`, '82' `_60`, '83' `_61`, '84' `_62`, '85' `_63`, '86' `_64`,
> > > '87' `_65`, '88' `_66`, '89' `_67`, '90' `_68`, '91' `_69`, '92' `_70`,
> > > '93' `_71`, '94' `_72`, '95' `_73`, '96' `_74`, '97' `_75`, '98' `_76`,
> > > '99' `_77`, '100' `_78`, '101' `_79`, '102' `_80`, '103' `_81`, '104'
> > > `_82`, '105' `_83`, '106' `_84`, '107' `_85`, '108' `_86`, '109' `_87`,
> > > '110' `_88`, '111' `_89`, '112' `_90`, '113' `_91`, '114' `_92`, '115'
> > > `_93`, '116' `_94`, '117' `_95`, '118' `_96`, '119' `_97`, '120' `_98`,
> > > '121' `_99`, '122' `_100`, '123' `_101`, '124' `_102`, '125' `_103`,
> > '126'
> > > `_104`, '127' `_105`, '128' `_106`, '129' `_107`, '130' `_108`, '131'
> > > `_109`, '132' `_110`, '133' `_111`, '134' `_112`, '135' `_113`, '136'
> > > `_114`, '137' `_115`, '138' `_116`, '139' `_117`, '140' `_118`, '141'
> > > `_119`, '142' `_120`, '143' `_121`, '144' `_122`, '145' `_123`, '146'
> > > `_124`, '147' `_125`, '148' `_126`, '149' `_127`, '150' `_128`, '151'
> > > `_129`, '152' `_130`, '153' `_131`, '154' `_132`, '155' `_133`, '156'
> > > `_134`, '157' `_135`, '158' `_136`, '159' `_137`, '160' `_138`, '161'
> > > `_139`, '162' `_140`, '163' `_141`, '164' `_142`, '165' `_143`, '166'
> > > `_144`, '167' `_145`, '168' `_146`, '169' `_147`, '170' `_148`, '171'
> > > `_149`, '172' `_150`, '173' `_151`, '174' `_152`, '175' `_153`, '176'
> > > `_154`, '177' `_155`, '178' `_156`, '179' `_157`, '180' `_158`, '181'
> > > `_159`, '182' `_160`, '183' `_161`, '184' `_162`, '185' `_163`, '186'
> > > `_164`, '187' `_165`, '188' `_166`, '189' `_167`, '190' `_168`, '191'
> > > `_169`, '192' `_170`, '193' `_171`, '194' `_172`, '195' `_173`, '196'
> > > `_174`, '197' `_175`, '198' `_176`, '199' `_177`, '200' `_178`, '201'
> > > `_179`, '202' `_180`, '203' `_181`, '204' `_182`, '205' `_183`, '206'
> > > `_184`, '207' `_185`  from (values(1)) )
> > >
> > > Regards,
> > > Rahul
> > >
> >
> > --
> > _*** This email and any files transmitted with it are confidential and
> > intended solely for the use of the individual or entity to whom it is
> > addressed. If you are not the named addressee then you should not
> > disseminate, distribute or copy this e-mail. Please notify the sender
> > immediately and delete this e-mail from your system.***_
> >
>

-- 
_*** This email and any files transmitted with it are confidential and 
intended solely for the use of the individual or entity to whom it is 
addressed. If you are not the named addressee then you should not 
disseminate, distribute or copy this e-mail. Please notify the sender 
immediately and delete this e-mail from your system.***_

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message