通过缓存

时间:2018-02-19 10:59:02

标签: json postgresql ignite jsonb

我通过Apache Ignite通过缓存进行读/写操作,遇到了以下问题:

在最新版本的postgres中,有一些特殊的json类型的数据和jsonb附加组件可以与数据库中的json一起使用。

在Apache Ignite中,这个功能没有实现,我怎么知道。此外,在尝试执行此部分时,我发现可以从数据库中读取json作为PGobject,但是无法将jsonb处理添加到内置SQL查询解析器中。

例如,我尝试发送下一个查询:

SELECT jdata->>'tag1' FROM jsontest;

获得例外:

  

SQL语句中的语法错误" SELECT JDATA-[*]>>'tag1' FROM JSONTEST;&#34 ;; SQL语句:
  SELECT jdata->>'tag1' FROM jsontest; [42000-195]

     

at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
  在org.h2.message.DbException.get(DbException.java:179)
  在org.h2.message.DbException.get(DbException.java:155)
  at org.h2.message.DbException.getSyntaxError(DbException.java:191)
  在org.h2.command.Parser.getSyntaxError(Parser.java:533)
  在org.h2.command.Parser.getSpecialType(Parser.java:3842)
  在org.h2.command.Parser.read(Parser.java:3352)
  在org.h2.command.Parser.readIf(Parser.java:3259)
  在org.h2.command.Parser.readSum(Parser.java:2375)
  在org.h2.command.Parser.readConcat(Parser.java:2341)
  在org.h2.command.Parser.readCondition(Parser.java:2172)
  在org.h2.command.Parser.readAnd(Parser.java:2144)
  在org.h2.command.Parser.readExpression(Parser.java:2136)
  在org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:2047)
  在org.h2.command.Parser.parseSelectSimple(Parser.java:2079)
  在org.h2.command.Parser.parseSelectSub(Parser.java:1934)
  在org.h2.command.Parser.parseSelectUnion(Parser.java:1749)
  在org.h2.command.Parser.parseSelect(Parser.java:1737)
  在org.h2.command.Parser.parsePrepared(Parser.java:448)
  在org.h2.command.Parser.parse(Parser.java:320)
  在org.h2.command.Parser.parse(Parser.java:296)
  在org.h2.command.Parser.prepareCommand(Parser.java:257)
  在org.h2.engine.Session.prepareLocal(Session.java:573)
  在org.h2.engine.Session.prepareCommand(Session.java:514)
  在org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
  在org.h2.jdbc.JdbcPreparedStatement。(JdbcPreparedStatement.java:73)
  在org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:288)
  在org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:402)
  在org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1365)
  ... 9更多

当我尝试研究Ignite或H2数据库引擎的结构时,无法添加此类查询的处理。

那么,也许有人遇到过这个或类似的问题并且可以建议如何解决它?

0 个答案:

没有答案