Stanilovsky Evgeny created IGNITE-13019: -------------------------------------------
Summary: Erroneous join result Key: IGNITE-13019 URL: https://issues.apache.org/jira/browse/IGNITE-13019 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8 Reporter: Stanilovsky Evgeny Check reproducer near, seems something wrong with pkey logic , if we change it - results will be ok. {code:java} @Test public void test() throws Exception { inlineSize = 10; startGrid(0); String t1 = "CREATE TABLE dept\n" + " (\n" + "deptno LONG,\n" + "dname VARCHAR,\n" + "loc VARCHAR,\n" + "CONSTRAINT pk_dept PRIMARY KEY (deptno)\n" + " );"; execSql(t1); String t2 = "CREATE TABLE emp\n" + " (\n" + "empno LONG,\n" + "ename VARCHAR,\n" + "job VARCHAR,\n" + "mgr INTEGER,\n" + "hiredate DATE,\n" + "sal LONG,\n" + "comm LONG,\n" + "deptno LONG,\n" + "CONSTRAINT pk_emp PRIMARY KEY (empno)\n" + " );"; execSql(t2); execSql("insert into dept (deptno, dname, loc) values (10, 'ACCOUNTING', 'NEW YORK');"); execSql("insert into dept (deptno, dname, loc) values(20, 'RESEARCH', 'DALLAS');"); execSql("insert into dept (deptno, dname, loc) values(30, 'SALES', 'CHICAGO');"); execSql("insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values(7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981','dd-mm-yyyy'), 5000, null, 10);"); execSql("insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values( 7698, 'BLAKE', 'MANAGER', 7839, to_date('1-5-1981','dd-mm-yyyy'), 2850, null, 30);"); execSql("insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values(7782, 'CLARK', 'MANAGER', 7839, to_date('9-6-1981','dd-mm-yyyy'), 2450, null, 10);"); List<List<?>> vals1 = execSql("SELECT d.deptno,\n" + "e.ename\n" + "FROM EMP e\n" + "INNER JOIN dept d\n" + "ON e.deptno = d.deptno AND e.deptno = 10;"); assertEquals(vals1.size(), 2); List<List<?>> vals2 = execSql("SELECT d.deptno,\n" + "e.ename\n" + "FROM EMP e\n" + "INNER JOIN dept d\n" + "ON e.deptno = d.deptno AND d.DEPTNO = 10;"); //assertEquals(vals2.size(), 2); <--* uncomment for fail* execSql("drop table dept"); String t3 = "CREATE TABLE dept\n" + " (\n" + "deptno LONG,\n" + "dname VARCHAR,\n" + "loc VARCHAR,\n" + "CONSTRAINT pk_dept PRIMARY KEY (deptno, dname)\n" + " );"; execSql(t3); execSql("insert into dept (deptno, dname, loc) values (10, 'ACCOUNTING', 'NEW YORK');"); execSql("insert into dept (deptno, dname, loc) values(20, 'RESEARCH', 'DALLAS');"); execSql("insert into dept (deptno, dname, loc) values(30, 'SALES', 'CHICAGO');"); List<List<?>> vals11 = execSql("SELECT d.deptno,\n" + "e.ename\n" + "FROM EMP e\n" + "INNER JOIN dept d\n" + "ON e.deptno = d.deptno AND e.deptno = 10;"); assertEquals(vals11.size(), 2); List<List<?>> vals22 = execSql("SELECT d.deptno,\n" + "e.ename\n" + "FROM EMP e\n" + "INNER JOIN dept d\n" + "ON e.deptno = d.deptno AND d.DEPTNO = 10;"); assertEquals(vals22.size(), 2); } /** */ private List<List<?>> execSql(String qry) { return grid(0).context().query() .querySqlFields(new SqlFieldsQuery(qry).setLazy(true), false) .getAll(); } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)