Check firebird.log [no messages found for interval when this test was running]
Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
    Sub-query (invariant)
    ....-> Filter
    ........-> Aggregate
    ............-> Table "TDETL" as "K DY" Access By ID
    ................-> Index "TDETL_FK" Full Scan
    Cursor "K"(line, column)
    ....-> Filter (preliminary)
    ........-> Nested Loop Join (inner)
    ............-> Table "TMAIN" as "K M4" Full Scan
    ............-> Filter
    ................-> Table "TDETL" as "K D4 DX" Access By ID
    ....................-> Bitmap And
    ........................-> Bitmap And
    ............................-> Bitmap
    ................................-> Index "TDETL_Z" Range Scan (lower bound: 1/1)
    ............................-> Bitmap
    ................................-> Index "TDETL_Y" Range Scan (upper bound: 1/1)
    ........................-> Bitmap
    ............................-> Index "TDETL_FK" Range Scan (full match)
    Sub-query
    ....-> Filter
    ........-> Table "TMAIN" as "M0" Access By ID
    ............-> Bitmap
    ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
    Sub-query
    ....-> Filter
    ........-> Table "TMAIN" as "R M0A" Access By ID
  - ............-> Bitmap
  + ............-> Bitmap Or
  + ................-> Bitmap
  - ................-> Index "TMAIN_X" List Scan (full match)
  + ....................-> Index "TMAIN_X" Range Scan (full match)
  + ................-> Bitmap
  + ....................-> Index "TMAIN_X" Range Scan (full match)
    Select Expression(line, column)
    ....-> Singularity Check
    ........-> Aggregate
    ............-> Filter
    ................-> Recursion
    ....................-> Filter
    ........................-> Table "TDETL" as "R D0" Access By ID
    ............................-> Bitmap
    ................................-> Index "TDETL_FK" Range Scan (full match)
    ....................-> Filter
    ........................-> Table "TDETL" as "R DX" Access By ID
    ............................-> Bitmap
    ................................-> Index "TDETL_FK" Range Scan (full match)
    Sub-query(line, column)
    ....-> Singularity Check
    ........-> Aggregate
    ............-> Table "TMAIN" as "M1A" Full Scan
    Sub-query(line, column)
    ....-> Singularity Check
    ........-> Aggregate
    ............-> Table "TMAIN" as "M1B" Access By ID
    ................-> Index "TMAIN_X" Full Scan
    Sub-query(line, column)
    ....-> Singularity Check
    ........-> Aggregate
    ............-> Table "TDETL" as "D1B" Access By ID
    ................-> Index "TDETL_FK" Full Scan
    Sub-query(line, column)
    ....-> Singularity Check
    ........-> Aggregate
    ............-> Table "TDETL" as "D1C" Full Scan
    Select Expression(line, column)
    ....-> Aggregate
    ........-> Nested Loop Join (inner)
    ............-> Filter
    ................-> Table "TMAIN" as "M2" Access By ID
    ....................-> Index "TMAIN_PK" Full Scan
    ........................-> Bitmap
    ............................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
    ............-> Filter
    ................-> Table "TDETL" as "D" Access By ID
    ....................-> Bitmap
    ........................-> Index "TDETL_PK" Unique Scan
    Sub-query
    ....-> Filter
    ........-> Table "TDETL" as "D" Access By ID
    ............-> Bitmap
    ................-> Index "TDETL_FK" Range Scan (full match)
    Select Expression(line, column)
    ....-> Filter
    ........-> Table "TMAIN" as "M3" Access By ID
    ............-> Bitmap
    ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
    ......0 ms

LOG DETAILS:

