カスタム列挙型が与えられた場合:
CREATE TYPE vehicle AS ENUM ('car', 'truck', 'bicycle');
そして、次のようなテーブル:
CREATE TABLE vehicle_events (
timestamp timestamptz NOT NULL DEFAULT current_timestamp,
labels vehicle[] NOT NULL,
mentions int4[] NOT NULL DEFAULT '{}'
);
これがノード アプリケーションからクエリされると、次のようになります。
SELECT * FROM vehicle_events;
これは次のような json 構造を返します。
[{"timestamp": "January, 06 2016 23:04:56", "labels": "{'car'}", "mentions": [1,2,3,4]}]
私の質問は本当に、ラベル配列が文字列として返されるのはなぜですか (基本型の言及配列はそうではないことに注意してください)? これはの配列だからENUM
ですか?もしそうなら、どうすればそれを通常の配列に強制できますか? そして、なぜpostgresはこのようにそれを返すのですか?
sqlfiddle リンク: http://sqlfiddle.com/#!15/637ce/1