SELECT FROM table;
と言う感じで SELECT のあとに列名が抜けてるのがあった
「*」 が抜けてて動いてなさそう……と思ったけど実行されてるはずのコード
psql で試しに実行してみたらエラーにならず成功した
列名は省略可能みたい
昔からそうだっけと思って調べたら 9.4 からの変更だった
https://www.postgresql.jp/document/9.3/html/sql-select.html
https://www.postgresql.jp/document/9.4/html/sql-select.html
リリースノートには この変更で 0 個の列のビューのダンプ・リストアが正常に出来るようになるって書いてるから このために許可したみたい
https://www.postgresql.jp/document/9.4/html/release-9-4.html
列なしの SELECT なんてしないと思ったけど実際に使われていたわけで EXISTS の中で使う SELECT 文には 「*」 書かなくていいからありなのかも
ちなみに SQL 標準ではないみたいで mysql だと構文エラーでした