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 <agir...@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....@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....@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.***_ >