2024-12-24 12:33:45.271
2024-12-24 12:33:45.271 act = <firebird.qa.plugin.Action object at [hex]>
2024-12-24 12:33:45.271 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-12-24 12:33:45.272
2024-12-24 12:33:45.272     @pytest.mark.trace
2024-12-24 12:33:45.272     @pytest.mark.version('>=5.0')
2024-12-24 12:33:45.272     def test_1(act: Action, capsys):
2024-12-24 12:33:45.272
2024-12-24 12:33:45.272         test_script = f"""
2024-12-24 12:33:45.272             recreate table tdetl(id int);
2024-12-24 12:33:45.272             recreate table tmain(id int primary key using index tmain_pk, x int);
2024-12-24 12:33:45.272             recreate table tdetl(id int primary key using index tdetl_pk, pid int references tmain using index tdetl_fk, y int, z int);
2024-12-24 12:33:45.272
2024-12-24 12:33:45.272             insert into tmain(id,x)
2024-12-24 12:33:45.272             select i, -100 + mod(i,200) from (select row_number()over() i from rdb$types rows 200);
2024-12-24 12:33:45.272
2024-12-24 12:33:45.272             insert into tdetl(id, pid, y,z)
2024-12-24 12:33:45.272             select i, 1+mod(i,10), mod(i,30), mod(i,70) from (select row_number()over() i from rdb$types,rdb$types rows 1000);
2024-12-24 12:33:45.272             commit;
2024-12-24 12:33:45.272
2024-12-24 12:33:45.272             create index tmain_x on tmain(x);
2024-12-24 12:33:45.272             create index tdetl_y on tdetl(y);
2024-12-24 12:33:45.273             create index tdetl_z on tdetl(z);
2024-12-24 12:33:45.273
2024-12-24 12:33:45.273             set statistics index tdetl_fk;
2024-12-24 12:33:45.273             commit;
2024-12-24 12:33:45.273
2024-12-24 12:33:45.273             set term ^;
2024-12-24 12:33:45.273             create or alter procedure sp_test returns(id int, c int)
2024-12-24 12:33:45.273             as
2024-12-24 12:33:45.273                 declare k cursor for (
2024-12-24 12:33:45.273                     select m4.id, d4.y, d4.z
2024-12-24 12:33:45.273                     from tmain m4
2024-12-24 12:33:45.273                     cross join lateral (
2024-12-24 12:33:45.273                         select y, z
2024-12-24 12:33:45.273                         from tdetl dx
2024-12-24 12:33:45.273                         where
2024-12-24 12:33:45.273                             dx.pid = m4.id
2024-12-24 12:33:45.273                             and m4.x between dx.y and dx.z
2024-12-24 12:33:45.273                     ) d4
2024-12-24 12:33:45.273                     where exists(select count(*) from tdetl dy group by dy.pid having count(*) > 2)
2024-12-24 12:33:45.274                 );
2024-12-24 12:33:45.274             begin
2024-12-24 12:33:45.274
2024-12-24 12:33:45.274                 if ( not exists(select * from tmain m0 where m0.x > 0) ) then
2024-12-24 12:33:45.274                     exception;
2024-12-24 12:33:45.274
2024-12-24 12:33:45.274                 ----------------------------
2024-12-24 12:33:45.274
2024-12-24 12:33:45.274                 with recursive
2024-12-24 12:33:45.274                 r as (
2024-12-24 12:33:45.274                    select 0 as i, d0.id, d0.pid
2024-12-24 12:33:45.274                    from tdetl d0
2024-12-24 12:33:45.274                    where d0.pid is null
2024-12-24 12:33:45.274                    UNION ALL
2024-12-24 12:33:45.274                    select r.i + 1, dx.id, dx.pid
2024-12-24 12:33:45.274                    from tdetl dx
2024-12-24 12:33:45.274                    join r on dx.pid = r.id
2024-12-24 12:33:45.274                    where exists(
2024-12-24 12:33:45.274                        select * from tmain m0a
2024-12-24 12:33:45.275                        where
2024-12-24 12:33:45.275                            m0a.id <> dx.pid
2024-12-24 12:33:45.275                            -- ::: NB ::: Rest part is IN-list with computable but non-invariant elements.
2024-12-24 12:33:45.275                            -- Execution plan for this kind was changed 07-sep-2023, see:
2024-12-24 12:33:45.275                            -- https://github.com/FirebirdSQL/firebird/commit/5df6668c7bf5a4b27e15f687f8c6cc40e260ced8
2024-12-24 12:33:45.275                            -- (Allow computable but non-invariant lists to be used for index lookup)
2024-12-24 12:33:45.275                            -- See also: tests/functional/tabloid/test_e260ced8.py
2024-12-24 12:33:45.275                            -- Here "Index "TMAIN_X" List Scan (full match)" will be!
2024-12-24 12:33:45.275                            -- Old: "Index "TMAIN_X" Range Scan (full match)"
2024-12-24 12:33:45.275                            and m0a.x in (dx.y, dx.z) -- ### ATTENTION ###
2024-12-24 12:33:45.275                    )
2024-12-24 12:33:45.275                 )
2024-12-24 12:33:45.275                 select count(*) from r where r.i > 2
2024-12-24 12:33:45.275                 into c;
2024-12-24 12:33:45.275
2024-12-24 12:33:45.275                 ----------------------------
2024-12-24 12:33:45.275                 c = decode( (select mod(count(*), 3) from tmain m1a)
2024-12-24 12:33:45.275                             ,0, (select min(x) from tmain m1b)
2024-12-24 12:33:45.276                             ,1, (select min(d1b.pid) from tdetl d1b)
2024-12-24 12:33:45.276                             ,2, (select max(d1c.pid) from tdetl d1c)
2024-12-24 12:33:45.276                     );
2024-12-24 12:33:45.276
2024-12-24 12:33:45.276                 ----------------------------
2024-12-24 12:33:45.276                 for
2024-12-24 12:33:45.276                     select m2.id, count(*)
2024-12-24 12:33:45.276                     from tmain m2
2024-12-24 12:33:45.276                     join tdetl d using(id)
2024-12-24 12:33:45.276                     where m2.x > 0
2024-12-24 12:33:45.276                     group by 1
2024-12-24 12:33:45.276                     into id, c
2024-12-24 12:33:45.276                 do
2024-12-24 12:33:45.276                     suspend;
2024-12-24 12:33:45.276                 ----------------------------
2024-12-24 12:33:45.276                 for
2024-12-24 12:33:45.276                     select m3.id, 0
2024-12-24 12:33:45.276                     from tmain m3
2024-12-24 12:33:45.276                     where
2024-12-24 12:33:45.277                         m3.x > 0 and
2024-12-24 12:33:45.277                         not exists(select * from tdetl d where d.pid = m3.id)
2024-12-24 12:33:45.277                     into id, c
2024-12-24 12:33:45.277                 do
2024-12-24 12:33:45.277                     suspend;
2024-12-24 12:33:45.277             end
2024-12-24 12:33:45.277             ^
2024-12-24 12:33:45.277             set term ;^
2024-12-24 12:33:45.277             commit;
2024-12-24 12:33:45.277         """
2024-12-24 12:33:45.277
2024-12-24 12:33:45.277         with act.trace(db_events=trace, encoding = locale.getpreferredencoding(), encoding_errors='utf8'):
2024-12-24 12:33:45.277             act.isql(switches = ['-q'], input = test_script, combine_output = True, io_enc = locale.getpreferredencoding())
2024-12-24 12:33:45.277
2024-12-24 12:33:45.277         # Parse trace log:
2024-12-24 12:33:45.277         start_show = 0
2024-12-24 12:33:45.277         for line in act.trace_log:
2024-12-24 12:33:45.277             if line.startswith("^^^"):
2024-12-24 12:33:45.277                 start_show = 1
2024-12-24 12:33:45.278                 continue
2024-12-24 12:33:45.278             if start_show and line.rstrip():
2024-12-24 12:33:45.278                 print( replace_leading(line,'.') )
2024-12-24 12:33:45.278
2024-12-24 12:33:45.278         expected_stdout = f"""
2024-12-24 12:33:45.278             Sub-query (invariant)
2024-12-24 12:33:45.278             ....-> Filter
2024-12-24 12:33:45.278             ........-> Aggregate
2024-12-24 12:33:45.278             ............-> Table "TDETL" as "K DY" Access By ID
2024-12-24 12:33:45.278             ................-> Index "TDETL_FK" Full Scan
2024-12-24 12:33:45.278             Cursor "K"(line, column)
2024-12-24 12:33:45.278             ....-> Filter (preliminary)
2024-12-24 12:33:45.278             ........-> Nested Loop Join (inner)
2024-12-24 12:33:45.278             ............-> Table "TMAIN" as "K M4" Full Scan
2024-12-24 12:33:45.278             ............-> Filter
2024-12-24 12:33:45.278             ................-> Table "TDETL" as "K D4 DX" Access By ID
2024-12-24 12:33:45.278             ....................-> Bitmap And
2024-12-24 12:33:45.278             ........................-> Bitmap And
2024-12-24 12:33:45.278             ............................-> Bitmap
2024-12-24 12:33:45.279             ................................-> Index "TDETL_Z" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.279             ............................-> Bitmap
2024-12-24 12:33:45.279             ................................-> Index "TDETL_Y" Range Scan (upper bound: 1/1)
2024-12-24 12:33:45.279             ........................-> Bitmap
2024-12-24 12:33:45.279             ............................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.279             Sub-query
2024-12-24 12:33:45.279             ....-> Filter
2024-12-24 12:33:45.279             ........-> Table "TMAIN" as "M0" Access By ID
2024-12-24 12:33:45.279             ............-> Bitmap
2024-12-24 12:33:45.279             ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.279             Sub-query
2024-12-24 12:33:45.279             ....-> Filter
2024-12-24 12:33:45.279             ........-> Table "TMAIN" as "R M0A" Access By ID
2024-12-24 12:33:45.279             ............-> Bitmap
2024-12-24 12:33:45.279             ................-> Index "TMAIN_X" List Scan (full match)
2024-12-24 12:33:45.279             Select Expression(line, column)
2024-12-24 12:33:45.279             ....-> Singularity Check
2024-12-24 12:33:45.279             ........-> Aggregate
2024-12-24 12:33:45.279             ............-> Filter
2024-12-24 12:33:45.280             ................-> Recursion
2024-12-24 12:33:45.280             ....................-> Filter
2024-12-24 12:33:45.280             ........................-> Table "TDETL" as "R D0" Access By ID
2024-12-24 12:33:45.280             ............................-> Bitmap
2024-12-24 12:33:45.280             ................................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.280             ....................-> Filter
2024-12-24 12:33:45.280             ........................-> Table "TDETL" as "R DX" Access By ID
2024-12-24 12:33:45.280             ............................-> Bitmap
2024-12-24 12:33:45.280             ................................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.280             Sub-query(line, column)
2024-12-24 12:33:45.280             ....-> Singularity Check
2024-12-24 12:33:45.280             ........-> Aggregate
2024-12-24 12:33:45.280             ............-> Table "TMAIN" as "M1A" Full Scan
2024-12-24 12:33:45.280             Sub-query(line, column)
2024-12-24 12:33:45.280             ....-> Singularity Check
2024-12-24 12:33:45.280             ........-> Aggregate
2024-12-24 12:33:45.280             ............-> Table "TMAIN" as "M1B" Access By ID
2024-12-24 12:33:45.280             ................-> Index "TMAIN_X" Full Scan
2024-12-24 12:33:45.280             Sub-query(line, column)
2024-12-24 12:33:45.281             ....-> Singularity Check
2024-12-24 12:33:45.281             ........-> Aggregate
2024-12-24 12:33:45.281             ............-> Table "TDETL" as "D1B" Access By ID
2024-12-24 12:33:45.281             ................-> Index "TDETL_FK" Full Scan
2024-12-24 12:33:45.281             Sub-query(line, column)
2024-12-24 12:33:45.281             ....-> Singularity Check
2024-12-24 12:33:45.281             ........-> Aggregate
2024-12-24 12:33:45.281             ............-> Table "TDETL" as "D1C" Full Scan
2024-12-24 12:33:45.281             Select Expression(line, column)
2024-12-24 12:33:45.281             ....-> Aggregate
2024-12-24 12:33:45.281             ........-> Nested Loop Join (inner)
2024-12-24 12:33:45.281             ............-> Filter
2024-12-24 12:33:45.281             ................-> Table "TMAIN" as "M2" Access By ID
2024-12-24 12:33:45.281             ....................-> Index "TMAIN_PK" Full Scan
2024-12-24 12:33:45.281             ........................-> Bitmap
2024-12-24 12:33:45.281             ............................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.281             ............-> Filter
2024-12-24 12:33:45.281             ................-> Table "TDETL" as "D" Access By ID
2024-12-24 12:33:45.281             ....................-> Bitmap
2024-12-24 12:33:45.281             ........................-> Index "TDETL_PK" Unique Scan
2024-12-24 12:33:45.282             Sub-query
2024-12-24 12:33:45.282             ....-> Filter
2024-12-24 12:33:45.282             ........-> Table "TDETL" as "D" Access By ID
2024-12-24 12:33:45.282             ............-> Bitmap
2024-12-24 12:33:45.282             ................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.282             Select Expression(line, column)
2024-12-24 12:33:45.282             ....-> Filter
2024-12-24 12:33:45.282             ........-> Table "TMAIN" as "M3" Access By ID
2024-12-24 12:33:45.282             ............-> Bitmap
2024-12-24 12:33:45.282             ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.282             ......0 ms
2024-12-24 12:33:45.282         """
2024-12-24 12:33:45.282
2024-12-24 12:33:45.282         act.expected_stdout = expected_stdout
2024-12-24 12:33:45.282         act.stdout = capsys.readouterr().out
2024-12-24 12:33:45.282 >       assert act.clean_stdout == act.clean_expected_stdout
2024-12-24 12:33:45.282 E       assert
2024-12-24 12:33:45.282 E           Sub-query (invariant)
2024-12-24 12:33:45.282 E           ....-> Filter
2024-12-24 12:33:45.283 E           ........-> Aggregate
2024-12-24 12:33:45.283 E           ............-> Table "TDETL" as "K DY" Access By ID
2024-12-24 12:33:45.283 E           ................-> Index "TDETL_FK" Full Scan
2024-12-24 12:33:45.283 E           Cursor "K"(line, column)
2024-12-24 12:33:45.283 E           ....-> Filter (preliminary)
2024-12-24 12:33:45.283 E           ........-> Nested Loop Join (inner)
2024-12-24 12:33:45.283 E           ............-> Table "TMAIN" as "K M4" Full Scan
2024-12-24 12:33:45.283 E           ............-> Filter
2024-12-24 12:33:45.283 E           ................-> Table "TDETL" as "K D4 DX" Access By ID
2024-12-24 12:33:45.283 E           ....................-> Bitmap And
2024-12-24 12:33:45.283 E           ........................-> Bitmap And
2024-12-24 12:33:45.283 E           ............................-> Bitmap
2024-12-24 12:33:45.283 E           ................................-> Index "TDETL_Z" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.283 E           ............................-> Bitmap
2024-12-24 12:33:45.283 E           ................................-> Index "TDETL_Y" Range Scan (upper bound: 1/1)
2024-12-24 12:33:45.283 E           ........................-> Bitmap
2024-12-24 12:33:45.283 E           ............................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.283 E           Sub-query
2024-12-24 12:33:45.283 E           ....-> Filter
2024-12-24 12:33:45.284 E           ........-> Table "TMAIN" as "M0" Access By ID
2024-12-24 12:33:45.284 E           ............-> Bitmap
2024-12-24 12:33:45.284 E           ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.284 E           Sub-query
2024-12-24 12:33:45.284 E           ....-> Filter
2024-12-24 12:33:45.284 E           ........-> Table "TMAIN" as "R M0A" Access By ID
2024-12-24 12:33:45.284 E         - ............-> Bitmap
2024-12-24 12:33:45.284 E         + ............-> Bitmap Or
2024-12-24 12:33:45.284 E         + ................-> Bitmap
2024-12-24 12:33:45.284 E         - ................-> Index "TMAIN_X" List Scan (full match)
2024-12-24 12:33:45.284 E         + ....................-> Index "TMAIN_X" Range Scan (full match)
2024-12-24 12:33:45.284 E         + ................-> Bitmap
2024-12-24 12:33:45.284 E         + ....................-> Index "TMAIN_X" Range Scan (full match)
2024-12-24 12:33:45.284 E           Select Expression(line, column)
2024-12-24 12:33:45.285 E           ....-> Singularity Check
2024-12-24 12:33:45.285 E           ........-> Aggregate
2024-12-24 12:33:45.285 E           ............-> Filter
2024-12-24 12:33:45.285 E           ................-> Recursion
2024-12-24 12:33:45.285 E           ....................-> Filter
2024-12-24 12:33:45.285 E           ........................-> Table "TDETL" as "R D0" Access By ID
2024-12-24 12:33:45.285 E           ............................-> Bitmap
2024-12-24 12:33:45.285 E           ................................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.285 E           ....................-> Filter
2024-12-24 12:33:45.285 E           ........................-> Table "TDETL" as "R DX" Access By ID
2024-12-24 12:33:45.285 E           ............................-> Bitmap
2024-12-24 12:33:45.285 E           ................................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.285 E           Sub-query(line, column)
2024-12-24 12:33:45.285 E           ....-> Singularity Check
2024-12-24 12:33:45.285 E           ........-> Aggregate
2024-12-24 12:33:45.285 E           ............-> Table "TMAIN" as "M1A" Full Scan
2024-12-24 12:33:45.285 E           Sub-query(line, column)
2024-12-24 12:33:45.285 E           ....-> Singularity Check
2024-12-24 12:33:45.285 E           ........-> Aggregate
2024-12-24 12:33:45.286 E           ............-> Table "TMAIN" as "M1B" Access By ID
2024-12-24 12:33:45.286 E           ................-> Index "TMAIN_X" Full Scan
2024-12-24 12:33:45.286 E           Sub-query(line, column)
2024-12-24 12:33:45.286 E           ....-> Singularity Check
2024-12-24 12:33:45.286 E           ........-> Aggregate
2024-12-24 12:33:45.286 E           ............-> Table "TDETL" as "D1B" Access By ID
2024-12-24 12:33:45.286 E           ................-> Index "TDETL_FK" Full Scan
2024-12-24 12:33:45.286 E           Sub-query(line, column)
2024-12-24 12:33:45.286 E           ....-> Singularity Check
2024-12-24 12:33:45.286 E           ........-> Aggregate
2024-12-24 12:33:45.286 E           ............-> Table "TDETL" as "D1C" Full Scan
2024-12-24 12:33:45.286 E           Select Expression(line, column)
2024-12-24 12:33:45.286 E           ....-> Aggregate
2024-12-24 12:33:45.286 E           ........-> Nested Loop Join (inner)
2024-12-24 12:33:45.286 E           ............-> Filter
2024-12-24 12:33:45.286 E           ................-> Table "TMAIN" as "M2" Access By ID
2024-12-24 12:33:45.286 E           ....................-> Index "TMAIN_PK" Full Scan
2024-12-24 12:33:45.286 E           ........................-> Bitmap
2024-12-24 12:33:45.286 E           ............................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.286 E           ............-> Filter
2024-12-24 12:33:45.287 E           ................-> Table "TDETL" as "D" Access By ID
2024-12-24 12:33:45.287 E           ....................-> Bitmap
2024-12-24 12:33:45.287 E           ........................-> Index "TDETL_PK" Unique Scan
2024-12-24 12:33:45.287 E           Sub-query
2024-12-24 12:33:45.287 E           ....-> Filter
2024-12-24 12:33:45.287 E           ........-> Table "TDETL" as "D" Access By ID
2024-12-24 12:33:45.287 E           ............-> Bitmap
2024-12-24 12:33:45.287 E           ................-> Index "TDETL_FK" Range Scan (full match)
2024-12-24 12:33:45.287 E           Select Expression(line, column)
2024-12-24 12:33:45.287 E           ....-> Filter
2024-12-24 12:33:45.287 E           ........-> Table "TMAIN" as "M3" Access By ID
2024-12-24 12:33:45.287 E           ............-> Bitmap
2024-12-24 12:33:45.287 E           ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
2024-12-24 12:33:45.287 E           ......0 ms
2024-12-24 12:33:45.287
2024-12-24 12:33:45.287 tests\bugs\gh_7466_plans_tracking_test.py:280: AssertionError
2024-12-24 12:33:45.287 ---------------------------- Captured stdout setup ----------------------------
2024-12-24 12:33:45.287 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11566\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.trace
    @pytest.mark.version('>=5.0')
    def test_1(act: Action, capsys):
    
        test_script = f"""
            recreate table tdetl(id int);
            recreate table tmain(id int primary key using index tmain_pk, x int);
            recreate table tdetl(id int primary key using index tdetl_pk, pid int references tmain using index tdetl_fk, y int, z int);
    
            insert into tmain(id,x)
            select i, -100 + mod(i,200) from (select row_number()over() i from rdb$types rows 200);
    
            insert into tdetl(id, pid, y,z)
            select i, 1+mod(i,10), mod(i,30), mod(i,70) from (select row_number()over() i from rdb$types,rdb$types rows 1000);
            commit;
    
            create index tmain_x on tmain(x);
            create index tdetl_y on tdetl(y);
            create index tdetl_z on tdetl(z);
    
            set statistics index tdetl_fk;
            commit;
    
            set term ^;
            create or alter procedure sp_test returns(id int, c int)
            as
                declare k cursor for (
                    select m4.id, d4.y, d4.z
                    from tmain m4
                    cross join lateral (
                        select y, z
                        from tdetl dx
                        where
                            dx.pid = m4.id
                            and m4.x between dx.y and dx.z
                    ) d4
                    where exists(select count(*) from tdetl dy group by dy.pid having count(*) > 2)
                );
            begin
    
                if ( not exists(select * from tmain m0 where m0.x > 0) ) then
                    exception;
    
                ----------------------------
    
                with recursive
                r as (
                   select 0 as i, d0.id, d0.pid
                   from tdetl d0
                   where d0.pid is null
                   UNION ALL
                   select r.i + 1, dx.id, dx.pid
                   from tdetl dx
                   join r on dx.pid = r.id
                   where exists(
                       select * from tmain m0a
                       where
                           m0a.id <> dx.pid
                           -- ::: NB ::: Rest part is IN-list with computable but non-invariant elements.
                           -- Execution plan for this kind was changed 07-sep-2023, see:
                           -- https://github.com/FirebirdSQL/firebird/commit/5df6668c7bf5a4b27e15f687f8c6cc40e260ced8
                           -- (Allow computable but non-invariant lists to be used for index lookup)
                           -- See also: tests/functional/tabloid/test_e260ced8.py
                           -- Here "Index "TMAIN_X" List Scan (full match)" will be!
                           -- Old: "Index "TMAIN_X" Range Scan (full match)"
                           and m0a.x in (dx.y, dx.z) -- ### ATTENTION ###
                   )
                )
                select count(*) from r where r.i > 2
                into c;
    
                ----------------------------
                c = decode( (select mod(count(*), 3) from tmain m1a)
                            ,0, (select min(x) from tmain m1b)
                            ,1, (select min(d1b.pid) from tdetl d1b)
                            ,2, (select max(d1c.pid) from tdetl d1c)
                    );
    
                ----------------------------
                for
                    select m2.id, count(*)
                    from tmain m2
                    join tdetl d using(id)
                    where m2.x > 0
                    group by 1
                    into id, c
                do
                    suspend;
                ----------------------------
                for
                    select m3.id, 0
                    from tmain m3
                    where
                        m3.x > 0 and
                        not exists(select * from tdetl d where d.pid = m3.id)
                    into id, c
                do
                    suspend;
            end
            ^
            set term ;^
            commit;
        """
    
        with act.trace(db_events=trace, encoding = locale.getpreferredencoding(), encoding_errors='utf8'):
            act.isql(switches = ['-q'], input = test_script, combine_output = True, io_enc = locale.getpreferredencoding())
    
        # Parse trace log:
        start_show = 0
        for line in act.trace_log:
            if line.startswith("^^^"):
                start_show = 1
                continue
            if start_show and line.rstrip():
                print( replace_leading(line,'.') )
    
        expected_stdout = f"""
            Sub-query (invariant)
            ....-> Filter
            ........-> Aggregate
            ............-> Table "TDETL" as "K DY" Access By ID
            ................-> Index "TDETL_FK" Full Scan
            Cursor "K"(line, column)
            ....-> Filter (preliminary)
            ........-> Nested Loop Join (inner)
            ............-> Table "TMAIN" as "K M4" Full Scan
            ............-> Filter
            ................-> Table "TDETL" as "K D4 DX" Access By ID
            ....................-> Bitmap And
            ........................-> Bitmap And
            ............................-> Bitmap
            ................................-> Index "TDETL_Z" Range Scan (lower bound: 1/1)
            ............................-> Bitmap
            ................................-> Index "TDETL_Y" Range Scan (upper bound: 1/1)
            ........................-> Bitmap
            ............................-> Index "TDETL_FK" Range Scan (full match)
            Sub-query
            ....-> Filter
            ........-> Table "TMAIN" as "M0" Access By ID
            ............-> Bitmap
            ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
            Sub-query
            ....-> Filter
            ........-> Table "TMAIN" as "R M0A" Access By ID
            ............-> Bitmap
            ................-> Index "TMAIN_X" List Scan (full match)
            Select Expression(line, column)
            ....-> Singularity Check
            ........-> Aggregate
            ............-> Filter
            ................-> Recursion
            ....................-> Filter
            ........................-> Table "TDETL" as "R D0" Access By ID
            ............................-> Bitmap
            ................................-> Index "TDETL_FK" Range Scan (full match)
            ....................-> Filter
            ........................-> Table "TDETL" as "R DX" Access By ID
            ............................-> Bitmap
            ................................-> Index "TDETL_FK" Range Scan (full match)
            Sub-query(line, column)
            ....-> Singularity Check
            ........-> Aggregate
            ............-> Table "TMAIN" as "M1A" Full Scan
            Sub-query(line, column)
            ....-> Singularity Check
            ........-> Aggregate
            ............-> Table "TMAIN" as "M1B" Access By ID
            ................-> Index "TMAIN_X" Full Scan
            Sub-query(line, column)
            ....-> Singularity Check
            ........-> Aggregate
            ............-> Table "TDETL" as "D1B" Access By ID
            ................-> Index "TDETL_FK" Full Scan
            Sub-query(line, column)
            ....-> Singularity Check
            ........-> Aggregate
            ............-> Table "TDETL" as "D1C" Full Scan
            Select Expression(line, column)
            ....-> Aggregate
            ........-> Nested Loop Join (inner)
            ............-> Filter
            ................-> Table "TMAIN" as "M2" Access By ID
            ....................-> Index "TMAIN_PK" Full Scan
            ........................-> Bitmap
            ............................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
            ............-> Filter
            ................-> Table "TDETL" as "D" Access By ID
            ....................-> Bitmap
            ........................-> Index "TDETL_PK" Unique Scan
            Sub-query
            ....-> Filter
            ........-> Table "TDETL" as "D" Access By ID
            ............-> Bitmap
            ................-> Index "TDETL_FK" Range Scan (full match)
            Select Expression(line, column)
            ....-> Filter
            ........-> Table "TMAIN" as "M3" Access By ID
            ............-> Bitmap
            ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
            ......0 ms
        """
    
        act.expected_stdout = expected_stdout
        act.stdout = capsys.readouterr().out
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E           Sub-query (invariant)
E           ....-> Filter
E           ........-> Aggregate
E           ............-> Table "TDETL" as "K DY" Access By ID
E           ................-> Index "TDETL_FK" Full Scan
E           Cursor "K"(line, column)
E           ....-> Filter (preliminary)
E           ........-> Nested Loop Join (inner)
E           ............-> Table "TMAIN" as "K M4" Full Scan
E           ............-> Filter
E           ................-> Table "TDETL" as "K D4 DX" Access By ID
E           ....................-> Bitmap And
E           ........................-> Bitmap And
E           ............................-> Bitmap
E           ................................-> Index "TDETL_Z" Range Scan (lower bound: 1/1)
E           ............................-> Bitmap
E           ................................-> Index "TDETL_Y" Range Scan (upper bound: 1/1)
E           ........................-> Bitmap
E           ............................-> Index "TDETL_FK" Range Scan (full match)
E           Sub-query
E           ....-> Filter
E           ........-> Table "TMAIN" as "M0" Access By ID
E           ............-> Bitmap
E           ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
E           Sub-query
E           ....-> Filter
E           ........-> Table "TMAIN" as "R M0A" Access By ID
E         - ............-> Bitmap
E         + ............-> Bitmap Or
E         + ................-> Bitmap
E         - ................-> Index "TMAIN_X" List Scan (full match)
E         + ....................-> Index "TMAIN_X" Range Scan (full match)
E         + ................-> Bitmap
E         + ....................-> Index "TMAIN_X" Range Scan (full match)
E           Select Expression(line, column)
E           ....-> Singularity Check
E           ........-> Aggregate
E           ............-> Filter
E           ................-> Recursion
E           ....................-> Filter
E           ........................-> Table "TDETL" as "R D0" Access By ID
E           ............................-> Bitmap
E           ................................-> Index "TDETL_FK" Range Scan (full match)
E           ....................-> Filter
E           ........................-> Table "TDETL" as "R DX" Access By ID
E           ............................-> Bitmap
E           ................................-> Index "TDETL_FK" Range Scan (full match)
E           Sub-query(line, column)
E           ....-> Singularity Check
E           ........-> Aggregate
E           ............-> Table "TMAIN" as "M1A" Full Scan
E           Sub-query(line, column)
E           ....-> Singularity Check
E           ........-> Aggregate
E           ............-> Table "TMAIN" as "M1B" Access By ID
E           ................-> Index "TMAIN_X" Full Scan
E           Sub-query(line, column)
E           ....-> Singularity Check
E           ........-> Aggregate
E           ............-> Table "TDETL" as "D1B" Access By ID
E           ................-> Index "TDETL_FK" Full Scan
E           Sub-query(line, column)
E           ....-> Singularity Check
E           ........-> Aggregate
E           ............-> Table "TDETL" as "D1C" Full Scan
E           Select Expression(line, column)
E           ....-> Aggregate
E           ........-> Nested Loop Join (inner)
E           ............-> Filter
E           ................-> Table "TMAIN" as "M2" Access By ID
E           ....................-> Index "TMAIN_PK" Full Scan
E           ........................-> Bitmap
E           ............................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
E           ............-> Filter
E           ................-> Table "TDETL" as "D" Access By ID
E           ....................-> Bitmap
E           ........................-> Index "TDETL_PK" Unique Scan
E           Sub-query
E           ....-> Filter
E           ........-> Table "TDETL" as "D" Access By ID
E           ............-> Bitmap
E           ................-> Index "TDETL_FK" Range Scan (full match)
E           Select Expression(line, column)
E           ....-> Filter
E           ........-> Table "TMAIN" as "M3" Access By ID
E           ............-> Bitmap
E           ................-> Index "TMAIN_X" Range Scan (lower bound: 1/1)
E           ......0 ms

