You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Tobias Eriksson <to...@qvantel.com> on 2017/11/03 14:42:02 UTC

Why do I get table not found exception when trying do execute SQL on some tables but not others...

Hi
 I have my tables in  Cassandra as a persistence store for Apache Ignite
Now one of my tables “alpha” works just fine, I can run SQL from “SQuirreL SQL”
BUT some of the other tables it cannot
Yet in the UI of “SQuirreL SQL”, all the tables are visible
BUT doing a SELECT count(*) FROM pojoprofile does not work
Exception below
What am I missing ?
-Tobias

********* ALPHA ************
<persistence keyspace="ignite" table="alpha">
    <keyspaceOptions>
        REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1}
        AND DURABLE_WRITES = true
    </keyspaceOptions>

    <keyPersistence class="java.lang.Long" strategy="PRIMITIVE"/>

    <valuePersistence class="com.qvantel.research.common.Alpha"
                      strategy="BLOB"
                      serializer="org.apache.ignite.cache.store.cassandra.serializer.KryoSerializer"
                      column="data"/>
</persistence>


<bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="cache_alpha"/>
                    <property name="atomicityMode" value="ATOMIC"/>
                    <property name="backups" value="1"/>
                    <property name="indexedTypes">
                        <list>
                            <value>java.lang.Long</value>
                            <value>com.qvantel.research.common.Alpha</value>
                        </list>
                    </property>
                    <property name="readThrough" value="true"/>
                    <property name="writeThrough" value="true"/>
                    <property name="cacheStoreFactory">
                        <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
                            <property name="dataSourceBean" value="cassandraDataSource"/>
                            <property name="persistenceSettingsBean" value="persistence_settings_alpha"/>
                        </bean>
                    </property>
                </bean>



******* POJOPROFILE *************
<persistence keyspace="ignite" table="pojoprofile" ttl="86400">
    <keyspaceOptions>
        REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1}
        AND DURABLE_WRITES = true
    </keyspaceOptions>
    <tableOption>
        comment = 'Cache test'
        AND read_repair_chance = 0.2
    </tableOption>
    <keyPersistence class="java.lang.Long" strategy="PRIMITIVE" column="profile_id"/>
    <valuePersistence class="com.qvantel.research.common.PojoProfile" strategy="POJO"/>
</persistence>


<bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="cache_pojoprofile"/>
                    <property name="atomicityMode" value="ATOMIC"/>
                    <property name="backups" value="1"/>
                    <property name="cacheMode" value="PARTITIONED"/>
                    <property name="indexedTypes">
                        <list>
                            <value>java.lang.Long</value>
                            <value>com.qvantel.research.common.PojoProfile</value>
                        </list>
                    </property>
                    <property name="readThrough" value="true"/>
                    <property name="writeThrough" value="true"/>
                    <property name="cacheStoreFactory">
                        <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
                            <property name="dataSourceBean" value="cassandraDataSource"/>
                            <property name="persistenceSettingsBean" value="persistence_settings_pojo"/>
                        </bean>
                    </property>
                    <property name="expiryPolicyFactory">
                        <bean id="expiryPolicy" class="javax.cache.expiry.CreatedExpiryPolicy"
                              factory-method="factoryOf">
                            <constructor-arg>
                                <bean class="javax.cache.expiry.Duration">
                                    <constructor-arg value="SECONDS"/>
                                    <constructor-arg value="60"/>
                                </bean>
                            </constructor-arg>
                        </bean>
                    </property>
</bean>


