ビルトイン関数を参照する定数式についての統計を収集することもできます。
最適化ルーチンは、統計の収集時に実体化したCURRENT_TIMESTAMP、CURRENT_DATEUSERおよびUSER関数の値を保持し、統計が使用されるときには、保持していた実体化された値を代入します。
その他のビルトイン関数(SESSIONやCURRENT_ROLEなど)については、最適化ルーチンは、統計が使用される時点でのセッション パラメータに基づいて値を代入します。データベースでは任意のビルトイン関数を指定できますが、式内にCURRENT_TIMESTAMP、CURRENT_DATEおよびUSER以外のビルトイン関数がある場合の統計の収集は制限する必要があります。
次のリクエストでは、最適化ルーチンはCASE式にCURRENT_DATEの値を代入し、その値を保持します。この式に対する統計が使用されるときには、最適化ルーチンは保存しておいたCURRENT_DATEの値を代入します。
COLLECT STATISTICS COLUMN CASE WHEN CAST(o_orderdatetime AS DATE AT 0) = CURRENT_DATE THEN 'orders-today' ELSE 'orders-old' END AS stats_orders_today_and_old ON orders;