Skip to content

Commit 10b8a68

Browse files
Add NULL operand type to binary rel op map (#3373)
SQL null literals are not falling under the `UNKNOWN` type which is mostly unused by the Cascades planner, but under the `NULL` type. This PR introduces `NULL` variants for the comparison operators.
1 parent 0759246 commit 10b8a68

File tree

4 files changed

+369
-1
lines changed

4 files changed

+369
-1
lines changed

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/values/RelOpValue.java

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,137 @@ private enum BinaryPhysicalOperator {
763763
GTE_SID(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.STRING, Type.TypeCode.UUID, (l, r) -> Comparisons.evalComparison(Comparisons.Type.GREATER_THAN_OR_EQUALS, PromoteValue.PhysicalOperator.stringToUuidValue((String) l), r)),
764764
GTE_UID(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.UNKNOWN, Type.TypeCode.UUID, (l, r) -> null),
765765
GTE_IDU(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.UUID, Type.TypeCode.UNKNOWN, (l, r) -> null),
766+
767+
EQ_BN(Comparisons.Type.EQUALS, Type.TypeCode.BOOLEAN, Type.TypeCode.NULL, (l, r) -> null),
768+
EQ_IN(Comparisons.Type.EQUALS, Type.TypeCode.INT, Type.TypeCode.NULL, (l, r) -> null),
769+
EQ_LN(Comparisons.Type.EQUALS, Type.TypeCode.LONG, Type.TypeCode.NULL, (l, r) -> null),
770+
EQ_FN(Comparisons.Type.EQUALS, Type.TypeCode.FLOAT, Type.TypeCode.NULL, (l, r) -> null),
771+
EQ_DN(Comparisons.Type.EQUALS, Type.TypeCode.DOUBLE, Type.TypeCode.NULL, (l, r) -> null),
772+
EQ_SN(Comparisons.Type.EQUALS, Type.TypeCode.STRING, Type.TypeCode.NULL, (l, r) -> null),
773+
EQ_NN(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.NULL, (l, r) -> null),
774+
EQ_NU(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.UNKNOWN, (l, r) -> null),
775+
EQ_UN(Comparisons.Type.EQUALS, Type.TypeCode.UNKNOWN, Type.TypeCode.NULL, (l, r) -> null),
776+
EQ_NB(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.BOOLEAN, (l, r) -> null),
777+
EQ_NI(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.INT, (l, r) -> null),
778+
EQ_NL(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.LONG, (l, r) -> null),
779+
EQ_NF(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.FLOAT, (l, r) -> null),
780+
EQ_ND(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.DOUBLE, (l, r) -> null),
781+
EQ_NS(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.STRING, (l, r) -> null),
782+
EQ_NV(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.VERSION, (l, r) -> null),
783+
EQ_VN(Comparisons.Type.EQUALS, Type.TypeCode.VERSION, Type.TypeCode.NULL, (l, r) -> null),
784+
NEQ_BN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.BOOLEAN, Type.TypeCode.NULL, (l, r) -> null),
785+
NEQ_IN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.INT, Type.TypeCode.NULL, (l, r) -> null),
786+
NEQ_LN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.LONG, Type.TypeCode.NULL, (l, r) -> null),
787+
NEQ_FN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.FLOAT, Type.TypeCode.NULL, (l, r) -> null),
788+
NEQ_DN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.DOUBLE, Type.TypeCode.NULL, (l, r) -> null),
789+
NEQ_SN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.STRING, Type.TypeCode.NULL, (l, r) -> null),
790+
NEQ_NN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.NULL, (l, r) -> null),
791+
NEQ_UN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.UNKNOWN, Type.TypeCode.NULL, (l, r) -> null),
792+
NEQ_NU(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.UNKNOWN, (l, r) -> null),
793+
NEQ_NB(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.BOOLEAN, (l, r) -> null),
794+
NEQ_NI(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.INT, (l, r) -> null),
795+
NEQ_NL(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.LONG, (l, r) -> null),
796+
NEQ_NF(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.FLOAT, (l, r) -> null),
797+
NEQ_ND(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.DOUBLE, (l, r) -> null),
798+
NEQ_NS(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.STRING, (l, r) -> null),
799+
NEQ_NV(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.VERSION, (l, r) -> null),
800+
NEQ_VN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.VERSION, Type.TypeCode.NULL, (l, r) -> null),
801+
LT_IN(Comparisons.Type.LESS_THAN, Type.TypeCode.INT, Type.TypeCode.NULL, (l, r) -> null),
802+
LT_LN(Comparisons.Type.LESS_THAN, Type.TypeCode.LONG, Type.TypeCode.NULL, (l, r) -> null),
803+
LT_FN(Comparisons.Type.LESS_THAN, Type.TypeCode.FLOAT, Type.TypeCode.NULL, (l, r) -> null),
804+
LT_DN(Comparisons.Type.LESS_THAN, Type.TypeCode.DOUBLE, Type.TypeCode.NULL, (l, r) -> null),
805+
LT_SN(Comparisons.Type.LESS_THAN, Type.TypeCode.STRING, Type.TypeCode.NULL, (l, r) -> null),
806+
LT_NN(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.NULL, (l, r) -> null),
807+
LT_UN(Comparisons.Type.LESS_THAN, Type.TypeCode.UNKNOWN, Type.TypeCode.NULL, (l, r) -> null),
808+
LT_NU(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.UNKNOWN, (l, r) -> null),
809+
LT_NB(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.BOOLEAN, (l, r) -> null),
810+
LT_NI(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.INT, (l, r) -> null),
811+
LT_NL(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.LONG, (l, r) -> null),
812+
LT_NF(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.FLOAT, (l, r) -> null),
813+
LT_ND(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.DOUBLE, (l, r) -> null),
814+
LT_NS(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.STRING, (l, r) -> null),
815+
LT_NV(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.VERSION, (l, r) -> null),
816+
LT_VN(Comparisons.Type.LESS_THAN, Type.TypeCode.VERSION, Type.TypeCode.NULL, (l, r) -> null),
817+
LTE_IN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.INT, Type.TypeCode.NULL, (l, r) -> null),
818+
LTE_LN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.LONG, Type.TypeCode.NULL, (l, r) -> null),
819+
LTE_FN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.FLOAT, Type.TypeCode.NULL, (l, r) -> null),
820+
LTE_DN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.DOUBLE, Type.TypeCode.NULL, (l, r) -> null),
821+
LTE_SN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.STRING, Type.TypeCode.NULL, (l, r) -> null),
822+
LTE_NN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.NULL, (l, r) -> null),
823+
LTE_UN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.UNKNOWN, Type.TypeCode.NULL, (l, r) -> null),
824+
LTE_NU(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.UNKNOWN, (l, r) -> null),
825+
LTE_NB(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.BOOLEAN, (l, r) -> null),
826+
LTE_NI(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.INT, (l, r) -> null),
827+
LTE_NL(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.LONG, (l, r) -> null),
828+
LTE_NF(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.FLOAT, (l, r) -> null),
829+
LTE_ND(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.DOUBLE, (l, r) -> null),
830+
LTE_NS(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.STRING, (l, r) -> null),
831+
LTE_NV(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.VERSION, (l, r) -> null),
832+
LTE_VN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.VERSION, Type.TypeCode.NULL, (l, r) -> null),
833+
GT_IN(Comparisons.Type.GREATER_THAN, Type.TypeCode.INT, Type.TypeCode.NULL, (l, r) -> null),
834+
GT_LN(Comparisons.Type.GREATER_THAN, Type.TypeCode.LONG, Type.TypeCode.NULL, (l, r) -> null),
835+
GT_FN(Comparisons.Type.GREATER_THAN, Type.TypeCode.FLOAT, Type.TypeCode.NULL, (l, r) -> null),
836+
GT_DN(Comparisons.Type.GREATER_THAN, Type.TypeCode.DOUBLE, Type.TypeCode.NULL, (l, r) -> null),
837+
GT_SN(Comparisons.Type.GREATER_THAN, Type.TypeCode.STRING, Type.TypeCode.NULL, (l, r) -> null),
838+
GT_NN(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.NULL, (l, r) -> null),
839+
GT_UN(Comparisons.Type.GREATER_THAN, Type.TypeCode.UNKNOWN, Type.TypeCode.NULL, (l, r) -> null),
840+
GT_NU(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.UNKNOWN, (l, r) -> null),
841+
GT_NB(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.BOOLEAN, (l, r) -> null),
842+
GT_NI(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.INT, (l, r) -> null),
843+
GT_NL(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.LONG, (l, r) -> null),
844+
GT_NF(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.FLOAT, (l, r) -> null),
845+
GT_ND(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.DOUBLE, (l, r) -> null),
846+
GT_NS(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.STRING, (l, r) -> null),
847+
GT_NV(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.VERSION, (l, r) -> null),
848+
GT_VN(Comparisons.Type.GREATER_THAN, Type.TypeCode.VERSION, Type.TypeCode.NULL, (l, r) -> null),
849+
GTE_IN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.INT, Type.TypeCode.NULL, (l, r) -> null),
850+
GTE_LN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.LONG, Type.TypeCode.NULL, (l, r) -> null),
851+
GTE_FN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.FLOAT, Type.TypeCode.NULL, (l, r) -> null),
852+
GTE_DN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.DOUBLE, Type.TypeCode.NULL, (l, r) -> null),
853+
GTE_SN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.STRING, Type.TypeCode.NULL, (l, r) -> null),
854+
GTE_NN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.NULL, (l, r) -> null),
855+
GTE_NU(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.UNKNOWN, (l, r) -> null),
856+
GTE_UN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.UNKNOWN, Type.TypeCode.NULL, (l, r) -> null),
857+
GTE_NB(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.BOOLEAN, (l, r) -> null),
858+
GTE_NI(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.INT, (l, r) -> null),
859+
GTE_NL(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.LONG, (l, r) -> null),
860+
GTE_NF(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.FLOAT, (l, r) -> null),
861+
GTE_ND(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.DOUBLE, (l, r) -> null),
862+
GTE_NS(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.STRING, (l, r) -> null),
863+
GTE_NV(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.VERSION, (l, r) -> null),
864+
GTE_VN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.VERSION, Type.TypeCode.NULL, (l, r) -> null),
865+
EQ_BYN(Comparisons.Type.EQUALS, Type.TypeCode.BYTES, Type.TypeCode.NULL, (l, r) -> null),
866+
EQ_NBY(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.BYTES, (l, r) -> null),
867+
NEQ_BYN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.BYTES, Type.TypeCode.NULL, (l, r) -> null),
868+
NEQ_NBY(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.BYTES, (l, r) -> null),
869+
LT_BYN(Comparisons.Type.LESS_THAN, Type.TypeCode.BYTES, Type.TypeCode.NULL, (l, r) -> null),
870+
LTE_BYN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.BYTES, Type.TypeCode.NULL, (l, r) -> null),
871+
GT_BYN(Comparisons.Type.GREATER_THAN, Type.TypeCode.BYTES, Type.TypeCode.NULL, (l, r) -> null),
872+
GTE_BYN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.BYTES, Type.TypeCode.NULL, (l, r) -> null),
873+
EQ_EN(Comparisons.Type.EQUALS, Type.TypeCode.ENUM, Type.TypeCode.NULL, (l, r) -> null),
874+
EQ_NE(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.ENUM, (l, r) -> null),
875+
NEQ_EN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.ENUM, Type.TypeCode.NULL, (l, r) -> null),
876+
NEQ_NE(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.ENUM, (l, r) -> null),
877+
LT_EN(Comparisons.Type.LESS_THAN, Type.TypeCode.ENUM, Type.TypeCode.NULL, (l, r) -> null),
878+
LT_NE(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.ENUM, (l, r) -> null),
879+
LTE_EN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.ENUM, Type.TypeCode.NULL, (l, r) -> null),
880+
LTE_NE(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.ENUM, (l, r) -> null),
881+
GT_EN(Comparisons.Type.GREATER_THAN, Type.TypeCode.ENUM, Type.TypeCode.NULL, (l, r) -> null),
882+
GT_NE(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.ENUM, (l, r) -> null),
883+
GTE_EN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.ENUM, Type.TypeCode.NULL, (l, r) -> null),
884+
GTE_NE(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.ENUM, (l, r) -> null),
885+
EQ_NID(Comparisons.Type.EQUALS, Type.TypeCode.NULL, Type.TypeCode.UUID, (l, r) -> null),
886+
EQ_IDN(Comparisons.Type.EQUALS, Type.TypeCode.UUID, Type.TypeCode.NULL, (l, r) -> null),
887+
NEQ_NID(Comparisons.Type.NOT_EQUALS, Type.TypeCode.NULL, Type.TypeCode.UUID, (l, r) -> null),
888+
NEQ_IDN(Comparisons.Type.NOT_EQUALS, Type.TypeCode.UUID, Type.TypeCode.NULL, (l, r) -> null),
889+
LT_NID(Comparisons.Type.LESS_THAN, Type.TypeCode.NULL, Type.TypeCode.UUID, (l, r) -> null),
890+
LT_IDN(Comparisons.Type.LESS_THAN, Type.TypeCode.UUID, Type.TypeCode.NULL, (l, r) -> null),
891+
LTE_NID(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.UUID, (l, r) -> null),
892+
LTE_IDN(Comparisons.Type.LESS_THAN_OR_EQUALS, Type.TypeCode.UUID, Type.TypeCode.NULL, (l, r) -> null),
893+
GT_NID(Comparisons.Type.GREATER_THAN, Type.TypeCode.NULL, Type.TypeCode.UUID, (l, r) -> null),
894+
GT_IDN(Comparisons.Type.GREATER_THAN, Type.TypeCode.UUID, Type.TypeCode.NULL, (l, r) -> null),
895+
GTE_NID(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.NULL, Type.TypeCode.UUID, (l, r) -> null),
896+
GTE_IDN(Comparisons.Type.GREATER_THAN_OR_EQUALS, Type.TypeCode.UUID, Type.TypeCode.NULL, (l, r) -> null),
766897
;
767898
// We can pass down UUID or String till here.
768899

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/serialization/PlanSerialization.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ public static <E1 extends Enum<E1>, E2 extends Enum<E2> & ProtocolMessageEnum> B
239239
final E1 e1 = javaEnumConstants[i];
240240
final E2 e2 = protoEnumConstants[i];
241241
Verify.verify(e1.ordinal() == e2.ordinal());
242-
Verify.verify(e1.name().equals(e2.name()));
242+
Verify.verify(e1.name().equals(e2.name()), "%s not equal to %s", e1, e2);
243243
enumBiMap.put(e1, e2);
244244
}
245245
return enumBiMap;