javax.cache.CacheException: class org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to parse query: select count(*) from POJOPROFILE
                at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:807)
                at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:765)
                at org.apache.ignite.internal.processors.cache.query.jdbc.GridCacheQueryJdbcTask$JdbcDriverJob.execute(GridCacheQueryJdbcTask.java:273)
                at org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:566)
                at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6610)
                at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:560)
                at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:489)
                at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to parse query: select count(*) from POJOPROFILE
                at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1293)
                at org.apache.ignite.internal.processors.query.GridQueryProcessor$5.applyx(GridQueryProcessor.java:1815)
                at org.apache.ignite.internal.processors.query.GridQueryProcessor$5.applyx(GridQueryProcessor.java:1813)
                at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
                at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2293)
                at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:1820)
                at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:795)
                ... 10 more
Caused by: org.h2.jdbc.JdbcSQLException: Table "POJOPROFILE" not found; SQL statement:
select count(*) from POJOPROFILE [42102-195]
                at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
                at org.h2.message.DbException.get(DbException.java:179)
                at org.h2.message.DbException.get(DbException.java:155)
                at org.h2.command.Parser.readTableOrView(Parser.java:5506)
                at org.h2.command.Parser.readTableFilter(Parser.java:1260)
                at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1940)
                at org.h2.command.Parser.parseSelectSimple(Parser.java:2089)
                at org.h2.command.Parser.parseSelectSub(Parser.java:1934)
                at org.h2.command.Parser.parseSelectUnion(Parser.java:1749)
                at org.h2.command.Parser.parseSelect(Parser.java:1737)
                at org.h2.command.Parser.parsePrepared(Parser.java:448)
                at org.h2.command.Parser.parse(Parser.java:320)
                at org.h2.command.Parser.parse(Parser.java:292)
                at org.h2.command.Parser.prepareCommand(Parser.java:257)
                at org.h2.engine.Session.prepareLocal(Session.java:573)
                at org.h2.engine.Session.prepareCommand(Session.java:514)
                at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
                at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:73)
                at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:288)
                at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:398)
                at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1273)
                ... 16 more


--
Tobias Eriksson
Chief Architect Research – CTO Office
Qvantel Sweden AB
Tel; +46 768 832453
e-mail; Tobias.Eriksson@qvantel.com<ma...@qvantel.com>



Re: Why do I get table not found exception when trying do execute SQL on some tables but not others...

Posted by Evgenii Zhuravlev <e....@gmail.com>.
Hi,
Most likely that this table was created not in Public schema, but in sql
schema by cache name. To check this you can run H2 Debug console - just
start ignite with JVM parameter  -DIGNITE_H2_DEBUG_CONSOLE=true

Regards,
Evgenii

2017-11-03 17:42 GMT+03:00 Tobias Eriksson <to...@qvantel.com>:

