Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
    SubQueryConversion true
  - Sub-query
  - ....-> Filter
  - ........-> Table "CUSTOMER" as "C" Access By ID
  - ............-> Bitmap
  - ................-> Index "RDB$PRIMARY22" Unique Scan
    Select Expression
    ....-> First N Records
  - ........-> Filter
  + ........-> Nested Loop Join (inner)
    ............-> Table "SALES" as "S" Full Scan
  + ............-> Filter
  + ................-> Filter
  + ....................-> Table "CUSTOMER" as "C" Access By ID
  + ........................-> Bitmap Or
  + ............................-> Bitmap
  + ................................-> Index "RDB$PRIMARY22" Unique Scan
  + ............................-> Bitmap
  + ................................-> Index "RDB$PRIMARY22" Unique Scan
    1
    1
    1
    1
    1

LOG DETAILS:

2024-09-25 11:22:43.216
2024-09-25 11:22:43.222 act = <firebird.qa.plugin.Action object at [hex]>
2024-09-25 11:22:43.228 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-09-25 11:22:43.239
2024-09-25 11:22:43.246 @pytest.mark.version('>=5.0.2,<6')
2024-09-25 11:22:43.252 def test_1(act: Action, capsys):
2024-09-25 11:22:43.258
2024-09-25 11:22:43.263 srv_cfg = driver_config.register_server(name = 'test_srv_gh_8252', config = '')
2024-09-25 11:22:43.268 db_cfg_name = f'db_cfg_8252'
2024-09-25 11:22:43.273 db_cfg_object = driver_config.register_database(name = db_cfg_name)
2024-09-25 11:22:43.278 db_cfg_object.server.value = srv_cfg.name
2024-09-25 11:22:43.283 db_cfg_object.database.value = 'employee'
2024-09-25 11:22:43.288 db_cfg_object.config.value = f"""
2024-09-25 11:22:43.293 SubQueryConversion = true
2024-09-25 11:22:43.299 """
2024-09-25 11:22:43.305
2024-09-25 11:22:43.312 with connect(db_cfg_name, user = act.db.user, password = act.db.password) as con:
2024-09-25 11:22:43.320 cur = con.cursor()
2024-09-25 11:22:43.327 cur.execute("select g.rdb$config_name, g.rdb$config_value from rdb$database r left join rdb$config g on g.rdb$config_name = 'SubQueryConversion'")
2024-09-25 11:22:43.334 for r in cur:
2024-09-25 11:22:43.340 print(r[0],r[1])
2024-09-25 11:22:43.345
2024-09-25 11:22:43.351 ps = cur.prepare(test_sql)
2024-09-25 11:22:43.356 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2024-09-25 11:22:43.362 for r in cur.execute(ps):
2024-09-25 11:22:43.369 print(r[0])
2024-09-25 11:22:43.376 con.rollback()
2024-09-25 11:22:43.383
2024-09-25 11:22:43.389
2024-09-25 11:22:43.396 act.expected_stdout = """
2024-09-25 11:22:43.402 SubQueryConversion true
2024-09-25 11:22:43.408 Sub-query
2024-09-25 11:22:43.414 ....-> Filter
2024-09-25 11:22:43.421 ........-> Table "CUSTOMER" as "C" Access By ID
2024-09-25 11:22:43.427 ............-> Bitmap
2024-09-25 11:22:43.434 ................-> Index "RDB$PRIMARY22" Unique Scan
2024-09-25 11:22:43.441 Select Expression
2024-09-25 11:22:43.448 ....-> First N Records
2024-09-25 11:22:43.455 ........-> Filter
2024-09-25 11:22:43.462 ............-> Table "SALES" as "S" Full Scan
2024-09-25 11:22:43.468 1
2024-09-25 11:22:43.473 1
2024-09-25 11:22:43.479 1
2024-09-25 11:22:43.487 1
2024-09-25 11:22:43.494 1
2024-09-25 11:22:43.501 """
2024-09-25 11:22:43.507 act.stdout = capsys.readouterr().out
2024-09-25 11:22:43.514 >       assert act.clean_stdout == act.clean_expected_stdout
2024-09-25 11:22:43.520 E       assert
2024-09-25 11:22:43.527 E           SubQueryConversion true
2024-09-25 11:22:43.533 E         - Sub-query
2024-09-25 11:22:43.539 E         - ....-> Filter
2024-09-25 11:22:43.545 E         - ........-> Table "CUSTOMER" as "C" Access By ID
2024-09-25 11:22:43.552 E         - ............-> Bitmap
2024-09-25 11:22:43.558 E         - ................-> Index "RDB$PRIMARY22" Unique Scan
2024-09-25 11:22:43.565 E           Select Expression
2024-09-25 11:22:43.571 E           ....-> First N Records
2024-09-25 11:22:43.577 E         - ........-> Filter
2024-09-25 11:22:43.583 E         + ........-> Nested Loop Join (inner)
2024-09-25 11:22:43.589 E           ............-> Table "SALES" as "S" Full Scan
2024-09-25 11:22:43.596 E         + ............-> Filter
2024-09-25 11:22:43.601 E         + ................-> Filter
2024-09-25 11:22:43.607 E         + ....................-> Table "CUSTOMER" as "C" Access By ID
2024-09-25 11:22:43.613 E         + ........................-> Bitmap Or
2024-09-25 11:22:43.620 E         + ............................-> Bitmap
2024-09-25 11:22:43.626 E         + ................................-> Index "RDB$PRIMARY22" Unique Scan
2024-09-25 11:22:43.633 E         + ............................-> Bitmap
2024-09-25 11:22:43.640 E         + ................................-> Index "RDB$PRIMARY22" Unique Scan
2024-09-25 11:22:43.647 E           1
2024-09-25 11:22:43.653 E           1
2024-09-25 11:22:43.659 E           1
2024-09-25 11:22:43.665 E           1
2024-09-25 11:22:43.671 E           1
2024-09-25 11:22:43.677
2024-09-25 11:22:43.684 tests/bugs/gh_8252_test.py:91: AssertionError
2024-09-25 11:22:43.690 ---------------------------- Captured stdout setup -----------------------------
2024-09-25 11:22:43.697 Creating db: localhost:/var/tmp/qa_2024/test_11653/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.version('>=5.0.2,<6')
    def test_1(act: Action, capsys):
    
        srv_cfg = driver_config.register_server(name = 'test_srv_gh_8252', config = '')
        db_cfg_name = f'db_cfg_8252'
        db_cfg_object = driver_config.register_database(name = db_cfg_name)
        db_cfg_object.server.value = srv_cfg.name
        db_cfg_object.database.value = 'employee'
        db_cfg_object.config.value = f"""
            SubQueryConversion = true
        """
    
        with connect(db_cfg_name, user = act.db.user, password = act.db.password) as con:
            cur = con.cursor()
            cur.execute("select g.rdb$config_name, g.rdb$config_value from rdb$database r left join rdb$config g on g.rdb$config_name = 'SubQueryConversion'")
            for r in cur:
                print(r[0],r[1])
    
            ps = cur.prepare(test_sql)
            print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
            for r in cur.execute(ps):
                print(r[0])
            con.rollback()
    
    
        act.expected_stdout = """
            SubQueryConversion true
            Sub-query
            ....-> Filter
            ........-> Table "CUSTOMER" as "C" Access By ID
            ............-> Bitmap
            ................-> Index "RDB$PRIMARY22" Unique Scan
            Select Expression
            ....-> First N Records
            ........-> Filter
            ............-> Table "SALES" as "S" Full Scan
            1
            1
            1
            1
            1
        """
        act.stdout = capsys.readouterr().out
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E           SubQueryConversion true
E         - Sub-query
E         - ....-> Filter
E         - ........-> Table "CUSTOMER" as "C" Access By ID
E         - ............-> Bitmap
E         - ................-> Index "RDB$PRIMARY22" Unique Scan
E           Select Expression
E           ....-> First N Records
E         - ........-> Filter
E         + ........-> Nested Loop Join (inner)
E           ............-> Table "SALES" as "S" Full Scan
E         + ............-> Filter
E         + ................-> Filter
E         + ....................-> Table "CUSTOMER" as "C" Access By ID
E         + ........................-> Bitmap Or
E         + ............................-> Bitmap
E         + ................................-> Index "RDB$PRIMARY22" Unique Scan
E         + ............................-> Bitmap
E         + ................................-> Index "RDB$PRIMARY22" Unique Scan
E           1
E           1
E           1
E           1
E           1

