Wrong result of join when joined fields are created via row_number() function -----------------------------------------------------------------------------
Key: CORE-4261 URL: http://tracker.firebirdsql.org/browse/CORE-4261 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 3.0 Alpha 1 Reporter: Pavel Zotov The following query displays wrong result in LI-T3.0.0.30695: SQL> with data as( CON> select 1 id from rdb$database union all CON> select 2 id from rdb$database union all CON> select 3 id from rdb$database union all CON> select 5 id from rdb$database CON> ) CON> ,seq as( CON> select row_number()over(order by id) rn, id from data CON> ) CON> select CON> s1.id s1_id, s2.id s2_id CON> ,s1.rn s1_rn, s2.rn s2_rn CON> ,iif(s1.rn=s2.rn-1,'yes',iif(s1.rn<>s2.rn-1, 'no!', 'hm!..')) result CON> from seq s1 CON> left join seq s2 on s1.rn=s2.rn-1; Output: ====== S1_ID S2_ID S1_RN S2_RN RESULT ============ ============ ===================== ===================== ====== 1 2 1 2 yes 2 3 2 3 yes 3 5 3 4 yes 5 5 4 0 hm!.. Compare with MS SQL 2005: with data as( select 1 id union all select 2 union all select 3 union all select 5 ) ,seq as( select row_number()over(order by id) rn, id from data ) select s1.id s1_id, s2.id s2_id, s1.rn s1_rn, s2.rn s2_rn ,case when s1.rn=s2.rn-1 then 'yes' when s1.rn<>s2.rn-1 then 'no!' else 'hm!..' end result from seq s1 left join seq s2 on s1.rn=s2.rn-1 Result: s1_id s2_id s1_rn s2_rn result 1 2 1 2 yes 2 3 2 3 yes 3 5 3 4 yes 5 NULL 4 NULL hm!.. (the same in Oracle 11.2g) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel