[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [odata] Conflicting info for $count?
I understand now. Thanks Stefan and Gil. I will go back and look at the doc to see if I just didn't read it right at first or if there is something that needs to be done to make the distinction clear Mark -----Original Message----- From: odata@lists.oasis-open.org [mailto:odata@lists.oasis-open.org] On Behalf Of Stefan Drees Sent: Tuesday, February 03, 2015 1:54 AM To: odata@lists.oasis-open.org Cc: Stefan Hagen Subject: Re: [odata] Conflicting info for $count? Hi Mark, I do not see the conflict between the two use cases that share the token $count. Case 1 /$count (token as <hierarchical part> URL member) is equivalent to a "SELECT count(...) ..." on SQL level. Case 2 ?$count=true (token as <query> URL member) is an enrichment of the result set defined in <hierarchical part>. So even a call like: http://host/service/Products/$count?$count=true should work, albeit here ?$count=true would not really enrich the result set ;-) All the best, Stefan. andAm 02.02.15 um 22:44 schrieb Mark Biamonte: > In looking into the changes from OData v2 to OData v4 for $count, I am > seeing what I believe is conflicting information. > > In the OData v4 URL Conventions document, I find the following > > To address the raw value of the number of items in a collection, > clients append/$countto the resource path of the URL identifying the > entity set or collection. The count is calculated after applying > any$filter > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 2-url-conventions/odata-v4.0-errata02-os-part2-url-conventions-complet > e.html#_Filter_System_Query>or$search > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 2-url-conventions/odata-v4.0-errata02-os-part2-url-conventions-complet > e.html#_Format_System_Query>system > query options to the collection. The returned count MUST NOT be > affected by$top,$skip,$orderby, or$expand. > > /Example 26: the number of related entities/ > > http://host/service/Categories(1)/Products/$count > > /Example 27: the number of entities in an entity set/ > > http://host/service/Products/$count > > /Example 28: entity count in a$filter > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part2-url-conventions/odata-v4.0-errata02-os-part2-url-conventions-complete.html#_System_Query_Option>expression. > Note that the spaces around//gt////are for readability of the example > only; in real URLs they must be percent-encoded as//%20//./ > > http://host/service/Categories?$filter=Products/$countgt 0 > > /Example 29: entity count in an$orderby > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 2-url-conventions/odata-v4.0-errata02-os-part2-url-conventions-complet > e.html#_OrderBy_System_Query>expression/ > > http://host/service/Categories?$orderby=Products/$count > > > This says that $count returns the number of entities in the entity > set, but not the actual entities. > > In the OData v4 Protocol document I find > > The$countsystem query option with a value oftruespecifies that the > total count of items within a collection matching the request be > returned along with the result. > > /Example 51: return, along with the results, the total number of > products in the collection/ > > http://host/service/Products?$count=true > > The count of related entities can be requested by specifying > the$countquery option within the$expandclause. > > /Example 52:/ > > http://host/service/Categories?$expand=Products($count=true) > > A$countquery option with a value offalse(or not specified) hints that > the service SHOULD NOT return a count. > > The service returns an HTTP Status code of400 Bad Requestif a value > other thantrueorfalseis specified. > > The$countsystem query option ignores any$top > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_The_$t > op_System_1>,$skip > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_The_$s > kip_System>, > or$expand > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_System > _Query_Option_6>query options, and returns the total count of results > across all pages including only those results matching any > specified$filter > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part > 1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_The_$f > ilter_System>and$search > <http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_The_$format_System>. > Clients should be aware that the count returned inline may not exactly > equal the actual number of items returned, due to latency between > calculating the count and enumerating the last value or due to inexact > calculations on the service. > > How the count is encoded in the response body is dependent upon the > selected format. > > This says the count is returned along with the entities in an entity set. > > Which is the correct behavior for $count? > > Thanks > > Mark > --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]