This section lists the limitations of the OData service:

Read-only access

The access to Denodo databases via this service is read-only.

Unavailable functions in the $filter system query option

The service does not support the operator has.

The service does not support these functions:

  • fractionalseconds, date, time, totaloffsetminutes, mindatetime and maxdatetime

  • isof and cast

  • geo.distance, geo.length and geo.intersects

Any requests containing these functions will return the error code: 501 Not Implemented.

Unavailable operators in the $filter system query option

Unavailable literals in the $filter system query option

The service does not support the literal $it in expressions to refer to the current instance of the collection identified by the resource path.

The service does not support the literal $root in expressions to refer to resources of the same service.

Navigation properties in the $select system query option

The service does not allow navigation properties as selection clauses.

Unavailable $search system query option

The $search query parameter is not available.

Unavailable expand option $levels

The service does not support the $levels expand option that allows requesting recursive expands.

Unavailable Cross-Join queries

The service does not support the resource ~/crossjoin to represent Cartesian products of entities.

Resolving references via the resource $entity

The service does not support the resource ~/$entity that allows resolving entity references using the query option $id.

Base views with white spaces in the name

Denodo OData Service cannot access entities with white spaces in the name. Virtual DataPort allows white space in the base view names but white spaces are not allowed in entity names according to the OData 4 specification.

White spaces in the URL

The service does not allow white spaces between function parameters and before or after the equal sign (=) that is used to specify query options.

Redundant keys for dependent entities

The service does not allow the omission of redundant keys when there are key properties determined by the parent in a relationship. You have to add all key properties in each level.

Order by with $expand system query option

The service does not support the $orderby query option inside $expand system query option.

Order by using complex properties

The service does not support the order by clause using fields of registers. Therefore, the $orderby query option is not available for complex properties.

Navigation using complex properties

When an end point of an association is a field of a register, Virtual DataPort does not allow to traverse the association from that endpoint.

Referencing expanded entities

The service does not support referencing a single entity in a “many-to-one” relationship when the related data is requested using the $expand query option and the selected representation for the result is JSON.

Example of this limitation:


Note that this request will fail because JSON is the default format.

Admin user and Kerberos authentication

The service does not disable user access to the admin user when using Kerberos authentication.

Using a navigation property as a parameter of a function

The service allows the user to use a navigation property of an entity as a parameter of a query function if this property belongs to a child entity. But, if the navigation field traverses two or more roles, the query will not work.

For instance, a query like this will work:

/denodo-odata.svc/test/ADDRESS?$filter=toupper(city/city_name) eq 'CARACAS'

But a query like this one will fail because the field country_name traverses two roles:

/denodo-odata.svc/test/address?$filter=toupper(city/country/country_name) eq 'SPAIN'

Limited support for lambda operators

This service only supports the any lambda operator. This is in agreement with the Intermediate Conformance Level for the OData 4.0 Specification, which does not define any lambda operators to be supported.

Filtering navigational and regular fields inside a lambda filter

Using in the same any lambda filter a navigational field and a regular (parent) field is not allowed. For example, this request fails:

/denodo-odata.svc/test/country?$filter=city/any(f:f/city_id eq 1 or country eq 'Spain')

Aggregations over fields of associated entities

The groupby and aggregate transformations of the $apply system query option only work for fields of the entity that is being queried. Aggregating fields of associated entities is not supported.

For instance, if there is a view called “Customer” that has an association with a view called “Address”, when querying “Customer” it will not be possible to apply the groupby / aggregate transformations on fields such as “address/city” or “address/country” (fields “city” and “country” of the “Address” entity, towards which we can navigate from “Customer” by means of Customer’s “address” property).

Querying elements with the character dot (.) in the name

In Denodo, the name of a view, column and database can have the character dot (.) but the OData specification does not allow this character. In this case, the service will replace . with four underscore characters (____). For example, to query a view called customer.information, send a request to:


The result will be:

   "@odata.context": "http://localhost:9090/denodo-odata4-service/denodo-odata.svc/period/$metadata#customer____information/$entity",
   "customer____id": 1,
   "store_id": 1,
   "first____name": "MARY",
   "last_name": "SMITH",
   "email": "",
   "address_id": 5,
   "active": true,
   "create_date": "2006-02-14T21:04:36Z",
   "last_update": "2006-02-15T03:57:20Z"

This situation applies to all kinds of elements of Virtual DataPort.

Add feedback