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)