1

カスタム列挙型が与えられた場合: 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

4

1 に答える 1