> Hi
>
>  I have my tables in  Cassandra as a persistence store for Apache Ignite
>
> Now one of my tables “alpha” works just fine, I can run SQL from “SQuirreL
> SQL”
>
> BUT some of the other tables it cannot
>
> Yet in the UI of “SQuirreL SQL”, all the tables are visible
>
> BUT doing a SELECT count(*) FROM pojoprofile does not work
>
> Exception below
>
> What am I missing ?
>
> -Tobias
>
>
>
> ********* ALPHA ************
>
> <persistence keyspace="ignite" table="alpha">
>
>     <keyspaceOptions>
>
>         REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' :
> 1}
>
>         AND DURABLE_WRITES = true
>
>     </keyspaceOptions>
>
>
>
>     <keyPersistence class="java.lang.Long" strategy="PRIMITIVE"/>
>
>
>
>     <valuePersistence class="com.qvantel.research.common.Alpha"
>
>                       strategy="BLOB"
>
>                       serializer="org.apache.ignite.cache.store.cassandra.
> serializer.KryoSerializer"
>
>                       column="data"/>
>
> </persistence>
>
>
>
>
>
> <bean class="org.apache.ignite.configuration.CacheConfiguration">
>
>                     <property name="name" value="cache_alpha"/>
>
>                     <property name="atomicityMode" value="ATOMIC"/>
>
>                     <property name="backups" value="1"/>
>
>                     <property name="indexedTypes">
>
>                         <list>
>
>                             <value>java.lang.Long</value>
>
>                             <value>com.qvantel.research.
> common.Alpha</value>
>
>                         </list>
>
>                     </property>
>
>                     <property name="readThrough" value="true"/>
>
>                     <property name="writeThrough" value="true"/>
>
>                     <property name="cacheStoreFactory">
>
>                         <bean class="org.apache.ignite.
> cache.store.cassandra.CassandraCacheStoreFactory">
>
>                             <property name="dataSourceBean"
> value="cassandraDataSource"/>
>
>                             <property name="persistenceSettingsBean"
> value="persistence_settings_alpha"/>
>
>                         </bean>
>
>                     </property>
>
>                 </bean>
>
>
>
>
>
>
>
> ******* POJOPROFILE *************
>
> <persistence keyspace="ignite" table="pojoprofile" ttl="86400">
>
>     <keyspaceOptions>
>
>         REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' :
> 1}
>
>         AND DURABLE_WRITES = true
>
>     </keyspaceOptions>
>
>     <tableOption>
>
>         comment = 'Cache test'
>
>         AND read_repair_chance = 0.2
>
>     </tableOption>
>
>     <keyPersistence class="java.lang.Long" strategy="PRIMITIVE"
> column="profile_id"/>
>
>     <valuePersistence class="com.qvantel.research.common.PojoProfile"
> strategy="POJO"/>
>
> </persistence>
>
>
>
>
>
> <bean class="org.apache.ignite.configuration.CacheConfiguration">
>
>                     <property name="name" value="cache_pojoprofile"/>
>
>                     <property name="atomicityMode" value="ATOMIC"/>
>
>                     <property name="backups" value="1"/>
>
>                     <property name="cacheMode" value="PARTITIONED"/>
>
>                     <property name="indexedTypes">
>
>                         <list>
>
>                             <value>java.lang.Long</value>
>
>                             <value>com.qvantel.
> research.common.PojoProfile</value>
>
>                         </list>
>
>                     </property>
>
>                     <property name="readThrough" value="true"/>
>
>                     <property name="writeThrough" value="true"/>
>
>                     <property name="cacheStoreFactory">
>
>                         <bean class="org.apache.ignite.
> cache.store.cassandra.CassandraCacheStoreFactory">
>
>                             <property name="dataSourceBean"
> value="cassandraDataSource"/>
>
>                             <property name="persistenceSettingsBean"
> value="persistence_settings_pojo"/>
>
>                         </bean>
>
>                     </property>
>
>                     <property name="expiryPolicyFactory">
>
>                         <bean id="expiryPolicy" class="javax.cache.expiry.
> CreatedExpiryPolicy"
>
>                               factory-method="factoryOf">
>
>                             <constructor-arg>
>
>                                 <bean class="javax.cache.expiry.Duration">
>
>                                     <constructor-arg value="SECONDS"/>
>
>                                     <constructor-arg value="60"/>
>
>                                 </bean>
>
>                             </constructor-arg>
>
>                         </bean>
>
>                     </property>
>
> </bean>
>
>
>
>
>
> javax.cache.CacheException: class org.apache.ignite.internal.
> processors.query.IgniteSQLException: Failed to parse query: select
> count(*) from POJOPROFILE
>
>                 at org.apache.ignite.internal.processors.cache.
> IgniteCacheProxy.query(IgniteCacheProxy.java:807)
>
>                 at org.apache.ignite.internal.processors.cache.
> IgniteCacheProxy.query(IgniteCacheProxy.java:765)
>
>                 at org.apache.ignite.internal.processors.cache.query.jdbc.
> GridCacheQueryJdbcTask$JdbcDriverJob.execute(GridCacheQueryJdbcTask.java:
> 273)
>
>                 at org.apache.ignite.internal.
> processors.job.GridJobWorker$2.call(GridJobWorker.java:566)
>
>                 at org.apache.ignite.internal.util.IgniteUtils.
> wrapThreadLoader(IgniteUtils.java:6610)
>
>                 at org.apache.ignite.internal.
> processors.job.GridJobWorker.execute0(GridJobWorker.java:560)
>
>                 at org.apache.ignite.internal.
> processors.job.GridJobWorker.body(GridJobWorker.java:489)
>
>                 at org.apache.ignite.internal.util.worker.GridWorker.run(
> GridWorker.java:110)
>
>                 at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1149)
>
>                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:624)
>
>                 at java.lang.Thread.run(Thread.java:748)
>
> Caused by: class org.apache.ignite.internal.processors.query.IgniteSQLException:
> Failed to parse query: select count(*) from POJOPROFILE
>
>                 at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1293)
>
>                 at org.apache.ignite.internal.processors.query.
> GridQueryProcessor$5.applyx(GridQueryProcessor.java:1815)
>
>                 at org.apache.ignite.internal.processors.query.
> GridQueryProcessor$5.applyx(GridQueryProcessor.java:1813)
>
>                 at org.apache.ignite.internal.util.lang.IgniteOutClosureX.
> apply(IgniteOutClosureX.java:36)
>
>                 at org.apache.ignite.internal.processors.query.
> GridQueryProcessor.executeQuery(GridQueryProcessor.java:2293)
>
>                 at org.apache.ignite.internal.processors.query.
> GridQueryProcessor.querySqlFields(GridQueryProcessor.java:1820)
>
>                 at org.apache.ignite.internal.processors.cache.
> IgniteCacheProxy.query(IgniteCacheProxy.java:795)
>
>                 ... 10 more
>
> Caused by: org.h2.jdbc.JdbcSQLException: Table "POJOPROFILE" not found;
> SQL statement:
>
> select count(*) from POJOPROFILE [42102-195]
>
>                 at org.h2.message.DbException.getJdbcSQLException(
> DbException.java:345)
>
>                 at org.h2.message.DbException.get(DbException.java:179)
>
>                 at org.h2.message.DbException.get(DbException.java:155)
>
>                 at org.h2.command.Parser.readTableOrView(Parser.java:5506)
>
>                 at org.h2.command.Parser.readTableFilter(Parser.java:1260)
>
>                 at org.h2.command.Parser.parseSelectSimpleFromPart(
> Parser.java:1940)
>
>                 at org.h2.command.Parser.parseSelectSimple(Parser.java:
> 2089)
>
>                 at org.h2.command.Parser.parseSelectSub(Parser.java:1934)
>
>                 at org.h2.command.Parser.parseSelectUnion(Parser.java:
> 1749)
>
>                 at org.h2.command.Parser.parseSelect(Parser.java:1737)
>
>                 at org.h2.command.Parser.parsePrepared(Parser.java:448)
>
>                 at org.h2.command.Parser.parse(Parser.java:320)
>
>                 at org.h2.command.Parser.parse(Parser.java:292)
>
>                 at org.h2.command.Parser.prepareCommand(Parser.java:257)
>
>                 at org.h2.engine.Session.prepareLocal(Session.java:573)
>
>                 at org.h2.engine.Session.prepareCommand(Session.java:514)
>
>                 at org.h2.jdbc.JdbcConnection.
> prepareCommand(JdbcConnection.java:1204)
>
>                 at org.h2.jdbc.JdbcPreparedStatement.<init>(
> JdbcPreparedStatement.java:73)
>
>                 at org.h2.jdbc.JdbcConnection.prepareStatement(
> JdbcConnection.java:288)
>
>                 at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:398)
>
>                 at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1273)
>
>                 ... 16 more
>
>
>
>
>
> --
>
> Tobias Eriksson
>
> Chief Architect Research – CTO Office
>
> Qvantel Sweden AB
>
> Tel; +46 768 832453
>
> e-mail; Tobias.Eriksson@qvantel.com
>
>
>
>
>