私のアプリでは、postgresqlを使用して次のような複合型の値を返しています。
select row('a','b','c','d');
このクエリは次を返します。
(あいうえお)
他の複合型などの配列を含む、より複雑な型を使用しています。DBレイヤーでは、戻り値を解析し、配列と他の複合体をそこから「解凍」します。
問題?
select row(array[1,2,3,4]);
と
select row('{1,2,3,4}');
まったく同じ出力が得られます。
("{1,2,3,4}")
'{1,2,3,4}'
これが通常の文字列(おそらくユーザーによって提供されたもの)として意味されているのか、配列として意味されているのかをどのように区別できますか?
合成フィールド値のエスケープシーケンス{
のようなものがあるべきではありませんか?}
PS私はのようなものを使用することはできませんselect * from row[1,2,3]
。