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

Annotation type Annotation details
1 @message
assert   
    Select Expression
    ....-> Singularity Check
    ........-> Aggregate
    ............-> Nested Loop Join (inner)
    ................-> Filter
  - ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
  - ........................-> Bitmap
  - ............................-> Index "RDB$INDEX_nn" Range Scan (full match)
  - ................-> Filter
    ....................-> Table "RDB$PROCEDURES" as "PRC" Access By ID
    ........................-> Bitmap
  + ............................-> Index "RDB$INDEX_nn" Range Scan (partial match: 1/2)
  + ................-> Filter
  + ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
  + ........................-> Bitmap And
  + ............................-> Bitmap
  - ............................-> Index "RDB$INDEX_nn" Unique Scan
  + ................................-> Index "RDB$INDEX_nn" Range Scan (full match)
  + ............................-> Bitmap
  + ................................-> Index "RDB$INDEX_nn" Range Scan (full match)
    Select Expression
    ....-> Filter
    ........-> Table "RDB$RELATION_FIELDS" as "X" Access By ID
    ............-> Bitmap
    ................-> Index "RDB$INDEX_nn" Range Scan (full match)

LOG DETAILS:

2024-07-15 14:16:13.817
2024-07-15 14:16:13.817 act = <firebird.qa.plugin.Action object at [hex]>
2024-07-15 14:16:13.817 tmp_fbk = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_11340/gh_8161.tmp.fbk')
2024-07-15 14:16:13.817 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-07-15 14:16:13.817
2024-07-15 14:16:13.817     @pytest.mark.version('>=3.0.12')
2024-07-15 14:16:13.817     def test_1(act: Action, tmp_fbk: Path, capsys):
2024-07-15 14:16:13.817         zipped_fbk_file = zipfile.Path(act.files_dir / 'gh_8161.zip', at = 'gh_8161.fbk')
2024-07-15 14:16:13.817         tmp_fbk.write_bytes(zipped_fbk_file.read_bytes())
2024-07-15 14:16:13.817
2024-07-15 14:16:13.817         act.gbak(switches = ['-rep', str(tmp_fbk), act.db.db_path], combine_output = True, io_enc = locale.getpreferredencoding())
2024-07-15 14:16:13.817         print(act.stdout) # must be empty
2024-07-15 14:16:13.817
2024-07-15 14:16:13.818         test_sql = """
2024-07-15 14:16:13.818             execute block as
2024-07-15 14:16:13.818                 declare relname varchar(32);
2024-07-15 14:16:13.818                 declare cnt int;
2024-07-15 14:16:13.818             begin
2024-07-15 14:16:13.818                 for select X.RDB$RELATION_NAME
2024-07-15 14:16:13.818                       from RDB$RELATION_FIELDS X
2024-07-15 14:16:13.818                      where X.RDB$FIELD_SOURCE = 'BOOL_EMUL'
2024-07-15 14:16:13.818                     into :relname
2024-07-15 14:16:13.818                 do begin
2024-07-15 14:16:13.818                    select count(*)
2024-07-15 14:16:13.818                      from RDB$DEPENDENCIES DEP, RDB$PROCEDURES PRC
2024-07-15 14:16:13.818                     where DEP.RDB$DEPENDED_ON_NAME = :relname
2024-07-15 14:16:13.818                       AND DEP.RDB$FIELD_NAME = :relname
2024-07-15 14:16:13.818                       AND DEP.RDB$DEPENDED_ON_TYPE = 0 /* obj_relation */
2024-07-15 14:16:13.818                       AND DEP.RDB$DEPENDENT_TYPE = 5 /* obj_procedure */
2024-07-15 14:16:13.818                       AND DEP.RDB$DEPENDENT_NAME = PRC.RDB$PROCEDURE_NAME
2024-07-15 14:16:13.818                       AND PRC.RDB$PACKAGE_NAME IS NULL
2024-07-15 14:16:13.818                   into :cnt;
2024-07-15 14:16:13.818                 end
2024-07-15 14:16:13.818             end
2024-07-15 14:16:13.819         """
2024-07-15 14:16:13.819
2024-07-15 14:16:13.819         with act.db.connect() as con:
2024-07-15 14:16:13.819             cur = con.cursor()
2024-07-15 14:16:13.819             ps = cur.prepare(test_sql)
2024-07-15 14:16:13.819             print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2024-07-15 14:16:13.819
2024-07-15 14:16:13.819         expected_stdout = """
2024-07-15 14:16:13.819             Select Expression
2024-07-15 14:16:13.819             ....-> Singularity Check
2024-07-15 14:16:13.819             ........-> Aggregate
2024-07-15 14:16:13.819             ............-> Nested Loop Join (inner)
2024-07-15 14:16:13.819             ................-> Filter
2024-07-15 14:16:13.819             ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
2024-07-15 14:16:13.819             ........................-> Bitmap
2024-07-15 14:16:13.819             ............................-> Index "RDB$INDEX_28" Range Scan (full match)
2024-07-15 14:16:13.819             ................-> Filter
2024-07-15 14:16:13.819             ....................-> Table "RDB$PROCEDURES" as "PRC" Access By ID
2024-07-15 14:16:13.820             ........................-> Bitmap
2024-07-15 14:16:13.820             ............................-> Index "RDB$INDEX_21" Unique Scan
2024-07-15 14:16:13.820             Select Expression
2024-07-15 14:16:13.820             ....-> Filter
2024-07-15 14:16:13.820             ........-> Table "RDB$RELATION_FIELDS" as "X" Access By ID
2024-07-15 14:16:13.820             ............-> Bitmap
2024-07-15 14:16:13.820             ................-> Index "RDB$INDEX_3" Range Scan (full match)
2024-07-15 14:16:13.820         """
2024-07-15 14:16:13.820         act.expected_stdout = expected_stdout
2024-07-15 14:16:13.820         act.stdout = capsys.readouterr().out
2024-07-15 14:16:13.820 >       assert act.clean_stdout == act.clean_expected_stdout
2024-07-15 14:16:13.820 E       assert
2024-07-15 14:16:13.820 E           Select Expression
2024-07-15 14:16:13.820 E           ....-> Singularity Check
2024-07-15 14:16:13.820 E           ........-> Aggregate
2024-07-15 14:16:13.820 E           ............-> Nested Loop Join (inner)
2024-07-15 14:16:13.820 E           ................-> Filter
2024-07-15 14:16:13.820 E         - ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
2024-07-15 14:16:13.820 E         - ........................-> Bitmap
2024-07-15 14:16:13.820 E         - ............................-> Index "RDB$INDEX_nn" Range Scan (full match)
2024-07-15 14:16:13.820 E         - ................-> Filter
2024-07-15 14:16:13.821 E           ....................-> Table "RDB$PROCEDURES" as "PRC" Access By ID
2024-07-15 14:16:13.821 E           ........................-> Bitmap
2024-07-15 14:16:13.821 E         + ............................-> Index "RDB$INDEX_nn" Range Scan (partial match: 1/2)
2024-07-15 14:16:13.821 E         + ................-> Filter
2024-07-15 14:16:13.821 E         + ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
2024-07-15 14:16:13.821 E         + ........................-> Bitmap And
2024-07-15 14:16:13.821 E         + ............................-> Bitmap
2024-07-15 14:16:13.821 E         - ............................-> Index "RDB$INDEX_nn" Unique Scan
2024-07-15 14:16:13.821 E         + ................................-> Index "RDB$INDEX_nn" Range Scan (full match)
2024-07-15 14:16:13.821 E         + ............................-> Bitmap
2024-07-15 14:16:13.821 E         + ................................-> Index "RDB$INDEX_nn" Range Scan (full match)
2024-07-15 14:16:13.821 E           Select Expression
2024-07-15 14:16:13.821 E           ....-> Filter
2024-07-15 14:16:13.821 E           ........-> Table "RDB$RELATION_FIELDS" as "X" Access By ID
2024-07-15 14:16:13.821 E           ............-> Bitmap
2024-07-15 14:16:13.821 E           ................-> Index "RDB$INDEX_nn" Range Scan (full match)
2024-07-15 14:16:13.821
2024-07-15 14:16:13.822 tests\bugs\gh_8161_test.py:103: AssertionError
2024-07-15 14:16:13.822 ---------------------------- Captured stdout setup ----------------------------
2024-07-15 14:16:13.822 Cached db: db-12.0-None-None-NONE.fdb [page_size=None, sql_dialect=None, charset='NONE'
2 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_fbk = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_11340/gh_8161.tmp.fbk')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.version('>=3.0.12')
    def test_1(act: Action, tmp_fbk: Path, capsys):
        zipped_fbk_file = zipfile.Path(act.files_dir / 'gh_8161.zip', at = 'gh_8161.fbk')
        tmp_fbk.write_bytes(zipped_fbk_file.read_bytes())
    
        act.gbak(switches = ['-rep', str(tmp_fbk), act.db.db_path], combine_output = True, io_enc = locale.getpreferredencoding())
        print(act.stdout) # must be empty
    
        test_sql = """
            execute block as
                declare relname varchar(32);
                declare cnt int;
            begin
                for select X.RDB$RELATION_NAME
                      from RDB$RELATION_FIELDS X
                     where X.RDB$FIELD_SOURCE = 'BOOL_EMUL'
                    into :relname
                do begin
                   select count(*)
                     from RDB$DEPENDENCIES DEP, RDB$PROCEDURES PRC
                    where DEP.RDB$DEPENDED_ON_NAME = :relname
                      AND DEP.RDB$FIELD_NAME = :relname
                      AND DEP.RDB$DEPENDED_ON_TYPE = 0 /* obj_relation */
                      AND DEP.RDB$DEPENDENT_TYPE = 5 /* obj_procedure */
                      AND DEP.RDB$DEPENDENT_NAME = PRC.RDB$PROCEDURE_NAME
                      AND PRC.RDB$PACKAGE_NAME IS NULL
                  into :cnt;
                end
            end
        """
    
        with act.db.connect() as con:
            cur = con.cursor()
            ps = cur.prepare(test_sql)
            print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
    
        expected_stdout = """
            Select Expression
            ....-> Singularity Check
            ........-> Aggregate
            ............-> Nested Loop Join (inner)
            ................-> Filter
            ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
            ........................-> Bitmap
            ............................-> Index "RDB$INDEX_28" Range Scan (full match)
            ................-> Filter
            ....................-> Table "RDB$PROCEDURES" as "PRC" Access By ID
            ........................-> Bitmap
            ............................-> Index "RDB$INDEX_21" Unique Scan
            Select Expression
            ....-> Filter
            ........-> Table "RDB$RELATION_FIELDS" as "X" Access By ID
            ............-> Bitmap
            ................-> Index "RDB$INDEX_3" Range Scan (full match)
        """
        act.expected_stdout = expected_stdout
        act.stdout = capsys.readouterr().out
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E           Select Expression
E           ....-> Singularity Check
E           ........-> Aggregate
E           ............-> Nested Loop Join (inner)
E           ................-> Filter
E         - ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
E         - ........................-> Bitmap
E         - ............................-> Index "RDB$INDEX_nn" Range Scan (full match)
E         - ................-> Filter
E           ....................-> Table "RDB$PROCEDURES" as "PRC" Access By ID
E           ........................-> Bitmap
E         + ............................-> Index "RDB$INDEX_nn" Range Scan (partial match: 1/2)
E         + ................-> Filter
E         + ....................-> Table "RDB$DEPENDENCIES" as "DEP" Access By ID
E         + ........................-> Bitmap And
E         + ............................-> Bitmap
E         - ............................-> Index "RDB$INDEX_nn" Unique Scan
E         + ................................-> Index "RDB$INDEX_nn" Range Scan (full match)
E         + ............................-> Bitmap
E         + ................................-> Index "RDB$INDEX_nn" Range Scan (full match)
E           Select Expression
E           ....-> Filter
E           ........-> Table "RDB$RELATION_FIELDS" as "X" Access By ID
E           ............-> Bitmap
E           ................-> Index "RDB$INDEX_nn" Range Scan (full match)

tests\bugs\gh_8161_test.py:103: 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 3.0.13.33809 2025.05.14 6638e P P 1061 833 2025.06.26 15:03:05.621 2025.06.26 15:03:06.682 2025.06.26 14:24:42.301 2025.06.26 14:24:43.134
2 3.0.13.33809 2025.05.06 28ad0 P P 1039 885 2025.05.14 08:27:46.336 2025.05.14 08:27:47.375 2025.05.14 07:48:39.266 2025.05.14 07:48:40.151
3 3.0.13.33808 2025.04.25 28426 P P 1033 821 2025.05.06 13:38:30.330 2025.05.06 13:38:31.363 2025.05.06 13:01:19.538 2025.05.06 13:01:20.359
4 3.0.13.33803 2025.04.23 307b8 P P 1035 825 2025.04.25 13:47:06.978 2025.04.25 13:47:08.013 2025.04.25 13:09:45.946 2025.04.25 13:09:46.771
5 3.0.13.33803 2025.03.25 ea22a P P 1030 824 2025.04.20 08:18:25.101 2025.04.20 08:18:26.131 2025.04.20 07:19:21.284 2025.04.20 07:19:22.108
6 3.0.13.33803 2025.02.25 08ebd P P 1082 866 2025.03.25 10:34:25.476 2025.03.25 10:34:26.558 2025.03.25 09:34:01.166 2025.03.25 09:34:02.032
7 3.0.13.33796 2025.01.29 0ab85 P P 1076 839 2025.02.25 12:24:49.212 2025.02.25 12:24:50.288 2025.02.25 11:47:03.591 2025.02.25 11:47:04.430
8 3.0.13.33796 2025.01.14 99b3b P P 1032 858 2025.01.24 11:29:17.177 2025.01.24 11:29:18.209 2025.01.24 10:51:50.800 2025.01.24 10:51:51.658
9 3.0.13.33795 2024.12.13 fbbd9 P P 1119 840 2025.01.01 12:40:24.521 2025.01.01 12:40:25.640 2025.01.01 12:02:24.650 2025.01.01 12:02:25.490
10 3.0.13.33795 2024.11.24 b8847 P P 1055 839 2024.12.11 12:38:09.275 2024.12.11 12:38:10.330 2024.12.11 12:00:22.971 2024.12.11 12:00:23.810
11 3.0.13.33794 2024.10.15 abe09 P P 1103 846 2024.11.22 12:14:36.515 2024.11.22 12:14:37.618 2024.11.22 11:36:38.643 2024.11.22 11:36:39.489
12 3.0.13.33793 2024.10.14 f831a P P 1045 847 2024.10.15 12:42:04.595 2024.10.15 12:42:05.640 2024.10.15 12:04:01.612 2024.10.15 12:04:02.459
13 3.0.13.33793 2024.10.04 82ccc P P 1043 833 2024.10.12 12:41:05.276 2024.10.12 12:41:06.319 2024.10.12 12:03:19.171 2024.10.12 12:03:20.004
14 3.0.13.33792 2024.08.31 d8791 P P 1106 826 2024.10.03 12:49:26.192 2024.10.03 12:49:27.298 2024.10.03 12:10:36.449 2024.10.03 12:10:37.275
15 3.0.13.33787 2024.08.23 8ee81 P P 1139 929 2024.09.01 12:59:45.410 2024.09.01 12:59:46.549 2024.09.01 12:17:57.162 2024.09.01 12:17:58.091
16 3.0.13.33787 2024.08.09 df740 P P 1220 1017 2024.08.23 12:56:12.404 2024.08.23 12:56:13.624 2024.08.23 12:14:21.949 2024.08.23 12:14:22.966
17 3.0.12.33746 2024.07.15 11dd4 F F 1213 999 2024.08.09 12:16:29.690 2024.08.09 12:16:30.903 2024.08.09 11:34:54.557 2024.08.09 11:34:55.556
18 3.0.12.33746 2024.06.11 8a5eb F F 1025 891 2024.07.15 11:09:19.002 2024.07.15 11:09:20.027 2024.07.15 10:32:35.786 2024.07.15 10:32:36.677

Elapsed time, ms. Chart for last 18 runs:

Last commits information (all timestamps in UTC):