Update query hang totally on FB3 (infinite loop) ------------------------------------------------
Key: CORE-5748 URL: http://tracker.firebirdsql.org/browse/CORE-5748 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 3.0.3, 3.0.4 Environment: WI-V3.0.3.32897 Firebird 3.0 Reporter: Karol Bieniaszewski Attachments: testCOREHang.7z We try to migrate database from Interbase to Firebird but query hang on FB - with same query plan restore attached database backup there are two tables SPRAWOZDANIE: 97k rows OKRES: 6k rows qyery run without any problem on Interbase but hang totally on FB3 i kill it after 30 minutes. It looks like infinite loop reached. There is "in" operator involved. -------------------------------------------- update sprawozdanie s1 set s1.spr_zlec_fakt_rok = 2018, s1.spr_zlec_fakt_nr = 216 where s1.dyr_id = 14 and s1.dyr_id || '_' || s1.spr_id in (select s.dyr_id || '_' || s.spr_id from sprawozdanie s where s.dyr_id = 14 and s.umowa_id = '04130038' and case s.umowa_zlecfakt_okres_id when 1 then s.spr_okres_od || '-' || COALESCE(s.spr_okres_do, s.spr_okres_od) when 2 then s.spr_okres_od || '-' || s.spr_okres_od/*podzapytanie: wybieramy nr kwartalu dla zadanego okres_numer zapytanie glowne: poczatkowy i koncowy okres_numer dla znalezionego okres_kwartal*/when 3 then (select min(o1.okres_numer) || '-' || max(o1.okres_numer) from okres o1 where o1.dyr_id || o1.okres_kwartal in (select o2.dyr_id || o2.okres_kwartal from okres o2 where o2.okres_numer = s.spr_okres_od and o2.dyr_id = s.dyr_id)) when 4 then (select min(o1.okres_numer) || '-' || max(o1.okres_numer) from okres o1 where o1.dyr_id || o1.okres_polrocze in (select o2.dyr_id || o2.okres_polrocze from okres o2 where o2.okres_numer = s.spr_okres_od and o2.dyr_id = s.dyr_id)) when 5 then (select min(o1.okres_numer) || '-' || max(o1.okres_numer) from okres o1 where o1.dyr_id || o1.okres_rok in (select o2.dyr_id || o2.okres_rok from okres o2 where o2.okres_numer = s.spr_okres_od and o2.dyr_id = s.dyr_id)) else 'błędna wartość s.umowa_zlecfakt_okres_id' end = '2018.01-2018.03' AND S.STATUS_ID = 1 and s.status_id <> 2) AND s1.SPR_ZLEC_FAKT_NR IS NULL -------------------- plan: legacy PLAN (O2 INDEX (OKRES_PK)) PLAN (O1 NATURAL) PLAN (O2 INDEX (OKRES_PK)) PLAN (O1 NATURAL) PLAN (O2 INDEX (OKRES_PK)) PLAN (O1 NATURAL) PLAN (S INDEX (IXA_SPRAWOZDANIE__UMOWA)) PLAN (S1 INDEX (IXA_SPRAWOZDANIE__DYREKCJA)) ---------------------------- plan explained Select Expression -> Filter -> Filter -> Table "OKRES" as "O2" Access By ID -> Bitmap -> Index "OKRES_PK" Unique Scan Select Expression -> Singularity Check -> Aggregate -> Filter -> Table "OKRES" as "O1" Full Scan Select Expression -> Filter -> Filter -> Table "OKRES" as "O2" Access By ID -> Bitmap -> Index "OKRES_PK" Unique Scan Select Expression -> Singularity Check -> Aggregate -> Filter -> Table "OKRES" as "O1" Full Scan Select Expression -> Filter -> Filter -> Table "OKRES" as "O2" Access By ID -> Bitmap -> Index "OKRES_PK" Unique Scan Select Expression -> Singularity Check -> Aggregate -> Filter -> Table "OKRES" as "O1" Full Scan Select Expression -> Filter -> Filter -> Table "SPRAWOZDANIE" as "S" Access By ID -> Bitmap -> Index "IXA_SPRAWOZDANIE__UMOWA" Range Scan (partial match: 2/3) Select Expression -> Filter -> Table "SPRAWOZDANIE" as "S1" Access By ID -> Bitmap -> Index "IXA_SPRAWOZDANIE__DYREKCJA" Range Scan (full match) ---------------- tested under WI-V3.0.3.32897 Firebird 3.0 and also current snapshot WI-V3.0.4.32912 Firebird 3.0 -- 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 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel