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   
  + set planonly;
  + select * from test t where x = 0 plan (t natural); -- 1
  + PLAN (T NATURAL)
  + select * from v_test1 v1; -- 2
  + PLAN (V1 T INDEX (TEST_X_ASC))
  + select * from v_test1 v2; -- 3
  + PLAN (V2 T INDEX (TEST_X_ASC))
  + select * from v_test1 v1 where v1.x = 0 plan (v1 natural); -- 4
  + PLAN (V1 T NATURAL)
  + select * from v_test2 v2 where v2.x = 0 plan (v2 natural); -- 5
  + PLAN (V2 T NATURAL)
  + select * from v_test1 v1 where v1.x = 0 PLAN (V1 INDEX (TEST_X_DESC)) ; -- 6
  + PLAN (V1 T INDEX (TEST_X_DESC))
  + select * from v_test2 v2 where v2.x = 0 PLAN (V2 INDEX (TEST_X_DESC)) ; -- 7
  + PLAN (V2 T INDEX (TEST_X_DESC))
  + select * from v_test1 v1 where v1.x = 50 and v1.y = 5000 PLAN (V1 INDEX (test_x_y)) ; -- 8
  + PLAN (V1 T INDEX (TEST_X_Y))
  + select * from v_test1 v2 where v2.x = 50 and v2.y = 5000 PLAN (V2 INDEX (test_y_x)) ; -- 9
  + PLAN (V2 T INDEX (TEST_Y_X))
  + select * from v_test1 v1 where v1.x + v1.y = 1000 PLAN (V1 INDEX (test_x_y)); -- 10
  + PLAN (V1 T INDEX (TEST_X_Y))
  + select * from v_test2 v2 where v2.x - v2.y = 1000 PLAN (V2 INDEX (test_x_y)); -- 11
  + PLAN (V2 T INDEX (TEST_X_Y))
  + select * from v_test1 v1 where v1.x + v1.y = 1000 PLAN (V1 INDEX (test_sum_x_y)); -- 12
  + PLAN (V1 T INDEX (TEST_SUM_X_Y))
  + select * from v_test2 v2 where v2.x - v2.y = 1000 PLAN (V2 INDEX (test_sub_x_y)); -- 13
  + PLAN (V2 T INDEX (TEST_SUB_X_Y))
  + -- NB: here optimizer will use index __NOT__ from view V3 DDL:
  + -- PLAN (V3 T INDEX (TEST_X_ASC))
  + select * from v_test3 v3; -- 14
  + PLAN (V3 T INDEX (TEST_X_ASC))
  + select * from v_test3 v3 plan ( v3 index(test_x_y) );
  + PLAN (V3 T INDEX (TEST_X_Y))
  + -- NB: here optimizer will use index __NOT__ from view V3 DDL:
  + -- PLAN (V4 V_TEST3 T INDEX (TEST_X_ASC))
  + select * from v_test4 v4; -- 15
  + PLAN (V4 V_TEST3 T INDEX (TEST_X_ASC))
  + select * from v_test4 v4 PLAN (V4 V_TEST3 T INDEX (TEST_X_Y)); -- 16
  + PLAN (V4 V_TEST3 T INDEX (TEST_X_Y))

LOG DETAILS:

