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
。
C++ 評估引擎不使用外掛程式 SPI 的某些部分。特別是,C++ 工作程序不會載入外掛程式目錄中的任何外掛程式,而且某些外掛程式類型是部分或完全不受支援的。
PageSourceProvider
、RecordSetProvider
和PageSinkProvider
在 C++ 評估引擎中不起作用。不支援使用者提供的函數、類型、參數化類型和區塊編碼。
事件監聽器外掛程式在分割層級不起作用。
使用者定義函數的運作方式不同,請參閱遠端函數執行。
記憶體管理在 C++ 評估引擎中的運作方式不同。特別是
不支援 OOM 終止器。
不支援保留集區。
一般而言,查詢使用的記憶體可能超出記憶體仲裁允許的範圍。請參閱記憶體管理。
函數¶
reduce_agg¶
在基於 C++ 的 Presto 中,不允許 reduce_agg
在 inputFunction
或 combineFunction
中傳回 null
。在 Presto (Java) 中,這是允許的,但行為未定義。如需 Presto 中 reduce_agg
的詳細資訊,請參閱reduce_agg。