Presto C++ 限制

一般限制

C++ 評估引擎有一些限制

  • 並非所有內建函數都在 C++ 中實作。嘗試使用未實作的函數會導致查詢失敗。如需支援的函數,請參閱函數涵蓋範圍

  • 並非所有內建類型都在 C++ 中實作。嘗試使用未實作的類型會導致查詢失敗。

    • 資料類型中所有基本類型和結構化類型都受支援,除了 CHARTIMETIME WITH TIMEZONE。它們分別被 VARCHARTIMESTAMPTIMESTAMP WITH TIMEZONE 所取代。

    • Presto C++ 僅支援無限長度的 VARCHAR,且不遵守 varchar[n] 中的長度 n

    • 不支援下列類型:IPADDRESSIPPREFIXUUIDKHYPERLOGLOGP4HYPERLOGLOGQDIGESTTDIGESTGEOMETRYBINGTILE

  • C++ 評估引擎不使用外掛程式 SPI 的某些部分。特別是,C++ 工作程序不會載入外掛程式目錄中的任何外掛程式,而且某些外掛程式類型是部分或完全不受支援的。

    • PageSourceProviderRecordSetProviderPageSinkProvider 在 C++ 評估引擎中不起作用。

    • 不支援使用者提供的函數、類型、參數化類型和區塊編碼。

    • 事件監聽器外掛程式在分割層級不起作用。

    • 使用者定義函數的運作方式不同,請參閱遠端函數執行

  • 記憶體管理在 C++ 評估引擎中的運作方式不同。特別是

    • 不支援 OOM 終止器。

    • 不支援保留集區。

    • 一般而言,查詢使用的記憶體可能超出記憶體仲裁允許的範圍。請參閱記憶體管理

函數

reduce_agg

在基於 C++ 的 Presto 中,不允許 reduce_agginputFunctioncombineFunction 中傳回 null。在 Presto (Java) 中,這是允許的,但行為未定義。如需 Presto 中 reduce_agg 的詳細資訊,請參閱reduce_agg