Estou usando o seguinte programa https://sourceforge.net/projects/jailer/ para extrair um subconjunto de dados do meu banco de dados com associações corretas seguindo minhas restrições de chave estrangeira. O programa gera SQL bruto insert
e update
instruções que podem ser carregadas em meu banco de dados de desenvolvimento - tudo muito bom e prático. No entanto - recentemente comecei a usar o Hstore no postgres e agora estou encontrando uma sintaxe estranha nos arquivos SQL. Se eu tiver uma tabela com uma coluna do tipo store
, update
as insert
instruções serão exibidas da seguinte forma:
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;
Witch me dá o seguinte erro, quando tento executá-lo:
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
Tanto quanto eu sei do postgresql hstore {key=value}
não é uma sintaxe válida, então minhas perguntas são:
- É de fato uma sintaxe válida?
- Por que a sintaxe de saída do programa seria assim, é provável que seja um bug no programa ou algo mais relacionado ao postgres, por exemplo, o driver jdbc postgres?
- Alguma sugestão de como posso superar esse problema?
Acontece que foi um bug no Jailer ;-)
https://sourceforge.net/p/jailer/discussion/700499/thread/4db0ed1e/?limit=25#9eb5