[
https://issues.apache.org/jira/browse/IGNITE-13237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Timonin updated IGNITE-13237:
------------------------------------
Description:
In some cases (ddl queries, updates and commands) {{IgniteClient#query}} does
not fire {{CacheQueryExecutedEvent}}.
Reproducer:
{code:java|title=IgniteCacheAbstractQuerySelfTest.java}
@Test
public void testClientSqlQueryEvents() throws Exception {
CountDownLatch execLatch = new CountDownLatch(9);
IgnitePredicate<Event> lsnr = evt -> {
assert evt instanceof CacheQueryExecutedEvent;
System.out.println(">>> EVENT: " + evt);
CacheQueryExecutedEvent qe = (CacheQueryExecutedEvent)evt;
assertEquals("SQL_PUBLIC_TEST_TABLE", qe.cacheName());
assertNotNull(qe.clause());
assertNull(qe.scanQueryFilter());
assertNull(qe.continuousQueryFilter());
execLatch.countDown();
return true;
};
ignite().events().localListen(lsnr, EVT_CACHE_QUERY_EXECUTED);
ClientConfiguration cc = new
ClientConfiguration().setAddresses(Config.SERVER);
try (IgniteClient client = Ignition.startClient(cc)) {
client.query(new SqlFieldsQuery("create table TEST_TABLE(key int
primary key, val int)"))
.getAll();
client.query(new SqlFieldsQuery("insert into TEST_TABLE values (?,
?)").setArgs(1, 1))
.getAll();
client.query(new SqlFieldsQuery("update TEST_TABLE set val = ?2 where
key = ?1").setArgs(1, 2))
.getAll();
client.query(new SqlFieldsQuery("select * from TEST_TABLE"))
.getAll();
client.query(new SqlFieldsQuery("create index idx_1 on
TEST_TABLE(key)"))
.getAll();
client.query(new SqlFieldsQuery("drop index idx_1"))
.getAll();
client.query(new SqlFieldsQuery("alter table TEST_TABLE add column val2
int"))
.getAll();
client.query(new SqlFieldsQuery("alter table TEST_TABLE drop val2"))
.getAll();
client.query(new SqlFieldsQuery("drop table TEST_TABLE"))
.getAll();
assertTrue(execLatch.await(3_000, MILLISECONDS));
}
finally {
ignite().events().stopLocalListen(lsnr, EVT_CACHE_QUERY_EXECUTED);
}
}
{code}
was:
In some cases {{IgniteClient#query}} does not fire {{CacheQueryExecutedEvent}}.
Reproducer:
{code:java|title=IgniteCacheAbstractQuerySelfTest.java}
@Test
public void testClientSqlQueryEvents() throws Exception {
CountDownLatch execLatch = new CountDownLatch(9);
IgnitePredicate<Event> lsnr = evt -> {
assert evt instanceof CacheQueryExecutedEvent;
System.out.println(">>> EVENT: " + evt);
CacheQueryExecutedEvent qe = (CacheQueryExecutedEvent)evt;
assertEquals("SQL_PUBLIC_TEST_TABLE", qe.cacheName());
assertNotNull(qe.clause());
assertNull(qe.scanQueryFilter());
assertNull(qe.continuousQueryFilter());
execLatch.countDown();
return true;
};
ignite().events().localListen(lsnr, EVT_CACHE_QUERY_EXECUTED);
ClientConfiguration cc = new
ClientConfiguration().setAddresses(Config.SERVER);
try (IgniteClient client = Ignition.startClient(cc)) {
client.query(new SqlFieldsQuery("create table TEST_TABLE(key int
primary key, val int)"))
.getAll();
client.query(new SqlFieldsQuery("insert into TEST_TABLE values (?,
?)").setArgs(1, 1))
.getAll();
client.query(new SqlFieldsQuery("update TEST_TABLE set val = ?2 where
key = ?1").setArgs(1, 2))
.getAll();
client.query(new SqlFieldsQuery("select * from TEST_TABLE"))
.getAll();
client.query(new SqlFieldsQuery("create index idx_1 on
TEST_TABLE(key)"))
.getAll();
client.query(new SqlFieldsQuery("drop index idx_1"))
.getAll();
client.query(new SqlFieldsQuery("alter table TEST_TABLE add column val2
int"))
.getAll();
client.query(new SqlFieldsQuery("alter table TEST_TABLE drop val2"))
.getAll();
client.query(new SqlFieldsQuery("drop table TEST_TABLE"))
.getAll();
assertTrue(execLatch.await(3_000, MILLISECONDS));
}
finally {
ignite().events().stopLocalListen(lsnr, EVT_CACHE_QUERY_EXECUTED);
}
}
{code}
> In some cases IgniteClient#query does not fire CacheQueryExecutedEvent
> ----------------------------------------------------------------------
>
> Key: IGNITE-13237
> URL: https://issues.apache.org/jira/browse/IGNITE-13237
> Project: Ignite
> Issue Type: Task
> Reporter: Ryabov Dmitrii
> Assignee: Ryabov Dmitrii
> Priority: Trivial
> Fix For: 2.10
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> In some cases (ddl queries, updates and commands) {{IgniteClient#query}} does
> not fire {{CacheQueryExecutedEvent}}.
> Reproducer:
> {code:java|title=IgniteCacheAbstractQuerySelfTest.java}
> @Test
> public void testClientSqlQueryEvents() throws Exception {
> CountDownLatch execLatch = new CountDownLatch(9);
> IgnitePredicate<Event> lsnr = evt -> {
> assert evt instanceof CacheQueryExecutedEvent;
> System.out.println(">>> EVENT: " + evt);
> CacheQueryExecutedEvent qe = (CacheQueryExecutedEvent)evt;
> assertEquals("SQL_PUBLIC_TEST_TABLE", qe.cacheName());
> assertNotNull(qe.clause());
> assertNull(qe.scanQueryFilter());
> assertNull(qe.continuousQueryFilter());
> execLatch.countDown();
> return true;
> };
> ignite().events().localListen(lsnr, EVT_CACHE_QUERY_EXECUTED);
> ClientConfiguration cc = new
> ClientConfiguration().setAddresses(Config.SERVER);
> try (IgniteClient client = Ignition.startClient(cc)) {
> client.query(new SqlFieldsQuery("create table TEST_TABLE(key int
> primary key, val int)"))
> .getAll();
> client.query(new SqlFieldsQuery("insert into TEST_TABLE values (?,
> ?)").setArgs(1, 1))
> .getAll();
> client.query(new SqlFieldsQuery("update TEST_TABLE set val = ?2 where
> key = ?1").setArgs(1, 2))
> .getAll();
> client.query(new SqlFieldsQuery("select * from TEST_TABLE"))
> .getAll();
> client.query(new SqlFieldsQuery("create index idx_1 on
> TEST_TABLE(key)"))
> .getAll();
> client.query(new SqlFieldsQuery("drop index idx_1"))
> .getAll();
> client.query(new SqlFieldsQuery("alter table TEST_TABLE add column
> val2 int"))
> .getAll();
> client.query(new SqlFieldsQuery("alter table TEST_TABLE drop val2"))
> .getAll();
> client.query(new SqlFieldsQuery("drop table TEST_TABLE"))
> .getAll();
> assertTrue(execLatch.await(3_000, MILLISECONDS));
> }
> finally {
> ignite().events().stopLocalListen(lsnr, EVT_CACHE_QUERY_EXECUTED);
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)