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-06-30 05:41:23.431
2025-06-30 05:41:23.439 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-30 05:41:23.447 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-30 05:41:23.454
2025-06-30 05:41:23.462 @pytest.mark.version('>=6')
2025-06-30 05:41:23.473 def test_1(act: Action, capsys):
2025-06-30 05:41:23.483 qry_map = {
2025-06-30 05:41:23.491 1 : 'select * from v1_chk_nr'
2025-06-30 05:41:23.498 ,2 : 'select * from v1_chk_ir_asc'
2025-06-30 05:41:23.503 ,3 : 'select * from v1_chk_ir_dec'
2025-06-30 05:41:23.509 ,4 : 'select * from v2_chk_nr'
2025-06-30 05:41:23.514 ,5 : 'select * from v2_chk_ir_asc'
2025-06-30 05:41:23.519 ,6 : 'select * from v2_chk_ir_dec'
2025-06-30 05:41:23.524 }
2025-06-30 05:41:23.530
2025-06-30 05:41:23.535 alter_lst = (
2025-06-30 05:41:23.539 ''
2025-06-30 05:41:23.545 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-06-30 05:41:23.557 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-06-30 05:41:23.569 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-06-30 05:41:23.577 )
2025-06-30 05:41:23.584
2025-06-30 05:41:23.593 with act.db.connect(charset = 'utf8') as con:
2025-06-30 05:41:23.600 cur = con.cursor()
2025-06-30 05:41:23.611 for alter_i in alter_lst:
2025-06-30 05:41:23.620 if alter_i.strip():
2025-06-30 05:41:23.627 con.execute_immediate(alter_i)
2025-06-30 05:41:23.634 con.commit()
2025-06-30 05:41:23.640 print(f'\nAfter {alter_i}:')
2025-06-30 05:41:23.645 else:
2025-06-30 05:41:23.650 print('Initial state:')
2025-06-30 05:41:23.655
2025-06-30 05:41:23.660 for k, v in qry_map.items():
2025-06-30 05:41:23.666 ps, rs = None, None
2025-06-30 05:41:23.677 try:
2025-06-30 05:41:23.684 ps = cur.prepare(v)
2025-06-30 05:41:23.690
2025-06-30 05:41:23.696 print('Query:', v)
2025-06-30 05:41:23.702 # Print explained plan with padding eash line by dots in order to see indentations:
2025-06-30 05:41:23.712 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-06-30 05:41:23.724 print('')
2025-06-30 05:41:23.732
2025-06-30 05:41:23.739 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-06-30 05:41:23.746 # We have to store result of cur.execute(<psInstance>) in order to
2025-06-30 05:41:23.752 # close it explicitly.
2025-06-30 05:41:23.760 # Otherwise AV can occur during Python garbage collection and this
2025-06-30 05:41:23.769 # causes pytest to hang on its final point.
2025-06-30 05:41:23.777 # Explained by hvlad, email 26.10.24 17:42
2025-06-30 05:41:23.783 rs = cur.execute(ps)
2025-06-30 05:41:23.789 for r in rs:
2025-06-30 05:41:23.795 print(r[0], r[1])
2025-06-30 05:41:23.805 except DatabaseError as e:
2025-06-30 05:41:23.819 print(e.__str__())
2025-06-30 05:41:23.829 print(e.gds_codes)
2025-06-30 05:41:23.841 finally:
2025-06-30 05:41:23.853 if rs:
2025-06-30 05:41:23.862 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-06-30 05:41:23.871 if ps:
2025-06-30 05:41:23.883 ps.free()
2025-06-30 05:41:23.892
2025-06-30 05:41:23.900
2025-06-30 05:41:23.907 expected_stdout = """
2025-06-30 05:41:23.914 Initial state:
2025-06-30 05:41:23.925
2025-06-30 05:41:23.938 Query: select * from v1_chk_nr
2025-06-30 05:41:23.948 Select Expression
2025-06-30 05:41:23.957 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:23.965 ........-> Filter
2025-06-30 05:41:23.972 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:23.979 3 lowered "D" normal
2025-06-30 05:41:23.986 Query: select * from v1_chk_ir_asc
2025-06-30 05:41:23.992 Select Expression
2025-06-30 05:41:23.998 ....-> Filter
2025-06-30 05:41:24.005 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:24.011 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:24.019 3 lowered "D" normal
2025-06-30 05:41:24.031 Query: select * from v1_chk_ir_dec
2025-06-30 05:41:24.041 Select Expression
2025-06-30 05:41:24.049 ....-> Filter
2025-06-30 05:41:24.061 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:24.070 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:24.078 3 lowered "D" normal
2025-06-30 05:41:24.085 Query: select * from v2_chk_nr
2025-06-30 05:41:24.092 Select Expression
2025-06-30 05:41:24.098 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:24.109 ........-> Filter
2025-06-30 05:41:24.122 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:24.131 3 lowered "L" normal
2025-06-30 05:41:24.139 Query: select * from v2_chk_ir_asc
2025-06-30 05:41:24.146 Select Expression
2025-06-30 05:41:24.162 ....-> Filter
2025-06-30 05:41:24.171 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:24.184 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:24.195 3 lowered "L" normal
2025-06-30 05:41:24.207 Query: select * from v2_chk_ir_dec
2025-06-30 05:41:24.217 Select Expression
2025-06-30 05:41:24.231 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:24.243 ........-> Filter
2025-06-30 05:41:24.251 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:24.258 ................-> Bitmap
2025-06-30 05:41:24.267 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:24.279 3 lowered "L" normal
2025-06-30 05:41:24.287
2025-06-30 05:41:24.294
2025-06-30 05:41:24.302 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-30 05:41:24.315
2025-06-30 05:41:24.325 Query: select * from v1_chk_nr
2025-06-30 05:41:24.334 Select Expression
2025-06-30 05:41:24.345 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:24.354 ........-> Filter
2025-06-30 05:41:24.364 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:24.371 3 lowered "D" normal
2025-06-30 05:41:24.378 4 UPPERED "D" normal
2025-06-30 05:41:24.387 Query: select * from v1_chk_ir_asc
2025-06-30 05:41:24.401 Select Expression
2025-06-30 05:41:24.413 ....-> Filter
2025-06-30 05:41:24.426 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:24.438 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:24.452 3 lowered "D" normal
2025-06-30 05:41:24.463 4 UPPERED "D" normal
2025-06-30 05:41:24.473 Query: select * from v1_chk_ir_dec
2025-06-30 05:41:24.487 Select Expression
2025-06-30 05:41:24.498 ....-> Filter
2025-06-30 05:41:24.508 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:24.516 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:24.523 4 UPPERED "D" normal
2025-06-30 05:41:24.536 3 lowered "D" normal
2025-06-30 05:41:24.545 Query: select * from v2_chk_nr
2025-06-30 05:41:24.553 Select Expression
2025-06-30 05:41:24.561 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:24.571 ........-> Filter
2025-06-30 05:41:24.578 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:24.585 3 lowered "L" normal
2025-06-30 05:41:24.596 4 UPPERED "L" normal
2025-06-30 05:41:24.603 Query: select * from v2_chk_ir_asc
2025-06-30 05:41:24.611 Select Expression
2025-06-30 05:41:24.618 ....-> Filter
2025-06-30 05:41:24.624 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:24.633 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:24.646 3 lowered "L" normal
2025-06-30 05:41:24.656 4 UPPERED "L" normal
2025-06-30 05:41:24.665 Query: select * from v2_chk_ir_dec
2025-06-30 05:41:24.673 Select Expression
2025-06-30 05:41:24.680 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:24.687 ........-> Filter
2025-06-30 05:41:24.694 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:24.704 ................-> Bitmap
2025-06-30 05:41:24.716 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:24.728 4 UPPERED "L" normal
2025-06-30 05:41:24.740 3 lowered "L" normal
2025-06-30 05:41:24.752
2025-06-30 05:41:24.764
2025-06-30 05:41:24.773 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-30 05:41:24.787
2025-06-30 05:41:24.799 Query: select * from v1_chk_nr
2025-06-30 05:41:24.808 Select Expression
2025-06-30 05:41:24.816 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:24.827 ........-> Filter
2025-06-30 05:41:24.840 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:24.848 1 lowered "D" w/accent
2025-06-30 05:41:24.854 2 UPPERED "D" w/accent
2025-06-30 05:41:24.866 3 lowered "D" normal
2025-06-30 05:41:24.878 4 UPPERED "D" normal
2025-06-30 05:41:24.886 Query: select * from v1_chk_ir_asc
2025-06-30 05:41:24.896 Select Expression
2025-06-30 05:41:24.904 ....-> Filter
2025-06-30 05:41:24.911 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:24.916 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:24.922 3 lowered "D" normal
2025-06-30 05:41:24.926 4 UPPERED "D" normal
2025-06-30 05:41:24.931 1 lowered "D" w/accent
2025-06-30 05:41:24.936 2 UPPERED "D" w/accent
2025-06-30 05:41:24.941 Query: select * from v1_chk_ir_dec
2025-06-30 05:41:24.945 Select Expression
2025-06-30 05:41:24.950 ....-> Filter
2025-06-30 05:41:24.955 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:24.960 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:24.965 2 UPPERED "D" w/accent
2025-06-30 05:41:24.970 1 lowered "D" w/accent
2025-06-30 05:41:24.975 4 UPPERED "D" normal
2025-06-30 05:41:24.981 3 lowered "D" normal
2025-06-30 05:41:24.987 Query: select * from v2_chk_nr
2025-06-30 05:41:24.993 Select Expression
2025-06-30 05:41:24.999 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.005 ........-> Filter
2025-06-30 05:41:25.011 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:25.018 1 lowered "L" w/accent
2025-06-30 05:41:25.027 2 UPPERED "L" w/accent
2025-06-30 05:41:25.039 3 lowered "L" normal
2025-06-30 05:41:25.047 4 UPPERED "L" normal
2025-06-30 05:41:25.054 Query: select * from v2_chk_ir_asc
2025-06-30 05:41:25.060 Select Expression
2025-06-30 05:41:25.066 ....-> Filter
2025-06-30 05:41:25.072 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:25.079 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:25.092 3 lowered "L" normal
2025-06-30 05:41:25.103 4 UPPERED "L" normal
2025-06-30 05:41:25.116 1 lowered "L" w/accent
2025-06-30 05:41:25.129 2 UPPERED "L" w/accent
2025-06-30 05:41:25.141 Query: select * from v2_chk_ir_dec
2025-06-30 05:41:25.151 Select Expression
2025-06-30 05:41:25.159 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.166 ........-> Filter
2025-06-30 05:41:25.175 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:25.186 ................-> Bitmap
2025-06-30 05:41:25.199 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:25.208 2 UPPERED "L" w/accent
2025-06-30 05:41:25.220 1 lowered "L" w/accent
2025-06-30 05:41:25.228 4 UPPERED "L" normal
2025-06-30 05:41:25.236 3 lowered "L" normal
2025-06-30 05:41:25.242
2025-06-30 05:41:25.248
2025-06-30 05:41:25.254 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-30 05:41:25.265
2025-06-30 05:41:25.276 Query: select * from v1_chk_nr
2025-06-30 05:41:25.285 Select Expression
2025-06-30 05:41:25.291 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.298 ........-> Filter
2025-06-30 05:41:25.304 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:25.311 3 lowered "D" normal
2025-06-30 05:41:25.319 Query: select * from v1_chk_ir_asc
2025-06-30 05:41:25.331 Select Expression
2025-06-30 05:41:25.344 ....-> Filter
2025-06-30 05:41:25.352 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:25.360 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:25.368 3 lowered "D" normal
2025-06-30 05:41:25.376 Query: select * from v1_chk_ir_dec
2025-06-30 05:41:25.385 Select Expression
2025-06-30 05:41:25.392 ....-> Filter
2025-06-30 05:41:25.399 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:25.408 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:25.415 3 lowered "D" normal
2025-06-30 05:41:25.424 Query: select * from v2_chk_nr
2025-06-30 05:41:25.436 Select Expression
2025-06-30 05:41:25.445 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.452 ........-> Filter
2025-06-30 05:41:25.459 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:25.466 3 lowered "L" normal
2025-06-30 05:41:25.478 Query: select * from v2_chk_ir_asc
2025-06-30 05:41:25.490 Select Expression
2025-06-30 05:41:25.502 ....-> Filter
2025-06-30 05:41:25.512 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:25.526 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:25.538 3 lowered "L" normal
2025-06-30 05:41:25.550 Query: select * from v2_chk_ir_dec
2025-06-30 05:41:25.561 Select Expression
2025-06-30 05:41:25.570 ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.580 ........-> Filter
2025-06-30 05:41:25.592 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:25.600 ................-> Bitmap
2025-06-30 05:41:25.608 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:25.615 3 lowered "L" normal
2025-06-30 05:41:25.623 """
2025-06-30 05:41:25.636
2025-06-30 05:41:25.648 act.expected_stdout = expected_stdout
2025-06-30 05:41:25.661
2025-06-30 05:41:25.676 act.stdout = capsys.readouterr().out
2025-06-30 05:41:25.689 > assert act.clean_stdout == act.clean_expected_stdout
2025-06-30 05:41:25.701 E assert
2025-06-30 05:41:25.711 E Initial state:
2025-06-30 05:41:25.723 E Query: select * from v1_chk_nr
2025-06-30 05:41:25.736 E Select Expression
2025-06-30 05:41:25.746 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.753 E ........-> Filter
2025-06-30 05:41:25.765 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:25.786 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-30 05:41:25.799 E 3 lowered "D" normal
2025-06-30 05:41:25.804 E Query: select * from v1_chk_ir_asc
2025-06-30 05:41:25.810 E Select Expression
2025-06-30 05:41:25.816 E ....-> Filter
2025-06-30 05:41:25.821 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:25.835 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:25.851 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:25.857 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:25.868 E 3 lowered "D" normal
2025-06-30 05:41:25.873 E Query: select * from v1_chk_ir_dec
2025-06-30 05:41:25.879 E Select Expression
2025-06-30 05:41:25.884 E ....-> Filter
2025-06-30 05:41:25.889 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:25.899 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:25.909 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:25.914 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:25.927 E 3 lowered "D" normal
2025-06-30 05:41:25.937 E Query: select * from v2_chk_nr
2025-06-30 05:41:25.949 E Select Expression
2025-06-30 05:41:25.957 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:25.964 E ........-> Filter
2025-06-30 05:41:25.969 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:25.981 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-30 05:41:25.991 E 3 lowered "L" normal
2025-06-30 05:41:25.995 E Query: select * from v2_chk_ir_asc
2025-06-30 05:41:26.001 E Select Expression
2025-06-30 05:41:26.007 E ....-> Filter
2025-06-30 05:41:26.014 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:26.027 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:26.042 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.054 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.073 E 3 lowered "L" normal
2025-06-30 05:41:26.080 E Query: select * from v2_chk_ir_dec
2025-06-30 05:41:26.086 E Select Expression
2025-06-30 05:41:26.093 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:26.103 E ........-> Filter
2025-06-30 05:41:26.115 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:26.132 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:26.146 E ................-> Bitmap
2025-06-30 05:41:26.155 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.167 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.185 E 3 lowered "L" normal
2025-06-30 05:41:26.197 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-30 05:41:26.208 E Query: select * from v1_chk_nr
2025-06-30 05:41:26.220 E Select Expression
2025-06-30 05:41:26.235 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:26.249 E ........-> Filter
2025-06-30 05:41:26.261 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:26.280 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-30 05:41:26.299 E 3 lowered "D" normal
2025-06-30 05:41:26.312 E 4 UPPERED "D" normal
2025-06-30 05:41:26.323 E Query: select * from v1_chk_ir_asc
2025-06-30 05:41:26.334 E Select Expression
2025-06-30 05:41:26.342 E ....-> Filter
2025-06-30 05:41:26.351 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:26.373 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:26.395 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:26.402 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:26.415 E 3 lowered "D" normal
2025-06-30 05:41:26.421 E 4 UPPERED "D" normal
2025-06-30 05:41:26.427 E Query: select * from v1_chk_ir_dec
2025-06-30 05:41:26.435 E Select Expression
2025-06-30 05:41:26.446 E ....-> Filter
2025-06-30 05:41:26.458 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:26.485 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:26.514 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:26.523 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:26.538 E 4 UPPERED "D" normal
2025-06-30 05:41:26.544 E 3 lowered "D" normal
2025-06-30 05:41:26.550 E Query: select * from v2_chk_nr
2025-06-30 05:41:26.556 E Select Expression
2025-06-30 05:41:26.562 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:26.568 E ........-> Filter
2025-06-30 05:41:26.575 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:26.588 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-30 05:41:26.602 E 3 lowered "L" normal
2025-06-30 05:41:26.608 E 4 UPPERED "L" normal
2025-06-30 05:41:26.615 E Query: select * from v2_chk_ir_asc
2025-06-30 05:41:26.622 E Select Expression
2025-06-30 05:41:26.629 E ....-> Filter
2025-06-30 05:41:26.636 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:26.649 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:26.662 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.675 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.695 E 3 lowered "L" normal
2025-06-30 05:41:26.707 E 4 UPPERED "L" normal
2025-06-30 05:41:26.718 E Query: select * from v2_chk_ir_dec
2025-06-30 05:41:26.731 E Select Expression
2025-06-30 05:41:26.744 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:26.756 E ........-> Filter
2025-06-30 05:41:26.769 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:26.785 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:26.808 E ................-> Bitmap
2025-06-30 05:41:26.823 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.833 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:26.850 E 4 UPPERED "L" normal
2025-06-30 05:41:26.862 E 3 lowered "L" normal
2025-06-30 05:41:26.872 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-30 05:41:26.880 E Query: select * from v1_chk_nr
2025-06-30 05:41:26.891 E Select Expression
2025-06-30 05:41:26.902 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:26.910 E ........-> Filter
2025-06-30 05:41:26.917 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:26.942 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-30 05:41:26.959 E 1 lowered "D" w/accent
2025-06-30 05:41:26.966 E 2 UPPERED "D" w/accent
2025-06-30 05:41:26.972 E 3 lowered "D" normal
2025-06-30 05:41:26.979 E 4 UPPERED "D" normal
2025-06-30 05:41:26.985 E Query: select * from v1_chk_ir_asc
2025-06-30 05:41:26.992 E Select Expression
2025-06-30 05:41:26.998 E ....-> Filter
2025-06-30 05:41:27.006 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:27.019 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:27.029 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:27.035 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:27.045 E 3 lowered "D" normal
2025-06-30 05:41:27.049 E 4 UPPERED "D" normal
2025-06-30 05:41:27.054 E 1 lowered "D" w/accent
2025-06-30 05:41:27.060 E 2 UPPERED "D" w/accent
2025-06-30 05:41:27.066 E Query: select * from v1_chk_ir_dec
2025-06-30 05:41:27.073 E Select Expression
2025-06-30 05:41:27.078 E ....-> Filter
2025-06-30 05:41:27.089 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:27.107 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:27.127 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:27.138 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:27.158 E 2 UPPERED "D" w/accent
2025-06-30 05:41:27.171 E 1 lowered "D" w/accent
2025-06-30 05:41:27.183 E 4 UPPERED "D" normal
2025-06-30 05:41:27.196 E 3 lowered "D" normal
2025-06-30 05:41:27.210 E Query: select * from v2_chk_nr
2025-06-30 05:41:27.222 E Select Expression
2025-06-30 05:41:27.234 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:27.247 E ........-> Filter
2025-06-30 05:41:27.256 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:27.278 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-30 05:41:27.296 E 1 lowered "L" w/accent
2025-06-30 05:41:27.303 E 2 UPPERED "L" w/accent
2025-06-30 05:41:27.315 E 3 lowered "L" normal
2025-06-30 05:41:27.324 E 4 UPPERED "L" normal
2025-06-30 05:41:27.337 E Query: select * from v2_chk_ir_asc
2025-06-30 05:41:27.347 E Select Expression
2025-06-30 05:41:27.361 E ....-> Filter
2025-06-30 05:41:27.373 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:27.400 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:27.425 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:27.432 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:27.457 E 3 lowered "L" normal
2025-06-30 05:41:27.468 E 4 UPPERED "L" normal
2025-06-30 05:41:27.482 E 1 lowered "L" w/accent
2025-06-30 05:41:27.492 E 2 UPPERED "L" w/accent
2025-06-30 05:41:27.499 E Query: select * from v2_chk_ir_dec
2025-06-30 05:41:27.505 E Select Expression
2025-06-30 05:41:27.515 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:27.523 E ........-> Filter
2025-06-30 05:41:27.532 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:27.549 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:27.576 E ................-> Bitmap
2025-06-30 05:41:27.588 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:27.598 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:27.616 E 2 UPPERED "L" w/accent
2025-06-30 05:41:27.629 E 1 lowered "L" w/accent
2025-06-30 05:41:27.639 E 4 UPPERED "L" normal
2025-06-30 05:41:27.648 E 3 lowered "L" normal
2025-06-30 05:41:27.655 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-30 05:41:27.663 E Query: select * from v1_chk_nr
2025-06-30 05:41:27.674 E Select Expression
2025-06-30 05:41:27.685 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:27.694 E ........-> Filter
2025-06-30 05:41:27.705 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-30 05:41:27.725 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-30 05:41:27.737 E 3 lowered "D" normal
2025-06-30 05:41:27.745 E Query: select * from v1_chk_ir_asc
2025-06-30 05:41:27.752 E Select Expression
2025-06-30 05:41:27.765 E ....-> Filter
2025-06-30 05:41:27.774 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-30 05:41:27.796 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:27.813 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:27.820 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-30 05:41:27.835 E 3 lowered "D" normal
2025-06-30 05:41:27.847 E Query: select * from v1_chk_ir_dec
2025-06-30 05:41:27.857 E Select Expression
2025-06-30 05:41:27.865 E ....-> Filter
2025-06-30 05:41:27.872 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-30 05:41:27.886 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-30 05:41:27.900 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:27.907 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-30 05:41:27.921 E 3 lowered "D" normal
2025-06-30 05:41:27.927 E Query: select * from v2_chk_nr
2025-06-30 05:41:27.937 E Select Expression
2025-06-30 05:41:27.950 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:27.960 E ........-> Filter
2025-06-30 05:41:27.967 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-30 05:41:27.983 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-30 05:41:27.998 E 3 lowered "L" normal
2025-06-30 05:41:28.006 E Query: select * from v2_chk_ir_asc
2025-06-30 05:41:28.014 E Select Expression
2025-06-30 05:41:28.021 E ....-> Filter
2025-06-30 05:41:28.029 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-30 05:41:28.045 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:28.062 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:28.069 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:28.091 E 3 lowered "L" normal
2025-06-30 05:41:28.098 E Query: select * from v2_chk_ir_dec
2025-06-30 05:41:28.105 E Select Expression
2025-06-30 05:41:28.113 E ....-> Sort (record length: NN, key length: MM)
2025-06-30 05:41:28.120 E ........-> Filter
2025-06-30 05:41:28.128 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-30 05:41:28.143 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-30 05:41:28.158 E ................-> Bitmap
2025-06-30 05:41:28.166 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:28.173 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-30 05:41:28.185 E 3 lowered "L" normal
2025-06-30 05:41:28.191
2025-06-30 05:41:28.197 tests/bugs/gh_8434_test.py:371: AssertionError
2025-06-30 05:41:28.204 ---------------------------- Captured stdout setup -----------------------------
2025-06-30 05:41:28.215 Creating db: localhost:/var/tmp/qa_2024/test_11741/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
|