@@ -370,6 +370,45 @@ warning:Line 3:3: evaluation of [LOOKUP JOIN multi_column_joinable_lookup ON lef
370370warning:Line 3:3: java.lang.IllegalArgumentException: LOOKUP JOIN encountered multi-value
371371
372372
373+ left_id:integer | left_name:keyword | id_int:integer | name_str:keyword | is_active_left:boolean | is_active_bool:boolean
374+ 1 | Alice | null | null | true | null
375+ [1, 19, 21] | Sophia | null | null | true | null
376+ 2 | Bob | null | null | false | null
377+ 3 | Charlie | 1 | Alice | true | true
378+ 3 | Charlie | 1 | Alice | true | true
379+ 4 | David | 2 | Bob | false | false
380+ 4 | David | 3 | Charlie | false | false
381+ 5 | Eve | 1 | Alice | true | true
382+ 5 | Eve | 1 | Alice | true | true
383+ 5 | Eve | 3 | Charlie | true | true
384+ 6 | null | 1 | Alice | true | true
385+ 6 | null | 1 | Alice | true | true
386+ 6 | null | 3 | Charlie | true | true
387+ 6 | null | 5 | Eve | true | true
388+ 6 | null | 5 | Eve | true | true
389+ 7 | Grace | 2 | Bob | false | false
390+ 7 | Grace | 3 | Charlie | false | false
391+ 7 | Grace | 4 | David | false | false
392+ 8 | Hank | 1 | Alice | true | true
393+ 8 | Hank | 1 | Alice | true | true
394+ ;
395+
396+ lookupMultiColMixedGtEqSwapLeftRight
397+ required_capability: join_lookup_v12
398+ required_capability: lookup_join_on_boolean_expression
399+
400+ FROM multi_column_joinable
401+ | RENAME id_int AS left_id, name_str AS left_name, is_active_bool AS is_active_left
402+ | LOOKUP JOIN multi_column_joinable_lookup ON id_int < left_id AND is_active_left == is_active_bool
403+ | KEEP left_id, left_name, id_int, name_str, is_active_left, is_active_bool
404+ | SORT left_id, left_name, id_int, name_str, is_active_left, is_active_left
405+ | LIMIT 20
406+ ;
407+
408+ warning:Line 3:3: evaluation of [LOOKUP JOIN multi_column_joinable_lookup ON id_int < left_id AND is_active_left == is_active_bool] failed, treating result as null. Only first 20 failures recorded.
409+ warning:Line 3:3: java.lang.IllegalArgumentException: LOOKUP JOIN encountered multi-value
410+
411+
373412left_id:integer | left_name:keyword | id_int:integer | name_str:keyword | is_active_left:boolean | is_active_bool:boolean
3744131 | Alice | null | null | true | null
375414[1, 19, 21] | Sophia | null | null | true | null
@@ -512,3 +551,117 @@ left_id:integer | left_name:keyword | left_is_active:boolean | left_ip:ip | id_
5125512 | Bob | false | 192.168.1.3 | 14 | Nina | true | 192.168.1.14
5135522 | Bob | false | 192.168.1.3 | 16 | Paul | true | 192.168.1.16
514553;
554+
555+
556+ lookupJoinOnSameLeftFieldTwice
557+ required_capability: join_lookup_v12
558+ required_capability: lookup_join_on_boolean_expression
559+
560+ FROM multi_column_joinable
561+ | RENAME id_int AS id_left, name_str AS name_left, is_active_bool AS is_active_left, ip_addr AS ip_addr_left
562+ | LOOKUP JOIN multi_column_joinable_lookup ON id_left == id_int AND name_left == name_str AND id_left < other2
563+ | KEEP id_left, name_left, extra1, other1, other2
564+ | SORT id_left, name_left, extra1, other1, other2
565+ ;
566+
567+ warning:Line 3:3: evaluation of [LOOKUP JOIN multi_column_joinable_lookup ON id_left == id_int AND name_left == name_str AND id_left < other2] failed, treating result as null. Only first 20 failures recorded.
568+ warning:Line 3:3: java.lang.IllegalArgumentException: LOOKUP JOIN encountered multi-value
569+
570+ id_left:integer | name_left:keyword | extra1:keyword | other1:keyword | other2:integer
571+ 1 | Alice | foo | alpha | 1000
572+ 1 | Alice | foo | beta | 2000
573+ [1, 19, 21] | Sophia | zyx | null | null
574+ 2 | Bob | bar | gamma | 3000
575+ 3 | Charlie | baz | delta | 4000
576+ 3 | Charlie | baz | epsilon | 5000
577+ 4 | David | qux | zeta | 6000
578+ 5 | Eve | quux | eta | 7000
579+ 5 | Eve | quux | theta | 8000
580+ 6 | null | corge | null | null
581+ 7 | Grace | grault | kappa | 10000
582+ 8 | Hank | garply | lambda | 11000
583+ 9 | Ivy | waldo | null | null
584+ 10 | John | fred | null | null
585+ 12 | Liam | xyzzy | nu | 13000
586+ 13 | Mia | thud | xi | 14000
587+ 14 | Nina | foo2 | omicron | 15000
588+ 15 | Oscar | bar2 | null | null
589+ [17, 18] | Olivia | xyz | null | null
590+ null | Kate | plugh | null | null
591+ ;
592+
593+ lookupJoinOnSameRightFieldTwice
594+ required_capability: join_lookup_v12
595+ required_capability: lookup_join_on_boolean_expression
596+
597+ FROM multi_column_joinable
598+ | RENAME id_int AS id_left, name_str AS name_left, is_active_bool AS is_active_left, ip_addr AS ip_addr_left
599+ | LOOKUP JOIN multi_column_joinable_lookup ON id_left == id_int AND name_left == name_str AND extra2 > id_int
600+ | KEEP id_left, name_left, extra1, other1, other2
601+ | SORT id_left, name_left, extra1, other1, other2
602+ ;
603+
604+ warning:Line 3:3: evaluation of [LOOKUP JOIN multi_column_joinable_lookup ON id_left == id_int AND name_left == name_str AND extra2 > id_int] failed, treating result as null. Only first 20 failures recorded.
605+ warning:Line 3:3: java.lang.IllegalArgumentException: LOOKUP JOIN encountered multi-value
606+
607+
608+ id_left:integer | name_left:keyword | extra1:keyword | other1:keyword | other2:integer
609+ 1 | Alice | foo | alpha | 1000
610+ 1 | Alice | foo | beta | 2000
611+ [1, 19, 21] | Sophia | zyx | null | null
612+ 2 | Bob | bar | gamma | 3000
613+ 3 | Charlie | baz | delta | 4000
614+ 3 | Charlie | baz | epsilon | 5000
615+ 4 | David | qux | zeta | 6000
616+ 5 | Eve | quux | eta | 7000
617+ 5 | Eve | quux | theta | 8000
618+ 6 | null | corge | null | null
619+ 7 | Grace | grault | kappa | 10000
620+ 8 | Hank | garply | lambda | 11000
621+ 9 | Ivy | waldo | null | null
622+ 10 | John | fred | null | null
623+ 12 | Liam | xyzzy | nu | 13000
624+ 13 | Mia | thud | xi | 14000
625+ 14 | Nina | foo2 | omicron | 15000
626+ 15 | Oscar | bar2 | null | null
627+ [17, 18] | Olivia | xyz | null | null
628+ null | Kate | plugh | null | null
629+ ;
630+
631+ lookupJoinOnSameRightFieldTwiceEval
632+ required_capability: join_lookup_v12
633+ required_capability: lookup_join_on_boolean_expression
634+
635+ FROM multi_column_joinable
636+ | RENAME id_int AS id_left, name_str AS name_left, is_active_bool AS is_active_left, ip_addr AS ip_addr_left
637+ | EVAL left_id2 = ((extra2 / 200)::integer)*2
638+ | LOOKUP JOIN multi_column_joinable_lookup ON id_left == id_int AND name_left == name_str AND left_id2 != id_int
639+ | KEEP id_left, name_left, extra1, other1, other2, left_id2
640+ | SORT id_left, name_left, extra1, other1, other2, left_id2
641+ ;
642+
643+ warning:Line 4:3: evaluation of [LOOKUP JOIN multi_column_joinable_lookup ON id_left == id_int AND name_left == name_str AND left_id2 != id_int] failed, treating result as null. Only first 20 failures recorded.
644+ warning:Line 4:3: java.lang.IllegalArgumentException: LOOKUP JOIN encountered multi-value
645+
646+ id_left:integer | name_left:keyword | extra1:keyword | other1:keyword | other2:integer | left_id2:integer
647+ 1 | Alice | foo | alpha | 1000 | 0
648+ 1 | Alice | foo | beta | 2000 | 0
649+ [1, 19, 21] | Sophia | zyx | null | null | 210
650+ 2 | Bob | bar | null | null | 2
651+ 3 | Charlie | baz | delta | 4000 | 2
652+ 3 | Charlie | baz | epsilon | 5000 | 2
653+ 4 | David | qux | null | null | 4
654+ 5 | Eve | quux | eta | 7000 | 4
655+ 5 | Eve | quux | theta | 8000 | 4
656+ 6 | null | corge | null | null | 6
657+ 7 | Grace | grault | kappa | 10000 | 6
658+ 8 | Hank | garply | null | null | 8
659+ 9 | Ivy | waldo | null | null | 8
660+ 10 | John | fred | null | null | 10
661+ 12 | Liam | xyzzy | null | null | 12
662+ 13 | Mia | thud | xi | 14000 | 12
663+ 14 | Nina | foo2 | null | null | 14
664+ 15 | Oscar | bar2 | null | null | 14
665+ [17, 18] | Olivia | xyz | null | null | 170
666+ null | Kate | plugh | null | null | 10
667+ ;
0 commit comments