-
Notifications
You must be signed in to change notification settings - Fork 349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enum value not parsed for in
query operator
#3120
Comments
Filter using binary operator
BinaryOperatorNode
|-- SingleValuePropertyAccessNode: Shape
|-- ConstNode: Fully.Qualified.Namespace.NonFlagShape , Literal: 'Rectangle' Filter using in operator
So, It seems OData can successfully parse the enum value in the 'in' operator. Of course, same as the binary operator, it outputs the 'ConstantNode' for the potential enum literal. Good news is that the ConstNode type gives the correct type information. So, I don't know where you get the 'Forwarded URL'. What doesn't it mean and where do you get this URL? |
@xuzhg That is basically the URL that gets forwarded to the workload from the Aggregator Service |
Then, I think it's a gap within AGS. |
@xuzhg: concern is observed inconsistent behavior between 'eq' and 'in' (processing of single-item vs collection). Could you please try this repro?
With AGS Uri resolver, we get:
|
In the first case, exception is thrown by the StringAsEnumResolver, in method: Note that ODataUriResolver doesn't seem to have an overload for CollectionNode instead of SingleValueNode as rhs. That may be why the collection case doesn't throw. |
/identityProtection/RiskyUsers?$filter=riskLevel eq 'low'
identityProtection/riskyUsers?$filter=riskLevel+eq+Microsoft.IdentityProtectionServices.riskLevel'low'
/identityProtection/RiskyUsers?$filter=riskLevel in ('low')
/identityProtection/riskyUsers?$filter=riskLevel+in+('low')
ODL doesn't parse the value as Enum for the
in
case.The text was updated successfully, but these errors were encountered: