@@ -88,7 +88,10 @@ internal struct DelegationCapability
88
88
{ DelegationMetadataOperatorConstants . AsType , new DelegationCapability ( AsType ) } ,
89
89
{ DelegationMetadataOperatorConstants . ArrayLookup , new DelegationCapability ( ArrayLookup ) } ,
90
90
{ DelegationMetadataOperatorConstants . Distinct , new DelegationCapability ( Distinct ) } ,
91
- { DelegationMetadataOperatorConstants . Join , new DelegationCapability ( Join ) }
91
+ { DelegationMetadataOperatorConstants . JoinInner , new DelegationCapability ( JoinInner ) } ,
92
+ { DelegationMetadataOperatorConstants . JoinLeft , new DelegationCapability ( JoinLeft ) } ,
93
+ { DelegationMetadataOperatorConstants . JoinRight , new DelegationCapability ( JoinRight ) } ,
94
+ { DelegationMetadataOperatorConstants . JoinFull , new DelegationCapability ( JoinFull ) }
92
95
} , isThreadSafe : true ) ;
93
96
94
97
// Supported delegatable operations.
@@ -140,10 +143,13 @@ internal struct DelegationCapability
140
143
public static readonly BigInteger AsType = BigInteger . Pow ( 2 , 44 ) ; // 0x100000000000
141
144
public static readonly BigInteger ArrayLookup = BigInteger . Pow ( 2 , 45 ) ; // 0x200000000000
142
145
public static readonly BigInteger Distinct = BigInteger . Pow ( 2 , 46 ) ; // 0x400000000000
143
- public static readonly BigInteger Join = BigInteger . Pow ( 2 , 47 ) ; // 0x800000000000
146
+ public static readonly BigInteger JoinInner = BigInteger . Pow ( 2 , 47 ) ; // 0x800000000000
147
+ public static readonly BigInteger JoinLeft = BigInteger . Pow ( 2 , 48 ) ; // 0x1000000000000
148
+ public static readonly BigInteger JoinRight = BigInteger . Pow ( 2 , 49 ) ; // 0x2000000000000
149
+ public static readonly BigInteger JoinFull = BigInteger . Pow ( 2 , 50 ) ; // 0x4000000000000
144
150
145
151
// Please update it as max value changes.
146
- private static BigInteger maxSingleCapabilityValue = Join ;
152
+ private static BigInteger maxSingleCapabilityValue = JoinFull ;
147
153
148
154
// Indicates support all functionality.
149
155
public static BigInteger SupportsAll
@@ -481,10 +487,28 @@ internal string DebugString
481
487
sb . Append ( nameof ( Distinct ) ) ;
482
488
}
483
489
484
- if ( HasCapability ( Join ) )
490
+ if ( HasCapability ( JoinInner ) )
485
491
{
486
492
AddCommaIfNeeded ( sb ) ;
487
- sb . Append ( nameof ( Join ) ) ;
493
+ sb . Append ( nameof ( JoinInner ) ) ;
494
+ }
495
+
496
+ if ( HasCapability ( JoinLeft ) )
497
+ {
498
+ AddCommaIfNeeded ( sb ) ;
499
+ sb . Append ( nameof ( JoinLeft ) ) ;
500
+ }
501
+
502
+ if ( HasCapability ( JoinRight ) )
503
+ {
504
+ AddCommaIfNeeded ( sb ) ;
505
+ sb . Append ( nameof ( JoinRight ) ) ;
506
+ }
507
+
508
+ if ( HasCapability ( JoinFull ) )
509
+ {
510
+ AddCommaIfNeeded ( sb ) ;
511
+ sb . Append ( nameof ( JoinFull ) ) ;
488
512
}
489
513
490
514
return sb . ToString ( ) ;
0 commit comments