fdb-record-layer-core/src/main/proto/record_query_plan.proto

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,137 @@ message PBinaryRelOpValue {
918918
GTE_SID = 268;
919919
GTE_UID = 269;
920920
GTE_IDU = 270;
921+
922+
EQ_BN = 271;
923+
EQ_IN = 272;
924+
EQ_LN = 273;
925+
EQ_FN = 274;
926+
EQ_DN = 275;
927+
EQ_SN = 276;
928+
EQ_NN = 277;
929+
EQ_NU = 278;
930+
EQ_UN = 279;
931+
EQ_NB = 280;
932+
EQ_NI = 281;
933+
EQ_NL = 282;
934+
EQ_NF = 283;
935+
EQ_ND = 284;
936+
EQ_NS = 285;
937+
EQ_NV = 286;
938+
EQ_VN = 287;
939+
NEQ_BN = 288;
940+
NEQ_IN = 289;
941+
NEQ_LN = 290;
942+
NEQ_FN = 291;
943+
NEQ_DN = 292;
944+
NEQ_SN = 293;
945+
NEQ_NN = 294;
946+
NEQ_UN = 295;
947+
NEQ_NU = 296;
948+
NEQ_NB = 297;
949+
NEQ_NI = 298;
950+
NEQ_NL = 299;
951+
NEQ_NF = 300;
952+
NEQ_ND = 301;
953+
NEQ_NS = 302;
954+
NEQ_NV = 303;
955+
NEQ_VN = 304;
956+
LT_IN = 305;
957+
LT_LN = 306;
958+
LT_FN = 307;
959+
LT_DN = 308;
960+
LT_SN = 309;
961+
LT_NN = 310;
962+
LT_UN = 311;
963+
LT_NU = 312;
964+
LT_NB = 313;
965+
LT_NI = 314;
966+
LT_NL = 315;
967+
LT_NF = 316;
968+
LT_ND = 317;
969+
LT_NS = 318;
970+
LT_NV = 319;
971+
LT_VN = 320;
972+
LTE_IN = 321;
973+
LTE_LN = 322;
974+
LTE_FN = 323;
975+
LTE_DN = 324;
976+
LTE_SN = 325;
977+
LTE_NN = 326;
978+
LTE_UN = 327;
979+
LTE_NU = 328;
980+
LTE_NB = 329;
981+
LTE_NI = 330;
982+
LTE_NL = 331;
983+
LTE_NF = 332;
984+
LTE_ND = 333;
985+
LTE_NS = 334;
986+
LTE_NV = 335;
987+
LTE_VN = 336;
988+
GT_IN = 337;
989+
GT_LN = 338;
990+
GT_FN = 339;
991+
GT_DN = 340;
992+
GT_SN = 341;
993+
GT_NN = 342;
994+
GT_UN = 343;
995+
GT_NU = 344;
996+
GT_NB = 345;
997+
GT_NI = 346;
998+
GT_NL = 347;
999+
GT_NF = 348;
1000+
GT_ND = 349;
1001+
GT_NS = 350;
1002+
GT_NV = 351;
1003+
GT_VN = 352;
1004+
GTE_IN = 353;
1005+
GTE_LN = 354;
1006+
GTE_FN = 355;
1007+
GTE_DN = 356;
1008+
GTE_SN = 357;
1009+
GTE_NN = 358;
1010+
GTE_NU = 359;
1011+
GTE_UN = 360;
1012+
GTE_NB = 361;
1013+
GTE_NI = 362;
1014+
GTE_NL = 363;
1015+
GTE_NF = 364;
1016+
GTE_ND = 365;
1017+
GTE_NS = 366;
1018+
GTE_NV = 367;
1019+
GTE_VN = 368;
1020+
EQ_BYN = 369;
1021+
EQ_NBY = 370;
1022+
NEQ_BYN = 371;
1023+
NEQ_NBY = 372;
1024+
LT_BYN = 373;
1025+
LTE_BYN = 374;
1026+
GT_BYN = 375;
1027+
GTE_BYN = 376;
1028+
EQ_EN = 377;
1029+
EQ_NE = 378;
1030+
NEQ_EN = 379;
1031+
NEQ_NE = 380;
1032+
LT_EN = 381;
1033+
LT_NE = 382;
1034+
LTE_EN = 383;
1035+
LTE_NE = 384;
1036+
GT_EN = 385;
1037+
GT_NE = 386;
1038+
GTE_EN = 387;
1039+
GTE_NE = 388;
1040+
EQ_NID = 389;
1041+
EQ_IDN = 390;
1042+
NEQ_NID = 391;
1043+
NEQ_IDN = 392;
1044+
LT_NID = 393;
1045+
LT_IDN = 394;
1046+
LTE_NID = 395;
1047+
LTE_IDN = 396;
1048+
GT_NID = 397;
1049+
GT_IDN = 398;
1050+
GTE_NID = 399;
1051+
GTE_IDN = 400;
9211052
}
9221053
optional PRelOpValue super = 1;
9231054
optional PBinaryPhysicalOperator operator = 2;

0 commit comments

Comments
 (0)