2 @message |
assert
Initial state:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
1 lowered "D" w/accent
2 UPPERED "D" w/accent
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
1 lowered "D" w/accent
2 UPPERED "D" w/accent
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2 UPPERED "D" w/accent
1 lowered "D" w/accent
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
1 lowered "L" w/accent
2 UPPERED "L" w/accent
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
1 lowered "L" w/accent
2 UPPERED "L" w/accent
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2 UPPERED "L" w/accent
1 lowered "L" w/accent
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
LOG DETAILS:
2025-07-02 05:56:58.126
2025-07-02 05:56:58.133 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-02 05:56:58.139 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-02 05:56:58.148
2025-07-02 05:56:58.157 @pytest.mark.version('>=6')
2025-07-02 05:56:58.165 def test_1(act: Action, capsys):
2025-07-02 05:56:58.178 qry_map = {
2025-07-02 05:56:58.188 1 : 'select * from v1_chk_nr'
2025-07-02 05:56:58.194 ,2 : 'select * from v1_chk_ir_asc'
2025-07-02 05:56:58.200 ,3 : 'select * from v1_chk_ir_dec'
2025-07-02 05:56:58.205 ,4 : 'select * from v2_chk_nr'
2025-07-02 05:56:58.210 ,5 : 'select * from v2_chk_ir_asc'
2025-07-02 05:56:58.216 ,6 : 'select * from v2_chk_ir_dec'
2025-07-02 05:56:58.221 }
2025-07-02 05:56:58.226
2025-07-02 05:56:58.231 alter_lst = (
2025-07-02 05:56:58.236 ''
2025-07-02 05:56:58.242 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-07-02 05:56:58.252 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-07-02 05:56:58.260 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-07-02 05:56:58.266 )
2025-07-02 05:56:58.272
2025-07-02 05:56:58.283 with act.db.connect(charset = 'utf8') as con:
2025-07-02 05:56:58.293 cur = con.cursor()
2025-07-02 05:56:58.301 for alter_i in alter_lst:
2025-07-02 05:56:58.312 if alter_i.strip():
2025-07-02 05:56:58.324 con.execute_immediate(alter_i)
2025-07-02 05:56:58.334 con.commit()
2025-07-02 05:56:58.342 print(f'\nAfter {alter_i}:')
2025-07-02 05:56:58.351 else:
2025-07-02 05:56:58.358 print('Initial state:')
2025-07-02 05:56:58.371
2025-07-02 05:56:58.379 for k, v in qry_map.items():
2025-07-02 05:56:58.387 ps, rs = None, None
2025-07-02 05:56:58.398 try:
2025-07-02 05:56:58.408 ps = cur.prepare(v)
2025-07-02 05:56:58.416
2025-07-02 05:56:58.423 print('Query:', v)
2025-07-02 05:56:58.432 # Print explained plan with padding eash line by dots in order to see indentations:
2025-07-02 05:56:58.440 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-07-02 05:56:58.448 print('')
2025-07-02 05:56:58.456
2025-07-02 05:56:58.464 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-07-02 05:56:58.472 # We have to store result of cur.execute(<psInstance>) in order to
2025-07-02 05:56:58.479 # close it explicitly.
2025-07-02 05:56:58.487 # Otherwise AV can occur during Python garbage collection and this
2025-07-02 05:56:58.498 # causes pytest to hang on its final point.
2025-07-02 05:56:58.508 # Explained by hvlad, email 26.10.24 17:42
2025-07-02 05:56:58.516 rs = cur.execute(ps)
2025-07-02 05:56:58.523 for r in rs:
2025-07-02 05:56:58.528 print(r[0], r[1])
2025-07-02 05:56:58.533 except DatabaseError as e:
2025-07-02 05:56:58.538 print(e.__str__())
2025-07-02 05:56:58.543 print(e.gds_codes)
2025-07-02 05:56:58.548 finally:
2025-07-02 05:56:58.553 if rs:
2025-07-02 05:56:58.558 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-07-02 05:56:58.563 if ps:
2025-07-02 05:56:58.569 ps.free()
2025-07-02 05:56:58.575
2025-07-02 05:56:58.581
2025-07-02 05:56:58.593 expected_stdout = """
2025-07-02 05:56:58.603 Initial state:
2025-07-02 05:56:58.611
2025-07-02 05:56:58.617 Query: select * from v1_chk_nr
2025-07-02 05:56:58.624 Select Expression
2025-07-02 05:56:58.632 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:58.639 ........-> Filter
2025-07-02 05:56:58.647 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:56:58.655 3 lowered "D" normal
2025-07-02 05:56:58.664 Query: select * from v1_chk_ir_asc
2025-07-02 05:56:58.676 Select Expression
2025-07-02 05:56:58.684 ....-> Filter
2025-07-02 05:56:58.692 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:56:58.698 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:56:58.710 3 lowered "D" normal
2025-07-02 05:56:58.720 Query: select * from v1_chk_ir_dec
2025-07-02 05:56:58.728 Select Expression
2025-07-02 05:56:58.735 ....-> Filter
2025-07-02 05:56:58.742 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:56:58.752 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:56:58.762 3 lowered "D" normal
2025-07-02 05:56:58.770 Query: select * from v2_chk_nr
2025-07-02 05:56:58.779 Select Expression
2025-07-02 05:56:58.789 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:58.796 ........-> Filter
2025-07-02 05:56:58.803 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:56:58.810 3 lowered "L" normal
2025-07-02 05:56:58.816 Query: select * from v2_chk_ir_asc
2025-07-02 05:56:58.822 Select Expression
2025-07-02 05:56:58.828 ....-> Filter
2025-07-02 05:56:58.835 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:56:58.841 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:56:58.846 3 lowered "L" normal
2025-07-02 05:56:58.856 Query: select * from v2_chk_ir_dec
2025-07-02 05:56:58.868 Select Expression
2025-07-02 05:56:58.880 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:58.890 ........-> Filter
2025-07-02 05:56:58.902 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:56:58.914 ................-> Bitmap
2025-07-02 05:56:58.922 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:56:58.929 3 lowered "L" normal
2025-07-02 05:56:58.935
2025-07-02 05:56:58.941
2025-07-02 05:56:58.948 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-07-02 05:56:58.954
2025-07-02 05:56:58.961 Query: select * from v1_chk_nr
2025-07-02 05:56:58.967 Select Expression
2025-07-02 05:56:58.974 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:58.981 ........-> Filter
2025-07-02 05:56:58.987 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:56:58.994 3 lowered "D" normal
2025-07-02 05:56:59.007 4 UPPERED "D" normal
2025-07-02 05:56:59.016 Query: select * from v1_chk_ir_asc
2025-07-02 05:56:59.024 Select Expression
2025-07-02 05:56:59.034 ....-> Filter
2025-07-02 05:56:59.045 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:56:59.053 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:56:59.060 3 lowered "D" normal
2025-07-02 05:56:59.066 4 UPPERED "D" normal
2025-07-02 05:56:59.072 Query: select * from v1_chk_ir_dec
2025-07-02 05:56:59.078 Select Expression
2025-07-02 05:56:59.084 ....-> Filter
2025-07-02 05:56:59.092 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:56:59.100 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:56:59.106 4 UPPERED "D" normal
2025-07-02 05:56:59.118 3 lowered "D" normal
2025-07-02 05:56:59.126 Query: select * from v2_chk_nr
2025-07-02 05:56:59.133 Select Expression
2025-07-02 05:56:59.139 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:59.146 ........-> Filter
2025-07-02 05:56:59.156 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:56:59.165 3 lowered "L" normal
2025-07-02 05:56:59.172 4 UPPERED "L" normal
2025-07-02 05:56:59.178 Query: select * from v2_chk_ir_asc
2025-07-02 05:56:59.184 Select Expression
2025-07-02 05:56:59.191 ....-> Filter
2025-07-02 05:56:59.198 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:56:59.204 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:56:59.210 3 lowered "L" normal
2025-07-02 05:56:59.217 4 UPPERED "L" normal
2025-07-02 05:56:59.230 Query: select * from v2_chk_ir_dec
2025-07-02 05:56:59.241 Select Expression
2025-07-02 05:56:59.249 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:59.257 ........-> Filter
2025-07-02 05:56:59.270 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:56:59.281 ................-> Bitmap
2025-07-02 05:56:59.289 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:56:59.296 4 UPPERED "L" normal
2025-07-02 05:56:59.303 3 lowered "L" normal
2025-07-02 05:56:59.315
2025-07-02 05:56:59.325
2025-07-02 05:56:59.336 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-07-02 05:56:59.346
2025-07-02 05:56:59.355 Query: select * from v1_chk_nr
2025-07-02 05:56:59.363 Select Expression
2025-07-02 05:56:59.371 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:59.381 ........-> Filter
2025-07-02 05:56:59.389 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:56:59.397 1 lowered "D" w/accent
2025-07-02 05:56:59.411 2 UPPERED "D" w/accent
2025-07-02 05:56:59.421 3 lowered "D" normal
2025-07-02 05:56:59.430 4 UPPERED "D" normal
2025-07-02 05:56:59.437 Query: select * from v1_chk_ir_asc
2025-07-02 05:56:59.448 Select Expression
2025-07-02 05:56:59.463 ....-> Filter
2025-07-02 05:56:59.476 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:56:59.490 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:56:59.501 3 lowered "D" normal
2025-07-02 05:56:59.513 4 UPPERED "D" normal
2025-07-02 05:56:59.523 1 lowered "D" w/accent
2025-07-02 05:56:59.534 2 UPPERED "D" w/accent
2025-07-02 05:56:59.544 Query: select * from v1_chk_ir_dec
2025-07-02 05:56:59.551 Select Expression
2025-07-02 05:56:59.563 ....-> Filter
2025-07-02 05:56:59.570 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:56:59.581 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:56:59.592 2 UPPERED "D" w/accent
2025-07-02 05:56:59.600 1 lowered "D" w/accent
2025-07-02 05:56:59.606 4 UPPERED "D" normal
2025-07-02 05:56:59.612 3 lowered "D" normal
2025-07-02 05:56:59.618 Query: select * from v2_chk_nr
2025-07-02 05:56:59.626 Select Expression
2025-07-02 05:56:59.634 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:59.642 ........-> Filter
2025-07-02 05:56:59.648 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:56:59.654 1 lowered "L" w/accent
2025-07-02 05:56:59.664 2 UPPERED "L" w/accent
2025-07-02 05:56:59.672 3 lowered "L" normal
2025-07-02 05:56:59.678 4 UPPERED "L" normal
2025-07-02 05:56:59.684 Query: select * from v2_chk_ir_asc
2025-07-02 05:56:59.690 Select Expression
2025-07-02 05:56:59.696 ....-> Filter
2025-07-02 05:56:59.702 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:56:59.710 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:56:59.723 3 lowered "L" normal
2025-07-02 05:56:59.734 4 UPPERED "L" normal
2025-07-02 05:56:59.743 1 lowered "L" w/accent
2025-07-02 05:56:59.751 2 UPPERED "L" w/accent
2025-07-02 05:56:59.757 Query: select * from v2_chk_ir_dec
2025-07-02 05:56:59.762 Select Expression
2025-07-02 05:56:59.767 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:59.772 ........-> Filter
2025-07-02 05:56:59.786 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:56:59.795 ................-> Bitmap
2025-07-02 05:56:59.803 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:56:59.811 2 UPPERED "L" w/accent
2025-07-02 05:56:59.818 1 lowered "L" w/accent
2025-07-02 05:56:59.825 4 UPPERED "L" normal
2025-07-02 05:56:59.831 3 lowered "L" normal
2025-07-02 05:56:59.838
2025-07-02 05:56:59.844
2025-07-02 05:56:59.851 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-07-02 05:56:59.858
2025-07-02 05:56:59.864 Query: select * from v1_chk_nr
2025-07-02 05:56:59.871 Select Expression
2025-07-02 05:56:59.879 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:56:59.886 ........-> Filter
2025-07-02 05:56:59.894 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:56:59.902 3 lowered "D" normal
2025-07-02 05:56:59.909 Query: select * from v1_chk_ir_asc
2025-07-02 05:56:59.917 Select Expression
2025-07-02 05:56:59.925 ....-> Filter
2025-07-02 05:56:59.937 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:56:59.946 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:56:59.954 3 lowered "D" normal
2025-07-02 05:56:59.961 Query: select * from v1_chk_ir_dec
2025-07-02 05:56:59.968 Select Expression
2025-07-02 05:56:59.974 ....-> Filter
2025-07-02 05:56:59.981 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:56:59.987 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:56:59.993 3 lowered "D" normal
2025-07-02 05:57:00.001 Query: select * from v2_chk_nr
2025-07-02 05:57:00.008 Select Expression
2025-07-02 05:57:00.021 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:00.028 ........-> Filter
2025-07-02 05:57:00.035 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:57:00.042 3 lowered "L" normal
2025-07-02 05:57:00.049 Query: select * from v2_chk_ir_asc
2025-07-02 05:57:00.055 Select Expression
2025-07-02 05:57:00.062 ....-> Filter
2025-07-02 05:57:00.070 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:57:00.078 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:00.086 3 lowered "L" normal
2025-07-02 05:57:00.093 Query: select * from v2_chk_ir_dec
2025-07-02 05:57:00.100 Select Expression
2025-07-02 05:57:00.109 ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:00.116 ........-> Filter
2025-07-02 05:57:00.124 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:57:00.132 ................-> Bitmap
2025-07-02 05:57:00.140 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:00.147 3 lowered "L" normal
2025-07-02 05:57:00.155 """
2025-07-02 05:57:00.164
2025-07-02 05:57:00.175 act.expected_stdout = expected_stdout
2025-07-02 05:57:00.188
2025-07-02 05:57:00.201 act.stdout = capsys.readouterr().out
2025-07-02 05:57:00.210 > assert act.clean_stdout == act.clean_expected_stdout
2025-07-02 05:57:00.216 E assert
2025-07-02 05:57:00.221 E Initial state:
2025-07-02 05:57:00.226 E Query: select * from v1_chk_nr
2025-07-02 05:57:00.231 E Select Expression
2025-07-02 05:57:00.242 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:00.250 E ........-> Filter
2025-07-02 05:57:00.258 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:57:00.279 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-02 05:57:00.294 E 3 lowered "D" normal
2025-07-02 05:57:00.299 E Query: select * from v1_chk_ir_asc
2025-07-02 05:57:00.304 E Select Expression
2025-07-02 05:57:00.310 E ....-> Filter
2025-07-02 05:57:00.315 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:57:00.327 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:00.344 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:00.354 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:00.371 E 3 lowered "D" normal
2025-07-02 05:57:00.383 E Query: select * from v1_chk_ir_dec
2025-07-02 05:57:00.393 E Select Expression
2025-07-02 05:57:00.406 E ....-> Filter
2025-07-02 05:57:00.414 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:57:00.427 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:00.440 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:00.447 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:00.467 E 3 lowered "D" normal
2025-07-02 05:57:00.476 E Query: select * from v2_chk_nr
2025-07-02 05:57:00.484 E Select Expression
2025-07-02 05:57:00.490 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:00.496 E ........-> Filter
2025-07-02 05:57:00.503 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:57:00.515 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-02 05:57:00.534 E 3 lowered "L" normal
2025-07-02 05:57:00.543 E Query: select * from v2_chk_ir_asc
2025-07-02 05:57:00.555 E Select Expression
2025-07-02 05:57:00.563 E ....-> Filter
2025-07-02 05:57:00.570 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:57:00.584 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:00.597 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:00.604 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:00.627 E 3 lowered "L" normal
2025-07-02 05:57:00.638 E Query: select * from v2_chk_ir_dec
2025-07-02 05:57:00.648 E Select Expression
2025-07-02 05:57:00.657 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:00.670 E ........-> Filter
2025-07-02 05:57:00.681 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:57:00.703 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:00.722 E ................-> Bitmap
2025-07-02 05:57:00.729 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:00.741 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:00.763 E 3 lowered "L" normal
2025-07-02 05:57:00.771 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-07-02 05:57:00.779 E Query: select * from v1_chk_nr
2025-07-02 05:57:00.790 E Select Expression
2025-07-02 05:57:00.798 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:00.806 E ........-> Filter
2025-07-02 05:57:00.813 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:57:00.826 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-02 05:57:00.839 E 3 lowered "D" normal
2025-07-02 05:57:00.845 E 4 UPPERED "D" normal
2025-07-02 05:57:00.851 E Query: select * from v1_chk_ir_asc
2025-07-02 05:57:00.859 E Select Expression
2025-07-02 05:57:00.871 E ....-> Filter
2025-07-02 05:57:00.881 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:57:00.900 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:00.920 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:00.927 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:00.940 E 3 lowered "D" normal
2025-07-02 05:57:00.946 E 4 UPPERED "D" normal
2025-07-02 05:57:00.953 E Query: select * from v1_chk_ir_dec
2025-07-02 05:57:00.959 E Select Expression
2025-07-02 05:57:00.965 E ....-> Filter
2025-07-02 05:57:00.972 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:57:00.983 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:00.998 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:01.004 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:01.014 E 4 UPPERED "D" normal
2025-07-02 05:57:01.019 E 3 lowered "D" normal
2025-07-02 05:57:01.025 E Query: select * from v2_chk_nr
2025-07-02 05:57:01.030 E Select Expression
2025-07-02 05:57:01.037 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:01.045 E ........-> Filter
2025-07-02 05:57:01.053 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:57:01.073 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-02 05:57:01.095 E 3 lowered "L" normal
2025-07-02 05:57:01.103 E 4 UPPERED "L" normal
2025-07-02 05:57:01.111 E Query: select * from v2_chk_ir_asc
2025-07-02 05:57:01.117 E Select Expression
2025-07-02 05:57:01.124 E ....-> Filter
2025-07-02 05:57:01.130 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:57:01.145 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:01.160 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.168 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.182 E 3 lowered "L" normal
2025-07-02 05:57:01.195 E 4 UPPERED "L" normal
2025-07-02 05:57:01.205 E Query: select * from v2_chk_ir_dec
2025-07-02 05:57:01.214 E Select Expression
2025-07-02 05:57:01.220 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:01.227 E ........-> Filter
2025-07-02 05:57:01.235 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:57:01.256 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:01.269 E ................-> Bitmap
2025-07-02 05:57:01.275 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.280 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.293 E 4 UPPERED "L" normal
2025-07-02 05:57:01.300 E 3 lowered "L" normal
2025-07-02 05:57:01.307 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-07-02 05:57:01.313 E Query: select * from v1_chk_nr
2025-07-02 05:57:01.319 E Select Expression
2025-07-02 05:57:01.330 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:01.338 E ........-> Filter
2025-07-02 05:57:01.350 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:57:01.367 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-02 05:57:01.380 E 1 lowered "D" w/accent
2025-07-02 05:57:01.387 E 2 UPPERED "D" w/accent
2025-07-02 05:57:01.392 E 3 lowered "D" normal
2025-07-02 05:57:01.398 E 4 UPPERED "D" normal
2025-07-02 05:57:01.409 E Query: select * from v1_chk_ir_asc
2025-07-02 05:57:01.421 E Select Expression
2025-07-02 05:57:01.429 E ....-> Filter
2025-07-02 05:57:01.439 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:57:01.452 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:01.466 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:01.477 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:01.495 E 3 lowered "D" normal
2025-07-02 05:57:01.503 E 4 UPPERED "D" normal
2025-07-02 05:57:01.511 E 1 lowered "D" w/accent
2025-07-02 05:57:01.518 E 2 UPPERED "D" w/accent
2025-07-02 05:57:01.524 E Query: select * from v1_chk_ir_dec
2025-07-02 05:57:01.530 E Select Expression
2025-07-02 05:57:01.538 E ....-> Filter
2025-07-02 05:57:01.544 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:57:01.554 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:01.564 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:01.571 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:01.585 E 2 UPPERED "D" w/accent
2025-07-02 05:57:01.596 E 1 lowered "D" w/accent
2025-07-02 05:57:01.606 E 4 UPPERED "D" normal
2025-07-02 05:57:01.615 E 3 lowered "D" normal
2025-07-02 05:57:01.627 E Query: select * from v2_chk_nr
2025-07-02 05:57:01.638 E Select Expression
2025-07-02 05:57:01.647 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:01.654 E ........-> Filter
2025-07-02 05:57:01.664 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:57:01.685 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-02 05:57:01.700 E 1 lowered "L" w/accent
2025-07-02 05:57:01.711 E 2 UPPERED "L" w/accent
2025-07-02 05:57:01.720 E 3 lowered "L" normal
2025-07-02 05:57:01.728 E 4 UPPERED "L" normal
2025-07-02 05:57:01.741 E Query: select * from v2_chk_ir_asc
2025-07-02 05:57:01.752 E Select Expression
2025-07-02 05:57:01.764 E ....-> Filter
2025-07-02 05:57:01.773 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:57:01.794 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:01.819 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.829 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.845 E 3 lowered "L" normal
2025-07-02 05:57:01.851 E 4 UPPERED "L" normal
2025-07-02 05:57:01.860 E 1 lowered "L" w/accent
2025-07-02 05:57:01.872 E 2 UPPERED "L" w/accent
2025-07-02 05:57:01.882 E Query: select * from v2_chk_ir_dec
2025-07-02 05:57:01.890 E Select Expression
2025-07-02 05:57:01.900 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:01.913 E ........-> Filter
2025-07-02 05:57:01.927 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:57:01.948 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:01.965 E ................-> Bitmap
2025-07-02 05:57:01.972 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.978 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:01.991 E 2 UPPERED "L" w/accent
2025-07-02 05:57:01.996 E 1 lowered "L" w/accent
2025-07-02 05:57:02.002 E 4 UPPERED "L" normal
2025-07-02 05:57:02.013 E 3 lowered "L" normal
2025-07-02 05:57:02.023 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-07-02 05:57:02.030 E Query: select * from v1_chk_nr
2025-07-02 05:57:02.037 E Select Expression
2025-07-02 05:57:02.043 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:02.049 E ........-> Filter
2025-07-02 05:57:02.054 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-02 05:57:02.066 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-02 05:57:02.079 E 3 lowered "D" normal
2025-07-02 05:57:02.087 E Query: select * from v1_chk_ir_asc
2025-07-02 05:57:02.097 E Select Expression
2025-07-02 05:57:02.111 E ....-> Filter
2025-07-02 05:57:02.124 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-02 05:57:02.152 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:02.176 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:02.184 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-02 05:57:02.199 E 3 lowered "D" normal
2025-07-02 05:57:02.206 E Query: select * from v1_chk_ir_dec
2025-07-02 05:57:02.212 E Select Expression
2025-07-02 05:57:02.219 E ....-> Filter
2025-07-02 05:57:02.225 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-02 05:57:02.243 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-02 05:57:02.254 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:02.262 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-02 05:57:02.278 E 3 lowered "D" normal
2025-07-02 05:57:02.285 E Query: select * from v2_chk_nr
2025-07-02 05:57:02.292 E Select Expression
2025-07-02 05:57:02.299 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:02.306 E ........-> Filter
2025-07-02 05:57:02.317 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-02 05:57:02.339 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-02 05:57:02.358 E 3 lowered "L" normal
2025-07-02 05:57:02.366 E Query: select * from v2_chk_ir_asc
2025-07-02 05:57:02.373 E Select Expression
2025-07-02 05:57:02.379 E ....-> Filter
2025-07-02 05:57:02.385 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-02 05:57:02.408 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:02.422 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:02.428 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:02.442 E 3 lowered "L" normal
2025-07-02 05:57:02.451 E Query: select * from v2_chk_ir_dec
2025-07-02 05:57:02.459 E Select Expression
2025-07-02 05:57:02.467 E ....-> Sort (record length: NN, key length: MM)
2025-07-02 05:57:02.473 E ........-> Filter
2025-07-02 05:57:02.480 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-02 05:57:02.493 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-02 05:57:02.505 E ................-> Bitmap
2025-07-02 05:57:02.511 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:02.518 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-02 05:57:02.532 E 3 lowered "L" normal
2025-07-02 05:57:02.539
2025-07-02 05:57:02.544 tests/bugs/gh_8434_test.py:371: AssertionError
2025-07-02 05:57:02.551 ---------------------------- Captured stdout setup -----------------------------
2025-07-02 05:57:02.559 Creating db: localhost:/var/tmp/qa_2024/test_11742/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('>=6')
def test_1(act: Action, capsys):
qry_map = {
1 : 'select * from v1_chk_nr'
,2 : 'select * from v1_chk_ir_asc'
,3 : 'select * from v1_chk_ir_dec'
,4 : 'select * from v2_chk_nr'
,5 : 'select * from v2_chk_ir_asc'
,6 : 'select * from v2_chk_ir_dec'
}
alter_lst = (
''
,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
,'alter domain dm_utf8 type varchar(1) character set utf8'
)
with act.db.connect(charset = 'utf8') as con:
cur = con.cursor()
for alter_i in alter_lst:
if alter_i.strip():
con.execute_immediate(alter_i)
con.commit()
print(f'\nAfter {alter_i}:')
else:
print('Initial state:')
for k, v in qry_map.items():
ps, rs = None, None
try:
ps = cur.prepare(v)
print('Query:', v)
# Print explained plan with padding eash line by dots in order to see indentations:
print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
print('')
# ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
# We have to store result of cur.execute(<psInstance>) in order to
# close it explicitly.
# Otherwise AV can occur during Python garbage collection and this
# causes pytest to hang on its final point.
# Explained by hvlad, email 26.10.24 17:42
rs = cur.execute(ps)
for r in rs:
print(r[0], r[1])
except DatabaseError as e:
print(e.__str__())
print(e.gds_codes)
finally:
if rs:
rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
if ps:
ps.free()
expected_stdout = """
Initial state:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
1 lowered "D" w/accent
2 UPPERED "D" w/accent
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
1 lowered "D" w/accent
2 UPPERED "D" w/accent
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
2 UPPERED "D" w/accent
1 lowered "D" w/accent
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
1 lowered "L" w/accent
2 UPPERED "L" w/accent
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
1 lowered "L" w/accent
2 UPPERED "L" w/accent
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2 UPPERED "L" w/accent
1 lowered "L" w/accent
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
"""
act.expected_stdout = expected_stdout
act.stdout = capsys.readouterr().out
> assert act.clean_stdout == act.clean_expected_stdout
E assert
E Initial state:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 4 UPPERED "D" normal
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 4 UPPERED "L" normal
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 1 lowered "D" w/accent
E 2 UPPERED "D" w/accent
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E 1 lowered "D" w/accent
E 2 UPPERED "D" w/accent
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 2 UPPERED "D" w/accent
E 1 lowered "D" w/accent
E 4 UPPERED "D" normal
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 1 lowered "L" w/accent
E 2 UPPERED "L" w/accent
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E 1 lowered "L" w/accent
E 2 UPPERED "L" w/accent
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 2 UPPERED "L" w/accent
E 1 lowered "L" w/accent
E 4 UPPERED "L" normal
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
tests/bugs/gh_8434_test.py:371: AssertionError
|