2025-07-02 16:55:50.835
2025-07-02 16:55:50.840 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-02 16:55:50.844
2025-07-02 16:55:50.849 @pytest.mark.version('>=3')
2025-07-02 16:55:50.854 def test_1(act: Action):
2025-07-02 16:55:50.858 act.expected_stdout = expected_stdout
2025-07-02 16:55:50.863 act.execute()
2025-07-02 16:55:50.868 >       assert act.clean_stdout == act.clean_expected_stdout
2025-07-02 16:55:50.875 E       assert
2025-07-02 16:55:50.881 E         + set planonly;
2025-07-02 16:55:50.887 E         + select * from test t where x = 0 plan (t natural); -- 1
2025-07-02 16:55:50.893 E         + PLAN (T NATURAL)
2025-07-02 16:55:50.898 E         + select * from v_test1 v1; -- 2
2025-07-02 16:55:50.904 E         + PLAN (V1 T INDEX (TEST_X_ASC))
2025-07-02 16:55:50.910 E         + select * from v_test1 v2; -- 3
2025-07-02 16:55:50.924 E         + PLAN (V2 T INDEX (TEST_X_ASC))
2025-07-02 16:55:50.942 E         + select * from v_test1 v1 where v1.x = 0 plan (v1 natural); -- 4
2025-07-02 16:55:50.949 E         + PLAN (V1 T NATURAL)
2025-07-02 16:55:50.955 E         + select * from v_test2 v2 where v2.x = 0 plan (v2 natural); -- 5
2025-07-02 16:55:50.961 E         + PLAN (V2 T NATURAL)
2025-07-02 16:55:50.966 E         + select * from v_test1 v1 where v1.x = 0 PLAN (V1 INDEX (TEST_X_DESC)) ; -- 6
2025-07-02 16:55:50.970 E         + PLAN (V1 T INDEX (TEST_X_DESC))
2025-07-02 16:55:50.975 E         + select * from v_test2 v2 where v2.x = 0 PLAN (V2 INDEX (TEST_X_DESC)) ; -- 7
2025-07-02 16:55:50.979 E         + PLAN (V2 T INDEX (TEST_X_DESC))
2025-07-02 16:55:50.984 E         + select * from v_test1 v1 where v1.x = 50 and v1.y = 5000 PLAN (V1 INDEX (test_x_y)) ; -- 8
2025-07-02 16:55:50.989 E         + PLAN (V1 T INDEX (TEST_X_Y))
2025-07-02 16:55:50.993 E         + select * from v_test1 v2 where v2.x = 50 and v2.y = 5000 PLAN (V2 INDEX (test_y_x)) ; -- 9
2025-07-02 16:55:50.998 E         + PLAN (V2 T INDEX (TEST_Y_X))
2025-07-02 16:55:51.004 E         + select * from v_test1 v1 where v1.x + v1.y = 1000 PLAN (V1 INDEX (test_x_y)); -- 10
2025-07-02 16:55:51.008 E         + PLAN (V1 T INDEX (TEST_X_Y))
2025-07-02 16:55:51.014 E         + select * from v_test2 v2 where v2.x - v2.y = 1000 PLAN (V2 INDEX (test_x_y)); -- 11
2025-07-02 16:55:51.020 E         + PLAN (V2 T INDEX (TEST_X_Y))
2025-07-02 16:55:51.025 E         + select * from v_test1 v1 where v1.x + v1.y = 1000 PLAN (V1 INDEX (test_sum_x_y)); -- 12
2025-07-02 16:55:51.030 E         + PLAN (V1 T INDEX (TEST_SUM_X_Y))
2025-07-02 16:55:51.034 E         + select * from v_test2 v2 where v2.x - v2.y = 1000 PLAN (V2 INDEX (test_sub_x_y)); -- 13
2025-07-02 16:55:51.039 E         + PLAN (V2 T INDEX (TEST_SUB_X_Y))
2025-07-02 16:55:51.043 E         + -- NB: here optimizer will use index __NOT__ from view V3 DDL:
2025-07-02 16:55:51.048 E         + -- PLAN (V3 T INDEX (TEST_X_ASC))
2025-07-02 16:55:51.052 E         + select * from v_test3 v3; -- 14
2025-07-02 16:55:51.056 E         + PLAN (V3 T INDEX (TEST_X_ASC))
2025-07-02 16:55:51.062 E         + select * from v_test3 v3 plan ( v3 index(test_x_y) );
2025-07-02 16:55:51.067 E         + PLAN (V3 T INDEX (TEST_X_Y))
2025-07-02 16:55:51.072 E         + -- NB: here optimizer will use index __NOT__ from view V3 DDL:
2025-07-02 16:55:51.078 E         + -- PLAN (V4 V_TEST3 T INDEX (TEST_X_ASC))
2025-07-02 16:55:51.083 E         + select * from v_test4 v4; -- 15
2025-07-02 16:55:51.088 E         + PLAN (V4 V_TEST3 T INDEX (TEST_X_ASC))
2025-07-02 16:55:51.093 E         + select * from v_test4 v4 PLAN (V4 V_TEST3 T INDEX (TEST_X_Y)); -- 16
2025-07-02 16:55:51.097 E         + PLAN (V4 V_TEST3 T INDEX (TEST_X_Y))
2025-07-02 16:55:51.102
2025-07-02 16:55:51.108 tests/bugs/core_0203_test.py:124: AssertionError
2025-07-02 16:55:51.113 ---------------------------- Captured stdout setup -----------------------------
2025-07-02 16:55:51.117 Creating db: localhost:/var/tmp/qa_2024/test_139/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]>

    @pytest.mark.version('>=3')
    def test_1(act: Action):
        act.expected_stdout = expected_stdout
        act.execute()
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E         + set planonly;
E         + select * from test t where x = 0 plan (t natural); -- 1
E         + PLAN (T NATURAL)
E         + select * from v_test1 v1; -- 2
E         + PLAN (V1 T INDEX (TEST_X_ASC))
E         + select * from v_test1 v2; -- 3
E         + PLAN (V2 T INDEX (TEST_X_ASC))
E         + select * from v_test1 v1 where v1.x = 0 plan (v1 natural); -- 4
E         + PLAN (V1 T NATURAL)
E         + select * from v_test2 v2 where v2.x = 0 plan (v2 natural); -- 5
E         + PLAN (V2 T NATURAL)
E         + select * from v_test1 v1 where v1.x = 0 PLAN (V1 INDEX (TEST_X_DESC)) ; -- 6
E         + PLAN (V1 T INDEX (TEST_X_DESC))
E         + select * from v_test2 v2 where v2.x = 0 PLAN (V2 INDEX (TEST_X_DESC)) ; -- 7
E         + PLAN (V2 T INDEX (TEST_X_DESC))
E         + select * from v_test1 v1 where v1.x = 50 and v1.y = 5000 PLAN (V1 INDEX (test_x_y)) ; -- 8
E         + PLAN (V1 T INDEX (TEST_X_Y))
E         + select * from v_test1 v2 where v2.x = 50 and v2.y = 5000 PLAN (V2 INDEX (test_y_x)) ; -- 9
E         + PLAN (V2 T INDEX (TEST_Y_X))
E         + select * from v_test1 v1 where v1.x + v1.y = 1000 PLAN (V1 INDEX (test_x_y)); -- 10
E         + PLAN (V1 T INDEX (TEST_X_Y))
E         + select * from v_test2 v2 where v2.x - v2.y = 1000 PLAN (V2 INDEX (test_x_y)); -- 11
E         + PLAN (V2 T INDEX (TEST_X_Y))
E         + select * from v_test1 v1 where v1.x + v1.y = 1000 PLAN (V1 INDEX (test_sum_x_y)); -- 12
E         + PLAN (V1 T INDEX (TEST_SUM_X_Y))
E         + select * from v_test2 v2 where v2.x - v2.y = 1000 PLAN (V2 INDEX (test_sub_x_y)); -- 13
E         + PLAN (V2 T INDEX (TEST_SUB_X_Y))
E         + -- NB: here optimizer will use index __NOT__ from view V3 DDL:
E         + -- PLAN (V3 T INDEX (TEST_X_ASC))
E         + select * from v_test3 v3; -- 14
E         + PLAN (V3 T INDEX (TEST_X_ASC))
E         + select * from v_test3 v3 plan ( v3 index(test_x_y) );
E         + PLAN (V3 T INDEX (TEST_X_Y))
E         + -- NB: here optimizer will use index __NOT__ from view V3 DDL:
E         + -- PLAN (V4 V_TEST3 T INDEX (TEST_X_ASC))
E         + select * from v_test4 v4; -- 15
E         + PLAN (V4 V_TEST3 T INDEX (TEST_X_ASC))
E         + select * from v_test4 v4 PLAN (V4 V_TEST3 T INDEX (TEST_X_Y)); -- 16
E         + PLAN (V4 V_TEST3 T INDEX (TEST_X_Y))