tests/bugs/gh_8252_test.py:91: 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.19 4bd4c P P 618 290 2025.06.26 12:14:04.573 2025.06.26 12:14:05.191 2025.06.26 10:54:55.962 2025.06.26 10:54:56.252
2 5.0.3.1657 2025.06.11 dae6f P P 534 301 2025.06.17 07:26:20.004 2025.06.17 07:26:20.538 2025.06.17 06:06:01.942 2025.06.17 06:06:02.243
3 5.0.3.1657 2025.06.10 dbc92 P P 493 372 2025.06.11 12:16:50.974 2025.06.11 12:16:51.467 2025.06.11 10:47:48.190 2025.06.11 10:47:48.562
4 5.0.3.1656 2025.05.20 c4b11 P P 598 290 2025.06.10 12:10:36.732 2025.06.10 12:10:37.330 2025.06.10 10:46:16.828 2025.06.10 10:46:17.118
5 5.0.3.1652 2025.05.13 f51c6 P P 597 347 2025.05.20 05:14:51.028 2025.05.20 05:14:51.625 2025.05.20 03:38:35.191 2025.05.20 03:38:35.538
6 5.0.3.1651 2025.04.30 141ef P P 671 388 2025.05.13 12:12:52.953 2025.05.13 12:12:53.624 2025.05.13 10:35:33.802 2025.05.13 10:35:34.190
7 5.0.3.1650 2025.04.28 4cbff P P 593 303 2025.05.01 11:46:40.125 2025.05.01 11:46:40.718 2025.05.01 10:10:18.780 2025.05.01 10:10:19.083
8 5.0.3.1649 2025.04.21 5b2d0 P P 663 332 2025.04.28 05:44:27.401 2025.04.28 05:44:28.064 2025.04.28 04:09:59.185 2025.04.28 04:09:59.517
9 5.0.3.1648 2025.04.18 2f4c5 P P 622 291 2025.04.20 05:36:11.987 2025.04.20 05:36:12.609 2025.04.20 04:04:21.008 2025.04.20 04:04:21.299
10 5.0.3.1635 2025.03.31 22ec6 P P 604 345 2025.04.18 11:59:16.211 2025.04.18 11:59:16.815 2025.04.18 10:23:30.541 2025.04.18 10:23:30.886
11 5.0.3.1633 2025.03.28 3123a P P 610 344 2025.03.31 10:33:12.422 2025.03.31 10:33:13.032 2025.03.31 09:03:44.075 2025.03.31 09:03:44.419
12 5.0.3.1633 2025.03.27 e0fb8 P P 633 418 2025.03.28 11:08:33.806 2025.03.28 11:08:34.439 2025.03.28 09:36:19.555 2025.03.28 09:36:19.973
13 5.0.3.1631 2025.03.21 1925b P P 594 348 2025.03.27 10:56:18.865 2025.03.27 10:56:19.459 2025.03.27 09:24:57.369 2025.03.27 09:24:57.717
14 5.0.3.1628 2025.03.14 16d05 P P 1153 858 2025.03.17 08:29:23.271 2025.03.17 08:29:24.424 2025.03.17 06:49:08.665 2025.03.17 06:49:09.523
15 5.0.3.1627 2025.02.26 4e218 P P 1176 955 2025.03.14 11:43:45.294 2025.03.14 11:43:46.470 2025.03.14 10:02:27.031 2025.03.14 10:02:27.986
16 5.0.3.1624 2025.02.25 dc3b2 P P 1118 801 2025.02.26 10:34:18.105 2025.02.26 10:34:19.223 2025.02.26 08:58:31.764 2025.02.26 08:58:32.565
17 5.0.2.1615 2025.02.20 4a726 P P 1169 734 2025.02.25 11:01:41.466 2025.02.25 11:01:42.635 2025.02.25 09:24:06.490 2025.02.25 09:24:07.224
18 5.0.2.1615 2025.02.14 9cb76 P P 1204 720 2025.02.20 07:50:54.628 2025.02.20 07:50:55.832 2025.02.20 06:17:02.886 2025.02.20 06:17:03.606
19 5.0.2.1577 2024.12.24 3c80e P P 1192 725 2025.02.14 11:04:48.628 2025.02.14 11:04:49.820 2025.02.14 09:30:36.226 2025.02.14 09:30:36.951
20 5.0.2.1576 2024.12.17 646b0 P P 903 639 2024.12.24 20:27:19.018 2024.12.24 20:27:19.921 2024.12.24 17:15:57.148 2024.12.24 17:15:57.787
21 5.0.2.1575 2024.12.08 63d39 P P 918 637 2024.12.16 08:08:42.689 2024.12.16 08:08:43.607 2024.12.16 06:58:40.814 2024.12.16 06:58:41.451
22 5.0.2.1567 2024.11.26 56e63 P P 914 610 2024.12.04 07:49:48.668 2024.12.04 07:49:49.582 2024.12.04 06:38:03.571 2024.12.04 06:38:04.181
23 5.0.2.1567 2024.11.21 96f61 P P 879 601 2024.11.26 05:31:36.507 2024.11.26 05:31:37.386 2024.11.26 04:23:11.872 2024.11.26 04:23:12.473
24 5.0.2.1567 2024.11.18 e1289 P P 922 653 2024.11.21 07:35:57.562 2024.11.21 07:35:58.484 2024.11.21 06:28:17.304 2024.11.21 06:28:17.957
25 5.0.2.1533 2024.10.23 0ec43 P P 904 625 2024.11.18 07:52:19.175 2024.11.18 07:52:20.079 2024.11.18 06:42:41.573 2024.11.18 06:42:42.198
26 5.0.2.1533 2024.10.22 8af7a P P 968 598 2024.10.23 09:49:31.868 2024.10.23 09:49:32.836 2024.10.23 08:38:43.900 2024.10.23 08:38:44.498
27 5.0.2.1532 2024.10.15 36dc0 P P 936 624 2024.10.22 20:01:17.661 2024.10.22 20:01:18.597 2024.10.22 18:50:54.621 2024.10.22 18:50:55.245
28 5.0.2.1518 2024.10.04 259ba P P 984 756 2024.10.15 09:34:54.274 2024.10.15 09:34:55.258 2024.10.15 08:24:21.249 2024.10.15 08:24:22.005
29 5.0.2.1518 2024.09.26 703cd P P 976 621 2024.10.03 08:02:22.389 2024.10.03 08:02:23.365 2024.10.03 06:49:31.051 2024.10.03 06:49:31.672
30 5.0.2.1489 2024.09.05 40838 F F 906 647 2024.09.25 08:03:19.103 2024.09.25 08:03:20.009 2024.09.25 06:49:35.406 2024.09.25 06:49:36.053

Elapsed time, ms. Chart for last 30 runs:

Last commits information (all timestamps in UTC):