2 @message |
assert
select count(*) from test where x is null
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_X_ASC" Range Scan (full match)
+ ....................-> Index "TEST_X_ASC" Unique Scan
select count(*) from test where y is null
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_Y_DESC" Range Scan (full match)
+ ....................-> Index "TEST_Y_DESC" Unique Scan
select count(*) from test where x+y is null
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
+ ....................-> Index "TEST_X_PLUS_Y" Unique Scan
select count(*) from test where z is null and mod(id,2) = 0
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
+ ....................-> Index "TEST_Z_PARTIAL" Unique Scan
select count(*) from test where x-y is null and mod(id,3) <= 1
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
+ ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Unique Scan
select count(*) from test where x is not distinct from null
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_X_ASC" Range Scan (full match)
+ ....................-> Index "TEST_X_ASC" Unique Scan
select count(*) from test where y is not distinct from null
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_Y_DESC" Range Scan (full match)
+ ....................-> Index "TEST_Y_DESC" Unique Scan
select count(*) from test where x+y is not distinct from null
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
+ ....................-> Index "TEST_X_PLUS_Y" Unique Scan
select count(*) from test where z is not distinct from null and mod(id,2) = 0
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
+ ....................-> Index "TEST_Z_PARTIAL" Unique Scan
select count(*) from test where x-y is not distinct from null and mod(id,3) <= 1
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
- ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
+ ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Unique Scan
LOG DETAILS:
2024-11-18 11:11:24.934
2024-11-18 11:11:24.942 act = <firebird.qa.plugin.Action object at [hex]>
2024-11-18 11:11:24.949 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-11-18 11:11:24.955
2024-11-18 11:11:24.962 @pytest.mark.version('>=5.0.2')
2024-11-18 11:11:24.968 def test_1(act: Action, capsys):
2024-11-18 11:11:24.974
2024-11-18 11:11:24.980 qry_map = {
2024-11-18 11:11:24.986 0 : 'select count(*) from test where x is null'
2024-11-18 11:11:24.994 ,1 : 'select count(*) from test where y is null'
2024-11-18 11:11:25.000 ,2 : 'select count(*) from test where x+y is null'
2024-11-18 11:11:25.005 ,3 : 'select count(*) from test where z is null and mod(id,2) = 0'
2024-11-18 11:11:25.010 ,4 : 'select count(*) from test where x-y is null and mod(id,3) <= 1'
2024-11-18 11:11:25.015 ,5 : 'select count(*) from test where x is not distinct from null'
2024-11-18 11:11:25.020 ,6 : 'select count(*) from test where y is not distinct from null'
2024-11-18 11:11:25.026 ,7 : 'select count(*) from test where x+y is not distinct from null'
2024-11-18 11:11:25.032 ,8 : 'select count(*) from test where z is not distinct from null and mod(id,2) = 0'
2024-11-18 11:11:25.038 ,9 : 'select count(*) from test where x-y is not distinct from null and mod(id,3) <= 1'
2024-11-18 11:11:25.044 }
2024-11-18 11:11:25.050
2024-11-18 11:11:25.055 with act.db.connect() as con:
2024-11-18 11:11:25.060 cur = con.cursor()
2024-11-18 11:11:25.065 for k,v in qry_map.items():
2024-11-18 11:11:25.070 ps = cur.prepare(v)
2024-11-18 11:11:25.076 # Print explained plan with padding eash line by dots in order to see indentations:
2024-11-18 11:11:25.081 print(v)
2024-11-18 11:11:25.087 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2024-11-18 11:11:25.093 print('')
2024-11-18 11:11:25.098
2024-11-18 11:11:25.103 # 26.10.2024. ::: ACHTUNG :::
2024-11-18 11:11:25.108 # MANDATORY OTHERWISE PYTEST WILL HANG AT FINAL POINT:
2024-11-18 11:11:25.117 ps.free()
2024-11-18 11:11:25.127
2024-11-18 11:11:25.134
2024-11-18 11:11:25.139 expected_out = f"""
2024-11-18 11:11:25.145 {qry_map[0]}
2024-11-18 11:11:25.150 Select Expression
2024-11-18 11:11:25.156 ....-> Aggregate
2024-11-18 11:11:25.162 ........-> Filter
2024-11-18 11:11:25.168 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.175 ................-> Bitmap
2024-11-18 11:11:25.180 ....................-> Index "TEST_X_ASC" Range Scan (full match)
2024-11-18 11:11:25.186
2024-11-18 11:11:25.191 {qry_map[1]}
2024-11-18 11:11:25.197 Select Expression
2024-11-18 11:11:25.203 ....-> Aggregate
2024-11-18 11:11:25.211 ........-> Filter
2024-11-18 11:11:25.217 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.222 ................-> Bitmap
2024-11-18 11:11:25.228 ....................-> Index "TEST_Y_DESC" Range Scan (full match)
2024-11-18 11:11:25.233
2024-11-18 11:11:25.238 {qry_map[2]}
2024-11-18 11:11:25.242 Select Expression
2024-11-18 11:11:25.247 ....-> Aggregate
2024-11-18 11:11:25.253 ........-> Filter
2024-11-18 11:11:25.258 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.271 ................-> Bitmap
2024-11-18 11:11:25.279 ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
2024-11-18 11:11:25.285
2024-11-18 11:11:25.291 {qry_map[3]}
2024-11-18 11:11:25.296 Select Expression
2024-11-18 11:11:25.301 ....-> Aggregate
2024-11-18 11:11:25.307 ........-> Filter
2024-11-18 11:11:25.313 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.319 ................-> Bitmap
2024-11-18 11:11:25.324 ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
2024-11-18 11:11:25.329
2024-11-18 11:11:25.334 {qry_map[4]}
2024-11-18 11:11:25.339 Select Expression
2024-11-18 11:11:25.344 ....-> Aggregate
2024-11-18 11:11:25.350 ........-> Filter
2024-11-18 11:11:25.355 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.361 ................-> Bitmap
2024-11-18 11:11:25.367 ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
2024-11-18 11:11:25.376
2024-11-18 11:11:25.383 {qry_map[5]}
2024-11-18 11:11:25.388 Select Expression
2024-11-18 11:11:25.393 ....-> Aggregate
2024-11-18 11:11:25.399 ........-> Filter
2024-11-18 11:11:25.405 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.413 ................-> Bitmap
2024-11-18 11:11:25.420 ....................-> Index "TEST_X_ASC" Range Scan (full match)
2024-11-18 11:11:25.428
2024-11-18 11:11:25.438 {qry_map[6]}
2024-11-18 11:11:25.449 Select Expression
2024-11-18 11:11:25.456 ....-> Aggregate
2024-11-18 11:11:25.462 ........-> Filter
2024-11-18 11:11:25.469 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.474 ................-> Bitmap
2024-11-18 11:11:25.479 ....................-> Index "TEST_Y_DESC" Range Scan (full match)
2024-11-18 11:11:25.484
2024-11-18 11:11:25.490 {qry_map[7]}
2024-11-18 11:11:25.494 Select Expression
2024-11-18 11:11:25.500 ....-> Aggregate
2024-11-18 11:11:25.507 ........-> Filter
2024-11-18 11:11:25.513 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.519 ................-> Bitmap
2024-11-18 11:11:25.524 ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
2024-11-18 11:11:25.529
2024-11-18 11:11:25.534 {qry_map[8]}
2024-11-18 11:11:25.539 Select Expression
2024-11-18 11:11:25.545 ....-> Aggregate
2024-11-18 11:11:25.551 ........-> Filter
2024-11-18 11:11:25.559 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.564 ................-> Bitmap
2024-11-18 11:11:25.570 ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
2024-11-18 11:11:25.575
2024-11-18 11:11:25.580 {qry_map[9]}
2024-11-18 11:11:25.585 Select Expression
2024-11-18 11:11:25.591 ....-> Aggregate
2024-11-18 11:11:25.596 ........-> Filter
2024-11-18 11:11:25.602 ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.608 ................-> Bitmap
2024-11-18 11:11:25.614 ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
2024-11-18 11:11:25.619 """
2024-11-18 11:11:25.625
2024-11-18 11:11:25.631 act.expected_stdout = expected_out
2024-11-18 11:11:25.635
2024-11-18 11:11:25.640 act.stdout = capsys.readouterr().out
2024-11-18 11:11:25.645 > assert act.clean_stdout == act.clean_expected_stdout
2024-11-18 11:11:25.650 E assert
2024-11-18 11:11:25.655 E select count(*) from test where x is null
2024-11-18 11:11:25.661 E Select Expression
2024-11-18 11:11:25.667 E ....-> Aggregate
2024-11-18 11:11:25.675 E ........-> Filter
2024-11-18 11:11:25.683 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.689 E ................-> Bitmap
2024-11-18 11:11:25.694 E - ....................-> Index "TEST_X_ASC" Range Scan (full match)
2024-11-18 11:11:25.706 E + ....................-> Index "TEST_X_ASC" Unique Scan
2024-11-18 11:11:25.717 E select count(*) from test where y is null
2024-11-18 11:11:25.723 E Select Expression
2024-11-18 11:11:25.728 E ....-> Aggregate
2024-11-18 11:11:25.734 E ........-> Filter
2024-11-18 11:11:25.741 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.747 E ................-> Bitmap
2024-11-18 11:11:25.752 E - ....................-> Index "TEST_Y_DESC" Range Scan (full match)
2024-11-18 11:11:25.762 E + ....................-> Index "TEST_Y_DESC" Unique Scan
2024-11-18 11:11:25.773 E select count(*) from test where x+y is null
2024-11-18 11:11:25.778 E Select Expression
2024-11-18 11:11:25.783 E ....-> Aggregate
2024-11-18 11:11:25.789 E ........-> Filter
2024-11-18 11:11:25.795 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.801 E ................-> Bitmap
2024-11-18 11:11:25.806 E - ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
2024-11-18 11:11:25.816 E + ....................-> Index "TEST_X_PLUS_Y" Unique Scan
2024-11-18 11:11:25.828 E select count(*) from test where z is null and mod(id,2) = 0
2024-11-18 11:11:25.834 E Select Expression
2024-11-18 11:11:25.839 E ....-> Aggregate
2024-11-18 11:11:25.844 E ........-> Filter
2024-11-18 11:11:25.850 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.856 E ................-> Bitmap
2024-11-18 11:11:25.863 E - ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
2024-11-18 11:11:25.876 E + ....................-> Index "TEST_Z_PARTIAL" Unique Scan
2024-11-18 11:11:25.887 E select count(*) from test where x-y is null and mod(id,3) <= 1
2024-11-18 11:11:25.892 E Select Expression
2024-11-18 11:11:25.897 E ....-> Aggregate
2024-11-18 11:11:25.903 E ........-> Filter
2024-11-18 11:11:25.908 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.914 E ................-> Bitmap
2024-11-18 11:11:25.922 E - ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
2024-11-18 11:11:25.935 E + ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Unique Scan
2024-11-18 11:11:25.948 E select count(*) from test where x is not distinct from null
2024-11-18 11:11:25.954 E Select Expression
2024-11-18 11:11:25.961 E ....-> Aggregate
2024-11-18 11:11:25.968 E ........-> Filter
2024-11-18 11:11:25.975 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:25.980 E ................-> Bitmap
2024-11-18 11:11:25.986 E - ....................-> Index "TEST_X_ASC" Range Scan (full match)
2024-11-18 11:11:25.998 E + ....................-> Index "TEST_X_ASC" Unique Scan
2024-11-18 11:11:26.010 E select count(*) from test where y is not distinct from null
2024-11-18 11:11:26.015 E Select Expression
2024-11-18 11:11:26.019 E ....-> Aggregate
2024-11-18 11:11:26.025 E ........-> Filter
2024-11-18 11:11:26.031 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:26.037 E ................-> Bitmap
2024-11-18 11:11:26.043 E - ....................-> Index "TEST_Y_DESC" Range Scan (full match)
2024-11-18 11:11:26.055 E + ....................-> Index "TEST_Y_DESC" Unique Scan
2024-11-18 11:11:26.067 E select count(*) from test where x+y is not distinct from null
2024-11-18 11:11:26.075 E Select Expression
2024-11-18 11:11:26.081 E ....-> Aggregate
2024-11-18 11:11:26.086 E ........-> Filter
2024-11-18 11:11:26.092 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:26.097 E ................-> Bitmap
2024-11-18 11:11:26.102 E - ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
2024-11-18 11:11:26.114 E + ....................-> Index "TEST_X_PLUS_Y" Unique Scan
2024-11-18 11:11:26.124 E select count(*) from test where z is not distinct from null and mod(id,2) = 0
2024-11-18 11:11:26.129 E Select Expression
2024-11-18 11:11:26.137 E ....-> Aggregate
2024-11-18 11:11:26.145 E ........-> Filter
2024-11-18 11:11:26.150 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:26.155 E ................-> Bitmap
2024-11-18 11:11:26.161 E - ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
2024-11-18 11:11:26.171 E + ....................-> Index "TEST_Z_PARTIAL" Unique Scan
2024-11-18 11:11:26.182 E select count(*) from test where x-y is not distinct from null and mod(id,3) <= 1
2024-11-18 11:11:26.187 E Select Expression
2024-11-18 11:11:26.193 E ....-> Aggregate
2024-11-18 11:11:26.199 E ........-> Filter
2024-11-18 11:11:26.205 E ............-> Table "TEST" Access By ID
2024-11-18 11:11:26.211 E ................-> Bitmap
2024-11-18 11:11:26.220 E - ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
2024-11-18 11:11:26.234 E + ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Unique Scan
2024-11-18 11:11:26.243
2024-11-18 11:11:26.250 tests/bugs/gh_8290_test.py:158: AssertionError
2024-11-18 11:11:26.258 ---------------------------- Captured stdout setup -----------------------------
2024-11-18 11:11:26.265 Creating db: localhost:/var/tmp/qa_2024/test_11670/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')
def test_1(act: Action, capsys):
qry_map = {
0 : 'select count(*) from test where x is null'
,1 : 'select count(*) from test where y is null'
,2 : 'select count(*) from test where x+y is null'
,3 : 'select count(*) from test where z is null and mod(id,2) = 0'
,4 : 'select count(*) from test where x-y is null and mod(id,3) <= 1'
,5 : 'select count(*) from test where x is not distinct from null'
,6 : 'select count(*) from test where y is not distinct from null'
,7 : 'select count(*) from test where x+y is not distinct from null'
,8 : 'select count(*) from test where z is not distinct from null and mod(id,2) = 0'
,9 : 'select count(*) from test where x-y is not distinct from null and mod(id,3) <= 1'
}
with act.db.connect() as con:
cur = con.cursor()
for k,v in qry_map.items():
ps = cur.prepare(v)
# Print explained plan with padding eash line by dots in order to see indentations:
print(v)
print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
print('')
# 26.10.2024. ::: ACHTUNG :::
# MANDATORY OTHERWISE PYTEST WILL HANG AT FINAL POINT:
ps.free()
expected_out = f"""
{qry_map[0]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_X_ASC" Range Scan (full match)
{qry_map[1]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_Y_DESC" Range Scan (full match)
{qry_map[2]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
{qry_map[3]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
{qry_map[4]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
{qry_map[5]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_X_ASC" Range Scan (full match)
{qry_map[6]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_Y_DESC" Range Scan (full match)
{qry_map[7]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
{qry_map[8]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
{qry_map[9]}
Select Expression
....-> Aggregate
........-> Filter
............-> Table "TEST" Access By ID
................-> Bitmap
....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
"""
act.expected_stdout = expected_out
act.stdout = capsys.readouterr().out
> assert act.clean_stdout == act.clean_expected_stdout
E assert
E select count(*) from test where x is null
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_X_ASC" Range Scan (full match)
E + ....................-> Index "TEST_X_ASC" Unique Scan
E select count(*) from test where y is null
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_Y_DESC" Range Scan (full match)
E + ....................-> Index "TEST_Y_DESC" Unique Scan
E select count(*) from test where x+y is null
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
E + ....................-> Index "TEST_X_PLUS_Y" Unique Scan
E select count(*) from test where z is null and mod(id,2) = 0
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
E + ....................-> Index "TEST_Z_PARTIAL" Unique Scan
E select count(*) from test where x-y is null and mod(id,3) <= 1
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
E + ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Unique Scan
E select count(*) from test where x is not distinct from null
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_X_ASC" Range Scan (full match)
E + ....................-> Index "TEST_X_ASC" Unique Scan
E select count(*) from test where y is not distinct from null
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_Y_DESC" Range Scan (full match)
E + ....................-> Index "TEST_Y_DESC" Unique Scan
E select count(*) from test where x+y is not distinct from null
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_X_PLUS_Y" Range Scan (full match)
E + ....................-> Index "TEST_X_PLUS_Y" Unique Scan
E select count(*) from test where z is not distinct from null and mod(id,2) = 0
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_Z_PARTIAL" Range Scan (full match)
E + ....................-> Index "TEST_Z_PARTIAL" Unique Scan
E select count(*) from test where x-y is not distinct from null and mod(id,3) <= 1
E Select Expression
E ....-> Aggregate
E ........-> Filter
E ............-> Table "TEST" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Range Scan (full match)
E + ....................-> Index "TEST_X_MINUS_Y_PARTIAL" Unique Scan
tests/bugs/gh_8290_test.py:158: AssertionError
|