web-dev-qa-db-ja.com

中括弧{key = value}を使用した奇妙なPostgresHstore構文

次のプログラムを使用しています https://sourceforge.net/projects/jailer/ 外部キーの制約に従って、データベースからデータのサブセットを正しい関連付けで抽出します。プログラムは、開発データベースにロードできる生のSQL insertおよびupdateステートメントを出力します。これらはすべて非常に便利で便利です。ただし、最近、postgresでHstoreの使用を開始しましたが、SQLファイルで奇妙な構文に遭遇しています。魔女がタイプstoreの列を持っているテーブルがある場合、updateおよびinsertステートメントは次のように出力されます。

Update public.some_table set brand='Ford', model_name='Focus', additional_attrs={engine_size=1.6, weight=1100}, created_at=timestamp '2013-11-05 17:21:38.667085', updated_at=timestamp '2013-11-05 17:21:38.667085' Where id=246747;

魔女を実行しようとすると、次のエラーが発生します。

ERROR:  syntax error at or near "{"
LINE 1: ...Rand='Ford', model_name='Focus', additional_attrs={engine_si...
                                                             ^


********** Error **********

ERROR: syntax error at or near "{"
SQL state: 42601
Character: 81

私の知る限り、postgresql hstore {key=value}は有効な構文ではないので、私の質問は次のとおりです。

  • それは実際に有効な構文ですか?
  • プログラムがこのような構文を出力するのはなぜですか。プログラムのバグか、postgresに関連するものである可能性があります。 postgres jdbcドライバー?
  • この問題をどのように克服できるかについての提案はありますか?
2
Niels Kristian

それは刑務官のバグだったことが判明しました;-)

https://sourceforge.net/p/jailer/discussion/700499/thread/4db0ed1e/?limit=25#9eb5

0
Niels Kristian