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)