tests\bugs\gh_7466_plans_tracking_test.py:280: AssertionError
Full history of outcomes and elapsed time, ms:
NN SNAP_INFO CS_outcome SS_outcome CS_run_time SS_run_time CS_run_beg CS_run_end SS_run_beg SS_run_end
1 5.0.3.1657 2025.06.20 8b4d2 P P 3001 2513 2025.06.26 11:18:35.805 2025.06.26 11:18:38.806 2025.06.26 10:18:32.251 2025.06.26 10:18:34.764
2 5.0.3.1657 2025.06.19 4bd4c P P 2987 2537 2025.06.20 05:22:42.605 2025.06.20 05:22:45.592 2025.06.20 04:22:48.444 2025.06.20 04:22:50.981
3 5.0.3.1657 2025.06.11 dae6f P P 2991 2525 2025.06.19 10:54:17.643 2025.06.19 10:54:20.634 2025.06.19 09:54:13.350 2025.06.19 09:54:15.875
4 5.0.3.1657 2025.06.10 dbc92 P P 3174 2534 2025.06.11 08:40:26.270 2025.06.11 08:40:29.444 2025.06.11 07:40:09.878 2025.06.11 07:40:12.412
5 5.0.3.1656 2025.06.05 00512 P P 2998 2513 2025.06.10 09:55:54.387 2025.06.10 09:55:57.385 2025.06.10 08:55:15.135 2025.06.10 08:55:17.648
6 5.0.3.1656 2025.05.20 c4b11 P P 2989 2516 2025.06.03 09:42:48.879 2025.06.03 09:42:51.868 2025.06.03 08:43:19.907 2025.06.03 08:43:22.423
7 5.0.3.1652 2025.05.13 f51c6 P P 2985 2524 2025.05.21 06:23:51.057 2025.05.21 06:23:54.042 2025.05.21 05:24:35.493 2025.05.21 05:24:38.017
8 5.0.3.1651 2025.05.08 ee9d2 P P 2995 2539 2025.05.13 06:36:26.301 2025.05.13 06:36:29.296 2025.05.13 05:18:41.879 2025.05.13 05:18:44.418
9 5.0.3.1651 2025.05.04 3d914 P P 2991 2534 2025.05.09 04:25:31.504 2025.05.09 04:25:34.495 2025.05.09 03:07:40.685 2025.05.09 03:07:43.219
10 5.0.3.1651 2025.04.30 141ef P P 2974 2535 2025.05.02 04:33:10.956 2025.05.02 04:33:13.930 2025.05.02 03:15:33.170 2025.05.02 03:15:35.705
11 5.0.3.1650 2025.04.30 6253f P P 2979 2549 2025.05.01 04:32:13.217 2025.05.01 04:32:16.196 2025.05.01 03:14:25.149 2025.05.01 03:14:27.698
12 5.0.3.1650 2025.04.28 4cbff P P 2974 2524 2025.04.30 04:31:14.818 2025.04.30 04:31:17.792 2025.04.30 03:13:44.486 2025.04.30 03:13:47.010
13 5.0.3.1649 2025.04.21 5b2d0 P P 3006 2535 2025.04.26 10:05:07.219 2025.04.26 10:05:10.225 2025.04.26 08:46:41.640 2025.04.26 08:46:44.175
14 5.0.3.1648 2025.04.18 2f4c5 P P 2983 2530 2025.04.20 04:16:19.994 2025.04.20 04:16:22.977 2025.04.20 03:16:05.281 2025.04.20 03:16:07.811
15 5.0.3.1635 2025.04.03 f6bd1 P P 2995 2558 2025.04.18 06:44:03.957 2025.04.18 06:44:06.952 2025.04.18 05:25:24.095 2025.04.18 05:25:26.653
16 5.0.3.1635 2025.03.31 22ec6 P P 3012 2561 2025.04.03 09:49:57.419 2025.04.03 09:50:00.431 2025.04.03 08:30:53.122 2025.04.03 08:30:55.683
17 5.0.3.1633 2025.03.28 3123a P P 2996 2539 2025.03.31 09:48:25.905 2025.03.31 09:48:28.901 2025.03.31 08:29:26.404 2025.03.31 08:29:28.943
18 5.0.3.1633 2025.03.27 e0fb8 P P 3021 2544 2025.03.28 10:19:52.801 2025.03.28 10:19:55.822 2025.03.28 08:57:06.900 2025.03.28 08:57:09.444
19 5.0.3.1631 2025.03.25 bda65 P P 3019 2564 2025.03.27 10:00:23.965 2025.03.27 10:00:26.984 2025.03.27 08:56:20.599 2025.03.27 08:56:23.163
20 5.0.3.1631 2025.03.21 1925b P P 3023 2575 2025.03.25 06:34:25.694 2025.03.25 06:34:28.717 2025.03.25 05:30:20.910 2025.03.25 05:30:23.485
21 5.0.3.1629 2025.03.18 506d7 P P 2985 2534 2025.03.20 09:34:52.329 2025.03.20 09:34:55.314 2025.03.20 08:30:31.756 2025.03.20 08:30:34.290
22 5.0.3.1628 2025.03.14 16d05 P P 2999 2567 2025.03.18 09:29:01.459 2025.03.18 09:29:04.458 2025.03.18 08:26:14.483 2025.03.18 08:26:17.050
23 5.0.3.1627 2025.02.26 4e218 P P 3929 2540 2025.03.13 09:48:09.815 2025.03.13 09:48:13.744 2025.03.13 08:43:41.245 2025.03.13 08:43:43.785
24 5.0.3.1624 2025.02.25 dc3b2 P P 3027 2564 2025.02.26 15:20:24.299 2025.02.26 15:20:27.326 2025.02.26 14:16:36.717 2025.02.26 14:16:39.281
25 5.0.2.1615 2025.02.20 4a726 P P 3128 2579 2025.02.25 08:35:05.499 2025.02.25 08:35:08.627 2025.02.25 07:14:27.765 2025.02.25 07:14:30.344
26 5.0.2.1615 2025.02.14 9cb76 P P 3069 2525 2025.02.15 04:02:47.618 2025.02.15 04:02:50.687 2025.02.15 03:00:43.423 2025.02.15 03:00:45.948
27 5.0.2.1577 2025.02.07 f50a2 P P 2994 2536 2025.02.14 06:15:28.122 2025.02.14 06:15:31.116 2025.02.14 05:14:35.764 2025.02.14 05:14:38.300
28 5.0.2.1577 2024.12.24 3c80e P P 3000 2519 2025.02.06 09:28:57.453 2025.02.06 09:29:00.453 2025.02.06 08:28:06.711 2025.02.06 08:28:09.230
29 5.0.2.1576 2024.12.17 646b0 F F 3009 3584 2024.12.24 09:12:05.057 2024.12.24 09:12:08.066 2024.12.24 08:11:28.941 2024.12.24 08:11:32.525
30 5.0.2.1575 2024.12.09 9af52 F F 3029 2548 2024.12.16 09:08:53.716 2024.12.16 09:08:56.745 2024.12.16 08:08:23.107 2024.12.16 08:08:25.655
31 5.0.2.1575 2024.12.08 63d39 F F 2947 2498 2024.12.09 14:59:12.399 2024.12.09 14:59:15.346 2024.12.09 14:03:39.361 2024.12.09 14:03:41.859
32 5.0.2.1571 2024.12.08 8d11a F F 2960 2493 2024.12.09 06:12:42.422 2024.12.09 06:12:45.382 2024.12.09 05:15:13.405 2024.12.09 05:15:15.898
33 5.0.2.1567 2024.12.07 b01a2 F F 2991 2519 2024.12.08 01:50:01.480 2024.12.08 01:50:04.471 2024.12.08 00:51:53.775 2024.12.08 00:51:56.294
34 5.0.2.1567 2024.12.02 6ae74 F F 2939 2481 2024.12.04 08:54:45.705 2024.12.04 08:54:48.644 2024.12.04 07:59:07.217 2024.12.04 07:59:09.698
35 5.0.2.1567 2024.11.26 56e63 F F 2998 2548 2024.11.30 08:59:53.786 2024.11.30 08:59:56.784 2024.11.30 07:59:56.721 2024.11.30 07:59:59.269
36 5.0.2.1567 2024.11.21 96f61 F F 3005 2563 2024.11.27 08:56:41.546 2024.11.27 08:56:44.551 2024.11.27 07:57:17.573 2024.11.27 07:57:20.136
37 5.0.2.1567 2024.11.18 e1289 F E 3027 2392 2024.11.21 09:15:04.137 2024.11.21 09:15:07.164 2024.11.21 07:54:55.401 2024.11.21 07:54:57.793
38 5.0.2.1533 2024.10.23 0ec43 P P 2981 2536 2024.11.18 08:50:54.087 2024.11.18 08:50:57.068 2024.11.18 07:50:46.763 2024.11.18 07:50:49.299
39 5.0.2.1533 2024.10.22 8af7a P P 2998 2540 2024.10.23 08:58:11.282 2024.10.23 08:58:14.280 2024.10.23 07:58:41.908 2024.10.23 07:58:44.448
40 5.0.2.1532 2024.10.15 36dc0 P P 3001 2535 2024.10.22 15:00:18.606 2024.10.22 15:00:21.607 2024.10.22 14:00:51.622 2024.10.22 14:00:54.157
41 5.0.2.1518 2024.10.04 259ba P P 3010 2524 2024.10.15 08:54:22.414 2024.10.15 08:54:25.424 2024.10.15 07:55:04.860 2024.10.15 07:55:07.384
42 5.0.2.1518 2024.09.26 703cd P P 4023 2529 2024.10.03 08:59:16.984 2024.10.03 08:59:21.007 2024.10.03 07:59:40.231 2024.10.03 07:59:42.760
43 5.0.2.1489 2024.08.31 994a6 P P 3017 2547 2024.09.26 09:18:14.521 2024.09.26 09:18:17.538 2024.09.26 07:59:38.579 2024.09.26 07:59:41.126
44 5.0.2.1476 2024.08.09 843ea P P 3078 2590 2024.09.01 09:06:47.609 2024.09.01 09:06:50.687 2024.09.01 07:46:49.198 2024.09.01 07:46:51.788
45 5.0.1.1454 2024.08.08 30f9f P P 3047 2573 2024.08.09 08:48:51.316 2024.08.09 08:48:54.363 2024.08.09 07:49:29.389 2024.08.09 07:49:31.962
46 5.0.1.1453 2024.08.07 ebbc3 P P 3058 2577 2024.08.08 20:03:09.445 2024.08.08 20:03:12.503 2024.08.08 19:03:23.610 2024.08.08 19:03:26.187
47 5.0.1.1453 2024.08.06 1b9d0 P P 3867 2462 2024.08.07 08:18:38.877 2024.08.07 08:18:42.744 2024.08.07 07:23:52.842 2024.08.07 07:23:55.304
48 5.0.1.1453 2024.07.30 48044 P P 2938 2466 2024.08.03 08:16:45.631 2024.08.03 08:16:48.569 2024.08.03 07:21:49.776 2024.08.03 07:21:52.242
49 5.0.1.1453 2024.07.28 8d956 P P 3150 2458 2024.07.30 07:57:30.021 2024.07.30 07:57:33.171 2024.07.30 07:04:15.407 2024.07.30 07:04:17.865
50 5.0.1.1429 2024.07.19 8ee90 P P 3171 2536 2024.07.27 07:56:13.221 2024.07.27 07:56:16.392 2024.07.27 07:03:20.912 2024.07.27 07:03:23.448
51 5.0.1.1428 2024.07.15 00392 P P 3157 2468 2024.07.19 07:51:34.187 2024.07.19 07:51:37.344 2024.07.19 06:58:54.269 2024.07.19 06:58:56.737
52 5.0.1.1428 2024.06.30 67a31 P P 2927 2682 2024.07.15 08:03:08.177 2024.07.15 08:03:11.104 2024.07.15 07:09:09.799 2024.07.15 07:09:12.481
53 5.0.1.1415 2024.06.12 f8731 P P 3160 2444 2024.06.22 05:01:49.105 2024.06.22 05:01:52.265 2024.06.22 04:09:31.492 2024.06.22 04:09:33.936
54 5.0.1.1415 2024.06.11 31d74 P P 3094 2360 2024.06.11 23:32:29.867 2024.06.11 23:32:32.961 2024.06.11 22:43:41.146 2024.06.11 22:43:43.506
55 5.0.1.1401 2024.06.05 f9b76 P P 3173 2360 2024.06.11 04:23:24.329 2024.06.11 04:23:27.502 2024.06.11 03:34:17.386 2024.06.11 03:34:19.746
56 5.0.1.1398 2024.05.10 5e3ce P P 3095 2359 2024.05.25 05:18:23.565 2024.05.25 05:18:26.660 2024.05.25 04:29:35.751 2024.05.25 04:29:38.110
57 5.0.1.1397 2024.05.09 ee2ef P P 3094 2359 2024.05.10 05:14:21.914 2024.05.10 05:14:25.008 2024.05.10 04:26:07.937 2024.05.10 04:26:10.296
58 5.0.1.1392 2024.04.29 7dbc2 P P 3141 2359 2024.05.09 17:04:03.847 2024.05.09 17:04:06.988 2024.05.09 16:15:36.472 2024.05.09 16:15:38.831
59 5.0.1.1386 2024.04.25 c0328 P P 3126 2360 2024.04.29 05:13:20.929 2024.04.29 05:13:24.055 2024.04.29 04:25:09.008 2024.04.29 04:25:11.368
60 5.0.1.1386 2024.04.20 80571 P P 3096 2365 2024.04.25 05:15:52.826 2024.04.25 05:15:55.922 2024.04.25 04:26:57.251 2024.04.25 04:26:59.616
61 5.0.1.1378 2024.04.07 5292b P P 3126 2360 2024.04.20 05:35:33.950 2024.04.20 05:35:37.076 2024.04.20 04:25:33.673 2024.04.20 04:25:36.033
62 5.0.1.1346 2024.03.16 fe320 P P 3079 2360 2024.04.07 03:35:20.330 2024.04.07 03:35:23.409 2024.04.07 02:50:57.923 2024.04.07 02:51:00.283
63 5.0.1.1346 2024.03.02 da408 P P 3061 2358 2024.03.25 22:22:58.254 2024.03.25 22:23:01.315 2024.03.25 21:38:41.792 2024.03.25 21:38:44.150
64 5.0.1.1340 2024.02.17 08a71 P P 3031 2343 2024.03.25 23:52:40.574 2024.03.25 23:52:43.605 2024.03.25 23:08:29.552 2024.03.25 23:08:31.895
65 5.0.1.1325 2024.02.06 c98fb P P 3030 2359 2024.03.26 02:24:06.558 2024.03.26 02:24:09.588 2024.03.26 01:18:45.684 2024.03.26 01:18:48.043
66 5.0.1.1325 2024.02.02 1d438 P P 3031 2343 2024.03.26 07:41:22.413 2024.03.26 07:41:25.444 2024.03.26 06:35:10.710 2024.03.26 06:35:13.053
67 5.0.1.1325 2024.01.26 cffb6 P P 3047 2358 2024.03.26 10:07:19.090 2024.03.26 10:07:22.137 2024.03.26 09:01:56.626 2024.03.26 09:01:58.984
68 5.0.1.1325 2024.01.26 d3810 F F 3062 2374 2024.03.26 11:58:58.044 2024.03.26 11:59:01.106 2024.03.26 10:53:44.073 2024.03.26 10:53:46.447
69 5.0.1.1318 2024.01.21 a7ca3 F F 3062 2375 2024.03.26 13:28:01.399 2024.03.26 13:28:04.461 2024.03.26 12:43:51.249 2024.03.26 12:43:53.624
70 5.0.1.1318 2024.01.21 d429d F F 3078 2374 2024.03.26 15:09:38.424 2024.03.26 15:09:41.502 2024.03.26 14:25:31.028 2024.03.26 14:25:33.402
71 5.0.1.1318 2024.01.21 f1ab5 F F 3062 2359 2024.03.26 17:25:38.862 2024.03.26 17:25:41.924 2024.03.26 16:41:29.973 2024.03.26 16:41:32.332
72 5.0.1.1318 2024.01.20 46722 F F 2827 2375 2024.03.26 18:52:35.942 2024.03.26 18:52:38.769 2024.03.26 18:08:33.630 2024.03.26 18:08:36.005

Elapsed time, ms. Chart for last 72 runs:

Last commits information (all timestamps in UTC):