-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_WD01
-
Fix Version/s: V4.0_WD01
-
Component/s: ABNF, Protocol, URL Conventions
-
Labels:None
-
Environment:
[Applied]
-
Proposal:
-
Resolution:
$expand allows nesting query options after the name of the navigation properties to be expanded.
When expanding only references $select, $expand, and $levels don't make sense as neither structural nor navigation properties are represented in references.
Field | Original Value | New Value |
---|---|---|
Proposal |
Change syntax to $epand=NavProp/$ref(<nested options>) and define a different set following $ref than the one directly following the navigation property Rationale: this allows parsing from left to right. The current positioning of NavProp(...)/$ref makes that impossible, and is hard to read anyway. |
Change syntax to $epand=NavProp/$ref(<nested options>) and define a different set following $ref than the one directly following the navigation property: expand = '$expand' EQ expandItem *( COMMA expandItem ) expandItem = [ qualifiedEntityTypeName "/" ] navigationProperty [ "/" qualifiedEntityTypeName ] [ ref OPEN expandRefOption *( SEMI expandRefOption ) CLOSE / OPEN expandOption *( SEMI expandOption ) CLOSE ] expandRefOption = filter / search / skip / top / inlinecount expandOption = expandRefOption / select / orderby / expand / levels Rationale: we now express in the ABNF what is meaningful and thus allowed after /$ref. Also this allows parsing from left to right. And putting /$ref before the parens makes it a bit more obvious. Just try reading $expand=Items($filter=something very complicated and lengthy and I'll only tell you afterwards that I only want)/$ref&andsoon |
Environment | [Proposed] | [Resolved] |
Status | New [ 10000 ] | Open [ 1 ] |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Resolved [ 5 ] |
Assignee | Ralf Handl [ ralfhandl ] |
Environment | [Resolved] | [Applied] |
Reporter | Ralf Handl [ ralfhandl ] | Ralf Handl [ handl ] |
Assignee | Ralf Handl [ ralfhandl ] | Ralf Handl [ handl ] |
Also see
ODATA-340; wouldn't it make more sense to simply not allow $ref in expand but rather treat it as a 'special' property allowed in the $select? Could we even use in combination with other properties potentially?