Skip to content

Conversation

@sebastien-rosset
Copy link
Contributor

@sebastien-rosset sebastien-rosset commented Dec 13, 2017

The 'in' and 'divby' operators are now supported by the OData spec. See http://docs.oasis-open.org/odata/odata/v4.01/csprd02/part1-protocol/odata-v4.01-csprd02-part1-protocol.html#_Toc486263411.

  • Add support for boolean tokens (true, false)
  • Add support for the 'in' operator. For example, it is possible to parse the following ODATA query filter:
    Name eq 'Bob' and contains(LastName, 'Smith') and City in ('Dallas', 'Houston')
    The 'IN' operator uses open and close parenthesis as a delimiter for multi-value operands. Previously, the parenthesis were used as a delimiter for operator precedence.
    http://docs.oasis-open.org/odata/new-in-odata/v4.01/cn02/new-in-odata-v4.01-cn02.html#_Toc495652512
  • Run gofmt, fix some space formatting issues
  • Add some code comments.
  • Fix typo for the 'geo.intersects' operator
  • Add 'divby' operator. The new divby operator promotes both operands to decimals and always results in a decimal. http://docs.oasis-open.org/odata/new-in-odata/v4.01/cn02/new-in-odata-v4.01-cn02.html#_Toc495652513
  • Fix precedence order between 'or' operator and lambda operator
  • Fix crash when query includes operator or function that does not have enough operands
  • Add positive and negative unit tests
  • Add substringof function
  • “substring” function was incorrectly parsed as “sub” operator
  • "substring" function can take 2 or 3 arguments
  • Support for variable number of function arguments.
  • “isof” was incorrectly parsed as operator. It is a function.
  • "length" function was incorrectly parsed as "le" operator.
  • "indexof" function was incorrectly parsed as "in" operator.
  • Add UTs for filters provided as examples in the ODATA spec.
  • Support isof function with one or two arguments.
  • Add support for '@' character, which is used for parameter aliasing

@sebastien-rosset sebastien-rosset changed the title Add support for boolean token Boolean tokens, 'in' and 'divby' operators, 'geo.intersects' operator Feb 28, 2018
… such as 'contains'. Previously the parser was accepting a query such as 'Name contains 'London'', but that is invalid ODATA
@sebastien-rosset sebastien-rosset changed the title Boolean tokens, 'in' and 'divby' operators, 'geo.intersects' operator Boolean tokens, 'in' and 'divby' operators, 'geo.intersects' operator, 'IN' operator Mar 16, 2018
sebastien-rosset and others added 21 commits March 19, 2018 07:23
… as “sub” operator. “isof” was incorrectly parsed as operator. It is a function. Add UTs for filters provided as examples in the ODATA spec.
… can be used while create an URL for expand item
Adding Raw Values of filter, select, orderby and search. These values…
CSCvi45267 "at" keyword acts as a filter for the version of an object
Adding Exists Support as a Odata Function
Duration type, variadic functions, IN operator, ANY operator
Add unit tests: any without arguments and any for array of strings
add unit tests for multiple levels of nested properties
tree representation of any() and all() as a regular function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants