Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-892

Clarify dynamic properties support in $filter, $orderby, $expand

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.0_ERRATA02
    • Fix Version/s: V4.0_ERRATA03
    • Component/s: URL Conventions
    • Labels:
      None
    • Environment:

      [Applied]

    • Proposal:
      Hide

      Add to section 5.1.17 Path Expressions:

      "If the property (or navigation property) is not defined for the type of the resource, and that type is defined supports dynamic properties (navigation properties), then the property (or navigation property) is treated as null for all instances on which it has no value."

      "If the property (or navigation property) is not defined for the type of the resource, and that type does not support dynamic properties (navigation properties), then the request may be considered malformed."

      In section 5.1.2, System Query Option $expand, replace:
      "The navigationProperty segment MUST identify a navigation property defined on the entity type of the request, the derived entity type specified in the type cast, or the last complex type identified by the complex property path. "
      with:
      "If the type does not support dynamic navigation properties, then the navigationProperty segment MUST identify a navigation property defined on the entity type of the request, the derived entity type specified in the type cast, or the last complex type identified by the complex property path. Otherwise, if the type does support dynamic navigation properties, if the navigationProperty segment does not identify a declared navigation property, the expanded property appears only for those instance on which it has a value."

      (more specifically: at any point in the path, if a segment does not match a member of the previous segment, then the type of the previous segment must allow dynamic properties.)

      Show
      Add to section 5.1.17 Path Expressions: "If the property (or navigation property) is not defined for the type of the resource, and that type is defined supports dynamic properties (navigation properties), then the property (or navigation property) is treated as null for all instances on which it has no value." "If the property (or navigation property) is not defined for the type of the resource, and that type does not support dynamic properties (navigation properties), then the request may be considered malformed." In section 5.1.2, System Query Option $expand, replace: "The navigationProperty segment MUST identify a navigation property defined on the entity type of the request, the derived entity type specified in the type cast, or the last complex type identified by the complex property path. " with: "If the type does not support dynamic navigation properties, then the navigationProperty segment MUST identify a navigation property defined on the entity type of the request, the derived entity type specified in the type cast, or the last complex type identified by the complex property path. Otherwise, if the type does support dynamic navigation properties, if the navigationProperty segment does not identify a declared navigation property, the expanded property appears only for those instance on which it has a value." (more specifically: at any point in the path, if a segment does not match a member of the previous segment, then the type of the previous segment must allow dynamic properties.)
    • Resolution:
      Show
      https://www.oasis-open.org/committees/download.php/57553/odata-v4.0-wd08-part2-url-conventions-2016-02-17.docx

      Description

      Section 5.1.1.7 Path Expressions in [URL] describes how properties and navigation properties can be used as operands or function parameters.

      We do not explicitly call out (as we do in $select) how dynamic properties are treated.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mikep Michael Pizzo (Inactive)
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: