Presto C++ の制限事項¶
一般的な制限事項¶
C++ 評価エンジンには、いくつかの制限事項があります。
すべての組み込み関数が C++ で実装されているわけではありません。実装されていない関数を使用しようとすると、クエリが失敗します。サポートされている関数については、関数のカバレッジ を参照してください。
すべての組み込み型が C++ で実装されているわけではありません。実装されていない型を使用しようとすると、クエリが失敗します。
データ型 のすべての基本型と構造化型は、
CHAR
、TIME
、およびTIME WITH TIMEZONE
を除いてサポートされています。これらは、VARCHAR
、TIMESTAMP
、およびTIMESTAMP WITH TIMEZONE
に包含されます。Presto C++ は、無制限長の
VARCHAR
のみをサポートし、varchar[n]
の長さn
を尊重しません。次の型はサポートされていません:
IPADDRESS
、IPPREFIX
、UUID
、KHYPERLOGLOG
、P4HYPERLOGLOG
、QDIGEST
、TDIGEST
、GEOMETRY
、BINGTILE
。
プラグイン SPI の一部は、C++ 評価エンジンでは使用されません。特に、C++ ワーカーは plugins ディレクトリのプラグインを読み込まず、特定のプラグインタイプは部分的に、または完全にサポートされていません。
PageSourceProvider
、RecordSetProvider
、およびPageSinkProvider
は、C++ 評価エンジンでは機能しません。ユーザー定義関数、型、パラメトリック型、およびブロックエンコーディングはサポートされていません。
イベントリスナープラグインは、分割レベルでは機能しません。
ユーザー定義関数は同じようには機能しません。リモート関数の実行 を参照してください。
メモリ 관리는、C++ 評価エンジンでは異なって動作します。特に
OOM キラーはサポートされていません。
予約プールはサポートされていません。
一般に、クエリはメモリ調停で許可されているよりも多くのメモリを使用する場合があります。メモリ管理 を参照してください。
関数¶
reduce_agg¶
C++ ベースの Presto では、reduce_agg
は、inputFunction
または combineFunction
で null
を返すことが許可されていません。Presto (Java) では、これは許可されていますが、未定義の動作です。Presto の reduce_agg
について詳しくは、reduce_agg を参照してください。