tests/bugs/core_0203_test.py:124: 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 4.0.6.3189 2025.02.25 1a1a5 F F 999 806 2025.07.02 12:38:58.848 2025.07.02 12:38:59.847 2025.07.02 11:31:57.905 2025.07.02 11:31:58.711
2 4.0.6.3184 2025.02.24 9388c P P 655 509 2025.02.25 12:48:26.752 2025.02.25 12:48:27.407 2025.02.25 11:37:09.965 2025.02.25 11:37:10.474
3 4.0.6.3183 2025.02.16 cf6ca P P 733 454 2025.02.17 06:41:12.100 2025.02.17 06:41:12.833 2025.02.17 05:29:52.501 2025.02.17 05:29:52.955
4 4.0.6.3169 2024.12.13 42cc1 P P 692 529 2025.02.16 03:40:09.077 2025.02.16 03:40:09.769 2025.02.16 02:31:19.614 2025.02.16 02:31:20.143
5 4.0.6.3169 2024.12.08 50eb6 P P 538 377 2024.12.12 18:09:31.022 2024.12.12 18:09:31.560 2024.12.12 17:14:08.072 2024.12.12 17:14:08.449
6 4.0.6.3168 2024.11.28 48149 P P 568 354 2024.12.06 02:31:32.550 2024.12.06 02:31:33.118 2024.12.06 01:38:00.737 2024.12.06 01:38:01.091
7 4.0.6.3163 2024.10.16 2bb10 P P 599 407 2024.11.27 10:55:03.956 2024.11.27 10:55:04.555 2024.11.27 10:00:36.935 2024.11.27 10:00:37.342
8 4.0.6.3163 2024.10.15 f387e P P 494 362 2024.10.16 04:03:44.620 2024.10.16 04:03:45.114 2024.10.16 03:11:52.738 2024.10.16 03:11:53.100
9 4.0.6.3147 2024.08.31 4655b P P 624 388 2024.09.30 11:14:01.522 2024.09.30 11:14:02.146 2024.09.30 10:16:54.846 2024.09.30 10:16:55.234
10 4.0.6.3140 2024.08.16 1dd8b P P 1009 763 2024.08.31 17:04:54.492 2024.08.31 17:04:55.501 2024.08.31 15:24:07.412 2024.08.31 15:24:08.175
11 4.0.6.3140 2024.08.09 34747 P P 681 527 2024.08.16 10:14:46.483 2024.08.16 10:14:47.164 2024.08.16 09:12:40.115 2024.08.16 09:12:40.642
12 4.0.5.3110 2024.07.30 c6527 P P 705 583 2024.08.09 10:05:44.426 2024.08.09 10:05:45.131 2024.08.09 09:03:36.847 2024.08.09 09:03:37.430
13 4.0.5.3109 2024.06.11 6addf P P 422 311 2024.07.30 08:30:32.086 2024.07.30 08:30:32.508 2024.07.30 07:35:31.215 2024.07.30 07:35:31.526
14 4.0.5.3097 2024.05.09 27fa6 P P 613 428 2024.05.14 09:13:57.289 2024.05.14 09:13:57.902 2024.05.14 08:19:18.536 2024.05.14 08:19:18.964
15 4.0.5.3091 2024.04.29 bd0aa P P 422 278 2024.05.08 20:22:31.484 2024.05.08 20:22:31.906 2024.05.08 19:34:31.408 2024.05.08 19:34:31.686
16 4.0.5.3089 2024.04.25 4b9c7 P P 419 269 2024.04.27 15:06:20.173 2024.04.27 15:06:20.592 2024.04.27 14:17:49.420 2024.04.27 14:17:49.689

Elapsed time, ms. Chart for last 16 runs:

Last commits information (all timestamps in UTC):