OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (ODATA-820) Allow indexing into collections


     [ https://issues.oasis-open.org/browse/ODATA-820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Pizzo updated ODATA-820:
--------------------------------

    Proposal: 
1)	Introduce array collections [ODATA-820]
a.	Define new term, "Ordered", to advertise that a collection has a stable order. If it is a collection of primitive or complex types it can be indexed by ordinal: 
             < Term Name="Ordered" Type="Core.Tag" DefaultValue="true" AppliesTo="Property,NavigationProperty,EntitySet,ReturnType"> 
                 < Annotation Term="Core.Description" String="Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal."/> 
             < /Term>
b.	GET/PUT/PATCH/DELETE to the /{index} of an ordered collection of primitive or complex types retrieves/replaces/modifies/deletes just that item
i.	/index cannot be appended to collections of entities or non-ordered collections 
ii.	Index is zero-based ordinal and follows JSONPointer syntax: collection/index
iii.    Clients can specify a negative index to say "from the end" with -1 being the last entry. services must not specify a negative value for an index.
c.	Update section 7.1.5 of the CSDL spec to note that it is possible to have an ordered collection of complex types with navigation properties.

2) Define a new "PositionalInsert" term to advertise that a collection supports inserting at a given ordinal [ODATA-820]
              <Term Name="PositionalInsert" Type="Core.Tag" Default="true" AppliesTo="Property, NavigationProperty, EntitySet">
                      <Annotation Term="Core.Description" String="Items can be inserted at a given ordinal index."/>
              </Term>
a.	For collections of entity, complex, or primitive types annotated with PositionalInsert, client may specify new ?$index= query parameter in POST request to collection to specify the non-negative, zero-based ordinal position where the item is inserted [ODATA-820]
I. Clients can specify a negative index to say "from the end" with -1 being "insert before the last entry".

  was:
1)	Introduce array collections [ODATA-820]
a.	Define new term, "Ordered", to advertise that a collection has a stable order. If it is a collection of primitive or complex types it can be indexed by ordinal: 
             < Term Name="Ordered" Type="Core.Tag" DefaultValue="true" AppliesTo="Property,NavigationProperty,EntitySet,ReturnType"> 
                 < Annotation Term="Core.Description" String="Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal."/> 
             < /Term>
b.	GET/PUT/PATCH/DELETE to the /{index} of an ordered collection of primitive or complex types retrieves/replaces/modifies/deletes just that item
i.	/index cannot be appended to collections of entities or non-ordered collections 
ii.	Index is zero-based ordinal and follows JSONPointer syntax: collection/index
c.	Update section 7.1.5 of the CSDL spec to note that it is possible to have an ordered collection of complex types with navigation properties.

2) Define a new "PositionalInsert" term to advertise that a collection supports inserting at a given ordinal [ODATA-820]
              <Term Name="PositionalInsert" Type="Core.Tag" Default="true" AppliesTo="Property, NavigationProperty, EntitySet">
                      <Annotation Term="Core.Description" String="Items can be inserted at a given ordinal index."/>
              </Term>
b.	For collections of entity, complex, or primitive types annotated with PositionalInsert, client may specify new ?$index= query parameter in POST request to collection to specify where the item is inserted [ODATA-820]



> Allow indexing into collections
> -------------------------------
>
>                 Key: ODATA-820
>                 URL: https://issues.oasis-open.org/browse/ODATA-820
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: New Feature
>          Components: OData URL Conventions, Vocabularies
>    Affects Versions: V4.0_ERRATA02
>         Environment: Set Operations, New Query Capabilities
>            Reporter: Ralf Handl
>            Assignee: Ralf Handl
>              Labels: Extension, request_tc_discussion
>             Fix For: V4.01_WD01
>
>
> Allow indexing into collections.
> If servers can guarantee a stable order, they could advertise this via an annotation.
> This could be combined with ETags to identify the state the client is referring to.
> This might be combined with $orderby to let the client choose the order.



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]