とある PostgreSQL 14 改善項目 ● PostgreSQL 14 には以下の改善項目が入っている。 – Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) AS なしでカラムラベルとして使用できない キーワードの数を減らす – There are now 90% fewer restricted keywords. 制限のあるキーワードが 90% 減りました。 なるほど?
AS なしのカラムラベルがダメなケース ● しかし AS なしでラベルを付与するとエラーになることもある。 testdb=# SELECT 1 AS FROM; from ------ 1 (1 row) testdb=# SELECT 1 FROM; ERROR: syntax error at or near ";" LINE 1: SELECT 1 FROM; ^ PostgreSQL の 「キーワード」をラベルに 指定するときに発生する
とある PostgreSQL 14 改善項目(再掲) ● PostgreSQL 14 には以下の改善項目が入っている。 – Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) AS なしでカラムラベルとして使用できない キーワードの数を減らす – There are now 90% fewer restricted keywords. 制限のあるキーワードが 90% 減りました。 で、具体的に なにが減ったの?
制限でなくなったキーワードを探す ● PostgreSQL 14 のリリースノートには、それ以上の情報は書かれていない。 – にゃーん ● 過去の Commitfestからそれっぽい改善内容を探してみる。 ● ”Allow most keywords to be used as column labels without requiring AS. ” – https://github.com/postgres/postgres/commit/06a7c3154f5bfad65549810cc84f0e3a77 b408bf (2020-09-19) – "can be bare column label " という直交するキーワードのプロパティを考案して、 それをマークするという方式・・・らしい。 完全に理解した (理解していない)
いろいろ調べた ● BOOLEAN 定数の例 testdb=# SELECT 'MACHIDA IN THE TOKYO' FALSE; ERROR: syntax error at or near "FALSE" LINE 1: SELECT 'MACHIDA IN THE TOKYO' FALSE; ^ testdb=# SELECT 'MACHIDA IN THE KANAGAWA' TRUE; ERROR: syntax error at or near "TRUE" LINE 1: SELECT 'MACHIDA IN THE KANAGAWA' TRUE; ^ PostgreSQL 13 testdb=# SELECT 'MACHIDA IN THE TOKYO' FALSE; false ---------------------- MACHIDA IN THE TOKYO (1 row) testdb=# SELECT 'MACHIDA IN THE KANAGAWA' TURE; ture ------------------------- MACHIDA IN THE KANAGAWA (1 row) PostgreSQL 14