[
https://issues.apache.org/jira/browse/IGNITE-21685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Tupitsyn updated IGNITE-21685:
------------------------------------
Description:
Add the following test to *ItThinClientComputeTest*:
{code:java}
@Test
void testExecuteColocatedEscapedTableName() {
var session = client().sql().sessionBuilder().build();
session.execute(null, "CREATE TABLE \"TBL ABC\" (key INT PRIMARY KEY,
val INT)");
var tableName = "\"TBL ABC\"";
client().compute().executeColocated(tableName,
Tuple.create().set("key", 1), List.of(), NodeNameJob.class.getName());
}
{code}
It fails:
{code}
Caused by: java.lang.IllegalArgumentException: Fully qualified name is not
expected [name=TBL ABC]
at
org.apache.ignite.lang.util.IgniteNameUtils.parseSimpleName(IgniteNameUtils.java:49)
at
org.apache.ignite.internal.table.distributed.TableManager.tableAsync(TableManager.java:1510)
at
org.apache.ignite.client.handler.requests.table.ClientTableGetRequest.process(ClientTableGetRequest.java:45)
at
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:637)
at
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:569)
{code}
was:
Add the following test to *ItThinClientComputeTest*:
{code:java}
@Test
void testExecuteColocatedEscapedTableName() {
var session = client().sql().sessionBuilder().build();
session.execute(null, "CREATE TABLE \"TBL ABC\" (key INT PRIMARY KEY,
val INT)");
var tableName = "TBL ABC";
client().compute().executeColocated(tableName,
Tuple.create().set("key", 1), List.of(), NodeNameJob.class.getName());
}
{code}
It fails:
{code}
Caused by: java.lang.IllegalArgumentException: Fully qualified name is not
expected [name=TBL ABC]
at
org.apache.ignite.lang.util.IgniteNameUtils.parseSimpleName(IgniteNameUtils.java:49)
at
org.apache.ignite.internal.table.distributed.TableManager.tableAsync(TableManager.java:1510)
at
org.apache.ignite.client.handler.requests.table.ClientTableGetRequest.process(ClientTableGetRequest.java:45)
at
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:637)
at
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:569)
{code}
> Thin 3.0: executeColocated does not work with escaped table names
> -----------------------------------------------------------------
>
> Key: IGNITE-21685
> URL: https://issues.apache.org/jira/browse/IGNITE-21685
> Project: Ignite
> Issue Type: Bug
> Components: compute, thin client
> Affects Versions: 3.0.0-beta1
> Reporter: Pavel Tupitsyn
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Add the following test to *ItThinClientComputeTest*:
> {code:java}
> @Test
> void testExecuteColocatedEscapedTableName() {
> var session = client().sql().sessionBuilder().build();
> session.execute(null, "CREATE TABLE \"TBL ABC\" (key INT PRIMARY KEY,
> val INT)");
> var tableName = "\"TBL ABC\"";
> client().compute().executeColocated(tableName,
> Tuple.create().set("key", 1), List.of(), NodeNameJob.class.getName());
> }
> {code}
> It fails:
> {code}
> Caused by: java.lang.IllegalArgumentException: Fully qualified name is not
> expected [name=TBL ABC]
> at
> org.apache.ignite.lang.util.IgniteNameUtils.parseSimpleName(IgniteNameUtils.java:49)
> at
> org.apache.ignite.internal.table.distributed.TableManager.tableAsync(TableManager.java:1510)
> at
> org.apache.ignite.client.handler.requests.table.ClientTableGetRequest.process(ClientTableGetRequest.java:45)
> at
> org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:637)
> at
> org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:569)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)