lgbo-ustc commented on issue #8283:
URL:
https://github.com/apache/incubator-gluten/issues/8283#issuecomment-2553217026
A example as following.
```sql
select
case when bus_type = 34 then split(order_id,'_')[2]
when bus_type in (116,118) then
split(order_id,'_')[4]
when bus_type in (117) then
split(order_id,'_')[5] end as uid
,case when bus_type = 34 then split(order_id,'_')[4]
when bus_type in (116,118) then
split(order_id,'_')[6]
when bus_type in (117) then
split(order_id,'_')[7] end
as id
from t
where day = '2024-12-15'
and appid=60
and bus_type in (34,116,117,118) ;
```
Without elimination in `ExpressionParser`, we get floowing actions dag, it
calculates `split(order_id,'_')` repeatly.
```
Actions: INPUT : 0 -> order_id Nullable(String) : 0
INPUT : 1 -> bus_type Nullable(Int32) : 1
COLUMN Const(Int32) -> 34_9 Int32 : 2
COLUMN Const(String) -> __10 String : 3
COLUMN Const(Int32) -> -1_13 Int32 : 4
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 5
COLUMN Const(Int32) -> plus(1_14,2_17) Int32 : 6
COLUMN Const(UInt8) -> lessOrEquals(plus(1_14,2_17),0_18) UInt8 :
7
COLUMN Const(Nullable(String)) -> NULL_20 Nullable(String) : 8
COLUMN Set -> __set_22 Set : 9
COLUMN Const(String) -> __24 String : 10
COLUMN Const(Int32) -> -1_25 Int32 : 11
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 12
COLUMN Const(Int32) -> plus(1_28,4_29) Int32 : 13
COLUMN Const(UInt8) -> lessOrEquals(plus(1_28,4_29),0_32) UInt8 :
14
COLUMN Const(Nullable(String)) -> NULL_34 Nullable(String) : 15
COLUMN Const(Int32) -> 117_36 Int32 : 16
COLUMN Const(String) -> __38 String : 17
COLUMN Const(Int32) -> -1_39 Int32 : 18
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 19
COLUMN Const(Int32) -> plus(1_42,5_43) Int32 : 20
COLUMN Const(UInt8) -> lessOrEquals(plus(1_42,5_43),0_47) UInt8 :
21
COLUMN Const(Nullable(String)) -> NULL_49 Nullable(String) : 22
COLUMN Const(Nullable(String)) -> NULL_50 Nullable(String) : 23
COLUMN Const(Int32) -> 34_52 Int32 : 24
COLUMN Const(String) -> __54 String : 25
COLUMN Const(Int32) -> -1_55 Int32 : 26
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 27
COLUMN Const(Int32) -> plus(1_58,4_59) Int32 : 28
COLUMN Const(UInt8) -> lessOrEquals(plus(1_58,4_59),0_62) UInt8 :
29
COLUMN Const(Nullable(String)) -> NULL_64 Nullable(String) : 30
COLUMN Set -> __set_66 Set : 31
COLUMN Const(String) -> __68 String : 32
COLUMN Const(Int32) -> -1_69 Int32 : 33
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 34
COLUMN Const(Int32) -> plus(1_72,6_74) Int32 : 35
COLUMN Const(UInt8) -> lessOrEquals(plus(1_72,6_74),0_77) UInt8 :
36
COLUMN Const(Nullable(String)) -> NULL_78 Nullable(String) : 37
COLUMN Const(Int32) -> 117_80 Int32 : 38
COLUMN Const(String) -> __82 String : 39
COLUMN Const(Int32) -> -1_83 Int32 : 40
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 41
COLUMN Const(Int32) -> plus(1_86,7_87) Int32 : 42
COLUMN Const(UInt8) -> lessOrEquals(plus(1_86,7_87),0_90) UInt8 :
43
COLUMN Const(Nullable(String)) -> NULL_92 Nullable(String) : 44
COLUMN Const(Nullable(String)) -> NULL_94 Nullable(String) : 45
INPUT :: 2 -> hour Nullable(String) : 46
INPUT :: 3 -> day Nullable(String) : 47
INPUT :: 4 -> appid Int32 : 48
FUNCTION equals(bus_type : 1, 34_9 :: 2) -> equals(bus_type,34_9)
Nullable(Bool) : 49
FUNCTION splitByChar(__10 :: 3, order_id : 0, -1_13 :: 4) ->
splitByRegexpSpark(__10,order_id,-1_13) Nullable(Array(String)) : 2
FUNCTION in(bus_type : 1, __set_22 :: 9) -> in(bus_type,__set_22)
Nullable(UInt8) : 4
FUNCTION splitByChar(__24 :: 10, order_id : 0, -1_25 :: 11) ->
splitByRegexpSpark(__24,order_id,-1_25) Nullable(Array(String)) : 9
FUNCTION equals(bus_type : 1, 117_36 :: 16) ->
equals(bus_type,117_36) Nullable(Bool) : 11
FUNCTION splitByChar(__38 :: 17, order_id : 0, -1_39 :: 18) ->
splitByRegexpSpark(__38,order_id,-1_39) Nullable(Array(String)) : 16
FUNCTION equals(bus_type : 1, 34_52 :: 24) ->
equals(bus_type,34_52) Nullable(Bool) : 18
FUNCTION splitByChar(__54 :: 25, order_id : 0, -1_55 :: 26) ->
splitByRegexpSpark(__54,order_id,-1_55) Nullable(Array(String)) : 24
FUNCTION in(bus_type : 1, __set_66 :: 31) ->
in(bus_type,__set_66) Nullable(UInt8) : 26
FUNCTION splitByChar(__68 :: 32, order_id : 0, -1_69 :: 33) ->
splitByRegexpSpark(__68,order_id,-1_69) Nullable(Array(String)) : 31
FUNCTION equals(bus_type :: 1, 117_80 :: 38) ->
equals(bus_type,117_80) Nullable(Bool) : 33
FUNCTION splitByChar(__82 :: 39, order_id :: 0, -1_83 :: 40) ->
splitByRegexpSpark(__82,order_id,-1_83) Nullable(Array(String)) : 38
FUNCTION _CAST(splitByRegexpSpark(__10,order_id,-1_13) :: 2,
Nullable(Array(Nullable(String))) :: 5) ->
splitByRegexpSpark(__10,order_id,-1_13) Nullable(Array(Nullable(String))) : 40
FUNCTION _CAST(splitByRegexpSpark(__24,order_id,-1_25) :: 9,
Nullable(Array(Nullable(String))) :: 12) ->
splitByRegexpSpark(__24,order_id,-1_25) Nullable(Array(Nullable(String))) : 5
FUNCTION _CAST(splitByRegexpSpark(__38,order_id,-1_39) :: 16,
Nullable(Array(Nullable(String))) :: 19) ->
splitByRegexpSpark(__38,order_id,-1_39) Nullable(Array(Nullable(String))) : 12
FUNCTION _CAST(splitByRegexpSpark(__54,order_id,-1_55) :: 24,
Nullable(Array(Nullable(String))) :: 27) ->
splitByRegexpSpark(__54,order_id,-1_55) Nullable(Array(Nullable(String))) : 19
FUNCTION _CAST(splitByRegexpSpark(__68,order_id,-1_69) :: 31,
Nullable(Array(Nullable(String))) :: 34) ->
splitByRegexpSpark(__68,order_id,-1_69) Nullable(Array(Nullable(String))) : 27
FUNCTION _CAST(splitByRegexpSpark(__82,order_id,-1_83) :: 38,
Nullable(Array(Nullable(String))) :: 41) ->
splitByRegexpSpark(__82,order_id,-1_83) Nullable(Array(Nullable(String))) : 34
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13) :: 40,
plus(1_14,2_17) :: 6) ->
arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17))
Nullable(String) : 41
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25) :: 5,
plus(1_28,4_29) :: 13) ->
arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29))
Nullable(String) : 6
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39) :: 12,
plus(1_42,5_43) :: 20) ->
arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43))
Nullable(String) : 13
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55) :: 19,
plus(1_58,4_59) :: 28) ->
arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59))
Nullable(String) : 20
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69) :: 27,
plus(1_72,6_74) :: 35) ->
arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74))
Nullable(String) : 28
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83) :: 34,
plus(1_86,7_87) :: 42) ->
arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87))
Nullable(String) : 35
FUNCTION if(lessOrEquals(plus(1_14,2_17),0_18) :: 7, NULL_20 ::
8, arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17))
:: 41) ->
if(lessOrEquals(plus(1_14,2_17),0_18),NULL_20,arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17)))
Nullable(String) : 42
FUNCTION if(lessOrEquals(plus(1_28,4_29),0_32) :: 14, NULL_34 ::
15, arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29))
:: 6) ->
if(lessOrEquals(plus(1_28,4_29),0_32),NULL_34,arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29)))
Nullable(String) : 41
FUNCTION if(lessOrEquals(plus(1_42,5_43),0_47) :: 21, NULL_49 ::
22, arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43))
:: 13) ->
if(lessOrEquals(plus(1_42,5_43),0_47),NULL_49,arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43)))
Nullable(String) : 6
FUNCTION if(lessOrEquals(plus(1_58,4_59),0_62) :: 29, NULL_64 ::
30, arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59))
:: 20) ->
if(lessOrEquals(plus(1_58,4_59),0_62),NULL_64,arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59)))
Nullable(String) : 13
FUNCTION if(lessOrEquals(plus(1_72,6_74),0_77) :: 36, NULL_78 ::
37, arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74))
:: 28) ->
if(lessOrEquals(plus(1_72,6_74),0_77),NULL_78,arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74)))
Nullable(String) : 20
FUNCTION if(lessOrEquals(plus(1_86,7_87),0_90) :: 43, NULL_92 ::
44, arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87))
:: 35) ->
if(lessOrEquals(plus(1_86,7_87),0_90),NULL_92,arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87)))
Nullable(String) : 28
FUNCTION multiIf(equals(bus_type,34_9) :: 49,
if(lessOrEquals(plus(1_14,2_17),0_18),NULL_20,arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17)))
:: 42, in(bus_type,__set_22) :: 4,
if(lessOrEquals(plus(1_28,4_29),0_32),NULL_34,arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29)))
:: 41, equals(bus_type,117_36) :: 11,
if(lessOrEquals(plus(1_42,5_43),0_47),NULL_49,arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43)))
:: 6, NULL_50 :: 23) ->
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_14,2_17),0_18),NULL_20,arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17))),in(bus_type,__set_22),if(lessOrEquals(plus(1_28,4_29),0_32),NULL_34,arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29))),equals(bus_type,117_36),if(lessOrEquals(plus(1_42,5_43),0_47),NULL_49,arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43))),NULL_50)
Nullable(String) :
35
FUNCTION multiIf(equals(bus_type,34_52) :: 18,
if(lessOrEquals(plus(1_58,4_59),0_62),NULL_64,arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59)))
:: 13, in(bus_type,__set_66) :: 26,
if(lessOrEquals(plus(1_72,6_74),0_77),NULL_78,arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74)))
:: 20, equals(bus_type,117_80) :: 33,
if(lessOrEquals(plus(1_86,7_87),0_90),NULL_92,arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87)))
:: 28, NULL_94 :: 45) ->
multiIf(equals(bus_type,34_52),if(lessOrEquals(plus(1_58,4_59),0_62),NULL_64,arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59))),in(bus_type,__set_66),if(lessOrEquals(plus(1_72,6_74),0_77),NULL_78,arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74))),equals(bus_type,117_80),if(lessOrEquals(plus(1_86,7_87),0_90),NULL_92,arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87))),NULL_94)
Nullable(Strin
g) : 23
ALIAS
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_14,2_17),0_18),NULL_20,arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17))),in(bus_type,__set_22),if(lessOrEquals(plus(1_28,4_29),0_32),NULL_34,arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29))),equals(bus_type,117_36),if(lessOrEquals(plus(1_42,5_43),0_47),NULL_49,arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43))),NULL_50)
:: 35 ->
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_14,2_17),0_18),NULL_20,arrayElementOrNull(splitByRegexpSpark(__10,order_id,-1_13),plus(1_14,2_17))),in(bus_type,__set_22),if(lessOrEquals(plus(1_28,4_29),0_32),NULL_34,arrayElementOrNull(splitByRegexpSpark(__24,order_id,-1_25),plus(1_28,4_29))),equals(bus_type,117_36),if(lessOrEquals(plus(1_42,5_43),0_47),NULL_49,arrayElementOrNull(splitByRegexpSpark(__38,order_id,-1_39),plus(1_42,5_43))),NULL_50)
Nullable(String) : 45
ALIAS
multiIf(equals(bus_type,34_52),if(lessOrEquals(plus(1_58,4_59),0_62),NULL_64,arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59))),in(bus_type,__set_66),if(lessOrEquals(plus(1_72,6_74),0_77),NULL_78,arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74))),equals(bus_type,117_80),if(lessOrEquals(plus(1_86,7_87),0_90),NULL_92,arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87))),NULL_94)
:: 23 ->
multiIf(equals(bus_type,34_52),if(lessOrEquals(plus(1_58,4_59),0_62),NULL_64,arrayElementOrNull(splitByRegexpSpark(__54,order_id,-1_55),plus(1_58,4_59))),in(bus_type,__set_66),if(lessOrEquals(plus(1_72,6_74),0_77),NULL_78,arrayElementOrNull(splitByRegexpSpark(__68,order_id,-1_69),plus(1_72,6_74))),equals(bus_type,117_80),if(lessOrEquals(plus(1_86,7_87),0_90),NULL_92,arrayElementOrNull(splitByRegexpSpark(__82,order_id,-1_83),plus(1_86,7_87))),NULL_94)
Nullable(String) : 35
```
With elimination in `ExpressionParser`, we get following actions dag. it
becomes simpler
```
Actions: INPUT : 0 -> order_id Nullable(String) : 0
INPUT : 1 -> bus_type Nullable(Int32) : 1
COLUMN Const(Int32) -> 34_9 Int32 : 2
COLUMN Const(String) -> __11 String : 3
COLUMN Const(Int32) -> -1_12 Int32 : 4
COLUMN Const(String) -> Nullable(Array(Nullable(String))) String
: 5
COLUMN Const(Int32) -> plus(1_15,2_17) Int32 : 6
COLUMN Const(UInt8) -> lessOrEquals(plus(1_15,2_17),0_18) UInt8 :
7
COLUMN Const(Nullable(String)) -> NULL_21 Nullable(String) : 8
COLUMN Set -> __set_22 Set : 9
COLUMN Const(UInt8) -> lessOrEquals(plus(1_15,4_31),0_18) UInt8 :
10
COLUMN Const(Int32) -> 117_37 Int32 : 11
COLUMN Const(UInt8) -> lessOrEquals(plus(1_15,5_45),0_18) UInt8 :
12
COLUMN Const(UInt8) -> lessOrEquals(plus(1_15,4_31),0_18) UInt8 :
13
COLUMN Set -> __set_66 Set : 14
COLUMN Const(UInt8) -> lessOrEquals(plus(1_15,6_75),0_18) UInt8 :
15
COLUMN Const(UInt8) -> lessOrEquals(plus(1_15,7_88),0_18) UInt8 :
16
INPUT :: 2 -> hour Nullable(String) : 17
INPUT :: 3 -> day Nullable(String) : 18
INPUT :: 4 -> appid Int32 : 19
FUNCTION equals(bus_type : 1, 34_9 : 2) -> equals(bus_type,34_9)
Nullable(Bool) : 20
FUNCTION equals(bus_type : 1, 34_9 :: 2) -> equals(bus_type,34_9)
Nullable(Bool) : 21
FUNCTION splitByChar(__11 :: 3, order_id :: 0, -1_12 :: 4) ->
splitByRegexpSpark(__11,order_id,-1_12) Nullable(Array(String)) : 2
FUNCTION in(bus_type : 1, __set_22 :: 9) -> in(bus_type,__set_22)
Nullable(UInt8) : 4
FUNCTION equals(bus_type : 1, 117_37 : 11) ->
equals(bus_type,117_37) Nullable(Bool) : 9
FUNCTION equals(bus_type : 1, 117_37 :: 11) ->
equals(bus_type,117_37) Nullable(Bool) : 0
FUNCTION in(bus_type :: 1, __set_66 :: 14) ->
in(bus_type,__set_66) Nullable(UInt8) : 11
FUNCTION _CAST(splitByRegexpSpark(__11,order_id,-1_12) :: 2,
Nullable(Array(Nullable(String))) :: 5) ->
splitByRegexpSpark(__11,order_id,-1_12) Nullable(Array(Nullable(String))) : 14
FUNCTION
arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12) :: 14,
plus(1_15,2_17) :: 6) ->
arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))
Nullable(String) : 5
FUNCTION if(lessOrEquals(plus(1_15,2_17),0_18) :: 7, NULL_21 : 8,
arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)) :
5) ->
if(lessOrEquals(plus(1_15,2_17),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
Nullable(String) : 6
FUNCTION if(lessOrEquals(plus(1_15,4_31),0_18) :: 10, NULL_21 :
8, arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))
: 5) ->
if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
Nullable(String) : 7
FUNCTION if(lessOrEquals(plus(1_15,5_45),0_18) :: 12, NULL_21 :
8, arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))
: 5) ->
if(lessOrEquals(plus(1_15,5_45),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
Nullable(String) : 10
FUNCTION if(lessOrEquals(plus(1_15,4_31),0_18) :: 13, NULL_21 :
8, arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))
: 5) ->
if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
Nullable(String) : 12
FUNCTION if(lessOrEquals(plus(1_15,6_75),0_18) :: 15, NULL_21 :
8, arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))
: 5) ->
if(lessOrEquals(plus(1_15,6_75),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
Nullable(String) : 13
FUNCTION if(lessOrEquals(plus(1_15,7_88),0_18) :: 16, NULL_21 :
8, arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))
:: 5) ->
if(lessOrEquals(plus(1_15,7_88),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
Nullable(String) : 15
FUNCTION multiIf(equals(bus_type,34_9) :: 20,
if(lessOrEquals(plus(1_15,2_17),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
:: 6, in(bus_type,__set_22) :: 4,
if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
:: 7, equals(bus_type,117_37) :: 9,
if(lessOrEquals(plus(1_15,5_45),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
:: 10, NULL_21 : 8) ->
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_15,2_17),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),in(bus_type,__set_22),if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),equals(bus_type,117_37),if(lessOrEquals(plus(1_15,5_45),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),NULL_21)
Nullable(String) : 5
FUNCTION multiIf(equals(bus_type,34_9) :: 21,
if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
:: 12, in(bus_type,__set_66) :: 11,
if(lessOrEquals(plus(1_15,6_75),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
:: 13, equals(bus_type,117_37) :: 0,
if(lessOrEquals(plus(1_15,7_88),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17)))
:: 15, NULL_21 :: 8) ->
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),in(bus_type,__set_66),if(lessOrEquals(plus(1_15,6_75),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),equals(bus_type,117_37),if(lessOrEquals(plus(1_15,7_88),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),NULL_21)
Nullable(String) :
10
ALIAS
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_15,2_17),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),in(bus_type,__set_22),if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),equals(bus_type,117_37),if(lessOrEquals(plus(1_15,5_45),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),NULL_21)
:: 5 ->
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_15,2_17),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),in(bus_type,__set_22),if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),equals(bus_type,117_37),if(lessOrEquals(plus(1_15,5_45),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),NULL_21)
Nullable(String) : 8
ALIAS
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),in(bus_type,__set_66),if(lessOrEquals(plus(1_15,6_75),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),equals(bus_type,117_37),if(lessOrEquals(plus(1_15,7_88),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),NULL_21)
:: 10 ->
multiIf(equals(bus_type,34_9),if(lessOrEquals(plus(1_15,4_31),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),in(bus_type,__set_66),if(lessOrEquals(plus(1_15,6_75),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),equals(bus_type,117_37),if(lessOrEquals(plus(1_15,7_88),0_18),NULL_21,arrayElementOrNull(splitByRegexpSpark(__11,order_id,-1_12),plus(1_15,2_17))),NULL_21)
Nullable(String) : 5
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]