[jira] [Updated] (IGNITE-13237) In some cases IgniteClient#query does not fire CacheQueryExecutedEvent

2020-07-10 Thread Maksim Timonin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-13237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maksim Timonin updated IGNITE-13237:

Description: 
{{CacheQueryExecutedEvent}} fires for all query types (Scan, SQL) but in some 
SQL cases (ddl queries, updates and commands) {{IgniteClient#query}} does not .
 Reproducer:
{code:java|title=IgniteCacheAbstractQuerySelfTest.java}
@Test
public void testClientSqlQueryEvents() throws Exception {
CountDownLatch execLatch = new CountDownLatch(9);

IgnitePredicate 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 (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 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
>
> 

[jira] [Updated] (IGNITE-13237) In some cases IgniteClient#query does not fire CacheQueryExecutedEvent

2020-07-10 Thread Maksim Timonin (Jira)


 [ 
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 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 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