構文解析プログラムは、ODBC日付、時刻、タイムスタンプ、間隔のリテラル エスケープを含むIN-listを比較のシーケンスに変換し、in-listで定数のみが使用可能で、式は使用可能ではないデータベースの制限を回避します。この変換は、16.20で廃止されました。
例えば、整数日付モードでは、ODBC日付リテラル{d '2008-11-28'}は、以下のように展開されます。
('2008-11-28' (DATE, FORMAT 'YYYY-MM-DD'))
結果の拡張は、データベースで式とみなされ、IN-listでは使用できません。そのため、ODBC構文解析プログラムは構成を次のように変換します。
... x IN ({d '2008-11-28'}, {d '2009-12-29'})
変換先:
... (x = ('2008-11-28' (DATE, FORMAT 'YYYY-MM-DD'))
または
x = ('2009-12-29' (DATE, FORMAT 'YYYY-MM-DD')))
新しい構文解析プログラムでは、ODBC日付リテラル エスケープ シーケンスがDATE 'YYYY-MM-DD'として拡張されています。例えば、整数日付モードで、ODBC日付リテラル{d '2008-11-28'}は、DATE '2008-11-28'に拡張されます。新しい構文解析プログラムによる整数日付のin-list拡張はうまく動作しますが、整数型時刻の場合は動作しません。結果のネイティブ構文が式であるためです。回避策は、ANSI時刻に切り替えることです。