You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Nikolay Izhikov (Jira)" <ji...@apache.org> on 2022/05/17 09:54:00 UTC
[jira] [Commented] (IGNITE-16991) SQL in clause with array arg fails since ignite 2.11
[ https://issues.apache.org/jira/browse/IGNITE-16991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17538073#comment-17538073 ]
Nikolay Izhikov commented on IGNITE-16991:
------------------------------------------
Introduced by 35b3528fa020fd5bf1dce03cd2fc63508c9912a3
IGNITE-13056 Move indexes from the indexing to the core module (closes #8490)
> SQL in clause with array arg fails since ignite 2.11
> ----------------------------------------------------
>
> Key: IGNITE-16991
> URL: https://issues.apache.org/jira/browse/IGNITE-16991
> Project: Ignite
> Issue Type: Bug
> Reporter: Nikolay Izhikov
> Priority: Major
>
> Reproducer.
> Test passes on ignite-2.10 and fails on ignite-2.11
> {code:java}
> /** */
> public class SqlInQueryTest extends GridCommonAbstractTest {
> /** */
> private static IgniteEx server;
> /** {@inheritDoc} */
> @Override protected void beforeTestsStarted() throws Exception {
> super.beforeTestsStarted();
> server = startGrid(0);
> }
> /** */
> @Test
> public void testSelectWithInClause() throws Exception {
> sql("CREATE TABLE T1(ID VARCHAR, IID VARCHAR, DATA VARCHAR, PRIMARY KEY(ID, IID))", null);
> for (int i = 0; i < 10; i++)
> sql(
> "INSERT INTO T1(ID, IID, DATA) VALUES(?, ?, ?)",
> new Object[] {String.valueOf(i), String.valueOf(i % 3), "just data"}
> );
> assertEquals(10, sql("SELECT ID, IID FROM T1", null).size());
> // One ID inside IN clause.
> assertEquals(1, sql(
> "SELECT IID FROM T1 WHERE ID IN (?) AND IID = ?",
> new Object[] {Arrays.asList("1").toArray(), "1"}
> ).size());
> // Two ID inside IN clause.
> assertEquals(2, sql(
> "SELECT IID FROM T1 WHERE ID IN ('1', '4') AND IID = ?",
> new Object[] {"1"}
> ).size());
> // Two ID inside IN clause. Pass as patameters.
> //assertEquals(2, sql(
> // "SELECT IID FROM T1 WHERE ID IN (?) AND IID = ?",
> // new Object[] {Arrays.asList("1", "4").toArray(), "1"}).size()
> //);
> }
> /** */
> private List<List<?>> sql(String sqlText, Object[] args) {
> return server.context().query().querySqlFields(
> new SqlFieldsQuery(sqlText).setDistributedJoins(true).setArgs(args), true
> ).getAll();
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)