制限事項

ここでは、OData サービスの制限事項について説明します。

読み取り専用アクセス

このサービスを介した Denodo データベースへのアクセスは読み取り専用です。

$filter システムクエリオプションで使用できない関数

このサービスは、 has 演算子をサポートしていません。

このサービスは、以下の関数をサポートしていません。

  • fractionalsecondsdatetimetotaloffsetminutesmindatetime 、および maxdatetime

  • isof および cast

  • geo.distancegeo.length 、および geo.intersects

上記の関数を使用したリクエストでは、エラーコード 501 Not Implemented が返されます。

$filter システムクエリオプションで使用できない演算子

$filter システムクエリオプションで使用できないリテラル

このサービスは、リソースパスで特定されているコレクションの現在のインスタンスを参照する式でリテラル $it をサポートしていません。

このサービスは、そのサービスのリソースを参照する式でリテラル $root をサポートしていません。

$select システムクエリオプションのナビゲーションプロパティ

このサービスでは、選択句としてナビゲーションプロパティを使用できません。

使用できない $search システムクエリオプション

$search クエリパラメーターは使用できません。

使用できない $levels 展開オプション

このサービスは、再帰的展開を要求できるようにする $levels 展開オプションをサポートしていません。

使用できない交差結合クエリ

このサービスは、エンティティのデカルト積を表すリソース ~/crossjoin をサポートしていません。

$entity リソースを介した参照の解決

このサービスは、 $id クエリオプションを使用してエンティティ参照を解決できるようにする ~/$entity リソースをサポートしていません。

URL の空白文字

このサービスでは、関数のパラメーターの間に空白文字を使用できず、クエリオプションの指定に使用する等号 (=) の前後にも空白文字を使用できません。

依存側エンティティの冗長なキー

このサービスでは、リレーションシップの親によって決まる重要なプロパティが存在する場合に、冗長なキーを省略できません。レベルごとにすべての重要なプロパティを追加する必要があります。

$expand システムクエリオプションによる並べ替え

このサービスでは、 $expand システムクエリオプションの内側に $orderby クエリオプションを使用できません。

複合プロパティによる並べ替え

このサービスは、レジスターのフィールドを使用する Order By 句をサポートしていません。したがって、複合プロパティでは $orderby クエリオプションを使用できません。

複合プロパティによる移動

アソシエーションのエンドポイントがレジスターのフィールドである場合、Virtual DataPort では、そのエンドポイントからアソシエーションをたどることはできません。

展開したエンティティの参照

$expand クエリオプションを使用して関連データを要求し、結果が JSON 表現で返されるように選択した場合、このサービスでは、「1 対 1」または「多対 1」のリレーションシップにある単一エンティティの参照をサポートしていません。

この制限事項の例:

/denodo-odata.svc/movies/city?$expand=country/$ref

JSON がデフォルト形式なので、このリクエストは失敗します。

Admin ユーザーと Kerberos 認証

このサービスは、Kerberos 認証を使用している場合に、 admin ユーザーへのユーザーアクセスを無効にしません。

関数のパラメーターとしてのナビゲーションプロパティの使用

このサービスでは、エンティティのナビゲーションプロパティが子エンティティに属する場合、このプロパティをクエリ関数のパラメーターとして使用することができます。ただし、ナビゲーションフィールドが 2 つ以上のロールをたどる場合、クエリは機能しません。

たとえば、次のようなクエリは機能します。

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

しかし、フィールド country_name が 2 つのロールをたどるため、次のようなクエリは失敗します。

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

ラムダ演算子のサポートに関する制限

このサービスでは、 any ラムダ演算子のみがサポートされています。これは、サポートすべきラムダ演算子を規定していない『Intermediate Conformance Level for the OData 4.0 Specification』に準拠しています。

ラムダフィルター内のナビゲーションフィールドおよび通常のフィールドのフィルタリング

同じ any ラムダフィルターでナビゲーションフィールドと通常の (親) フィールドを使用することは許可されません。たとえば、次のクエリは機能しません。

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