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-28 05:17:10.612
2025-06-28 05:17:10.617 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-28 05:17:10.623 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-28 05:17:10.628
2025-06-28 05:17:10.634 @pytest.mark.version('>=6')
2025-06-28 05:17:10.644 def test_1(act: Action, capsys):
2025-06-28 05:17:10.653 qry_map = {
2025-06-28 05:17:10.660 1 : 'select * from v1_chk_nr'
2025-06-28 05:17:10.666 ,2 : 'select * from v1_chk_ir_asc'
2025-06-28 05:17:10.675 ,3 : 'select * from v1_chk_ir_dec'
2025-06-28 05:17:10.684 ,4 : 'select * from v2_chk_nr'
2025-06-28 05:17:10.692 ,5 : 'select * from v2_chk_ir_asc'
2025-06-28 05:17:10.699 ,6 : 'select * from v2_chk_ir_dec'
2025-06-28 05:17:10.705 }
2025-06-28 05:17:10.711
2025-06-28 05:17:10.720 alter_lst = (
2025-06-28 05:17:10.731 ''
2025-06-28 05:17:10.744 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-06-28 05:17:10.754 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-06-28 05:17:10.763 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-06-28 05:17:10.773 )
2025-06-28 05:17:10.781
2025-06-28 05:17:10.788 with act.db.connect(charset = 'utf8') as con:
2025-06-28 05:17:10.794 cur = con.cursor()
2025-06-28 05:17:10.804 for alter_i in alter_lst:
2025-06-28 05:17:10.814 if alter_i.strip():
2025-06-28 05:17:10.821 con.execute_immediate(alter_i)
2025-06-28 05:17:10.828 con.commit()
2025-06-28 05:17:10.835 print(f'\nAfter {alter_i}:')
2025-06-28 05:17:10.841 else:
2025-06-28 05:17:10.850 print('Initial state:')
2025-06-28 05:17:10.862
2025-06-28 05:17:10.872 for k, v in qry_map.items():
2025-06-28 05:17:10.883 ps, rs = None, None
2025-06-28 05:17:10.893 try:
2025-06-28 05:17:10.905 ps = cur.prepare(v)
2025-06-28 05:17:10.912
2025-06-28 05:17:10.917 print('Query:', v)
2025-06-28 05:17:10.922 # Print explained plan with padding eash line by dots in order to see indentations:
2025-06-28 05:17:10.929 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-06-28 05:17:10.935 print('')
2025-06-28 05:17:10.944
2025-06-28 05:17:10.952 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-06-28 05:17:10.959 # We have to store result of cur.execute(<psInstance>) in order to
2025-06-28 05:17:10.966 # close it explicitly.
2025-06-28 05:17:10.974 # Otherwise AV can occur during Python garbage collection and this
2025-06-28 05:17:10.981 # causes pytest to hang on its final point.
2025-06-28 05:17:10.988 # Explained by hvlad, email 26.10.24 17:42
2025-06-28 05:17:10.996 rs = cur.execute(ps)
2025-06-28 05:17:11.003 for r in rs:
2025-06-28 05:17:11.010 print(r[0], r[1])
2025-06-28 05:17:11.017 except DatabaseError as e:
2025-06-28 05:17:11.022 print(e.__str__())
2025-06-28 05:17:11.028 print(e.gds_codes)
2025-06-28 05:17:11.035 finally:
2025-06-28 05:17:11.042 if rs:
2025-06-28 05:17:11.049 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-06-28 05:17:11.056 if ps:
2025-06-28 05:17:11.063 ps.free()
2025-06-28 05:17:11.070
2025-06-28 05:17:11.078
2025-06-28 05:17:11.086 expected_stdout = """
2025-06-28 05:17:11.097 Initial state:
2025-06-28 05:17:11.105
2025-06-28 05:17:11.111 Query: select * from v1_chk_nr
2025-06-28 05:17:11.117 Select Expression
2025-06-28 05:17:11.123 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.131 ........-> Filter
2025-06-28 05:17:11.142 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:11.150 3 lowered "D" normal
2025-06-28 05:17:11.158 Query: select * from v1_chk_ir_asc
2025-06-28 05:17:11.164 Select Expression
2025-06-28 05:17:11.170 ....-> Filter
2025-06-28 05:17:11.176 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:11.183 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:11.191 3 lowered "D" normal
2025-06-28 05:17:11.203 Query: select * from v1_chk_ir_dec
2025-06-28 05:17:11.211 Select Expression
2025-06-28 05:17:11.219 ....-> Filter
2025-06-28 05:17:11.229 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:11.238 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:11.245 3 lowered "D" normal
2025-06-28 05:17:11.251 Query: select * from v2_chk_nr
2025-06-28 05:17:11.257 Select Expression
2025-06-28 05:17:11.264 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.271 ........-> Filter
2025-06-28 05:17:11.278 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:11.285 3 lowered "L" normal
2025-06-28 05:17:11.292 Query: select * from v2_chk_ir_asc
2025-06-28 05:17:11.299 Select Expression
2025-06-28 05:17:11.306 ....-> Filter
2025-06-28 05:17:11.313 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:11.319 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:11.324 3 lowered "L" normal
2025-06-28 05:17:11.329 Query: select * from v2_chk_ir_dec
2025-06-28 05:17:11.334 Select Expression
2025-06-28 05:17:11.338 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.343 ........-> Filter
2025-06-28 05:17:11.350 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:11.356 ................-> Bitmap
2025-06-28 05:17:11.363 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:11.370 3 lowered "L" normal
2025-06-28 05:17:11.377
2025-06-28 05:17:11.386
2025-06-28 05:17:11.398 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-28 05:17:11.409
2025-06-28 05:17:11.421 Query: select * from v1_chk_nr
2025-06-28 05:17:11.434 Select Expression
2025-06-28 05:17:11.444 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.452 ........-> Filter
2025-06-28 05:17:11.463 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:11.476 3 lowered "D" normal
2025-06-28 05:17:11.485 4 UPPERED "D" normal
2025-06-28 05:17:11.493 Query: select * from v1_chk_ir_asc
2025-06-28 05:17:11.504 Select Expression
2025-06-28 05:17:11.515 ....-> Filter
2025-06-28 05:17:11.523 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:11.531 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:11.539 3 lowered "D" normal
2025-06-28 05:17:11.550 4 UPPERED "D" normal
2025-06-28 05:17:11.562 Query: select * from v1_chk_ir_dec
2025-06-28 05:17:11.574 Select Expression
2025-06-28 05:17:11.582 ....-> Filter
2025-06-28 05:17:11.591 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:11.598 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:11.604 4 UPPERED "D" normal
2025-06-28 05:17:11.610 3 lowered "D" normal
2025-06-28 05:17:11.615 Query: select * from v2_chk_nr
2025-06-28 05:17:11.626 Select Expression
2025-06-28 05:17:11.634 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.640 ........-> Filter
2025-06-28 05:17:11.652 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:11.663 3 lowered "L" normal
2025-06-28 05:17:11.671 4 UPPERED "L" normal
2025-06-28 05:17:11.678 Query: select * from v2_chk_ir_asc
2025-06-28 05:17:11.683 Select Expression
2025-06-28 05:17:11.697 ....-> Filter
2025-06-28 05:17:11.707 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:11.715 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:11.722 3 lowered "L" normal
2025-06-28 05:17:11.728 4 UPPERED "L" normal
2025-06-28 05:17:11.735 Query: select * from v2_chk_ir_dec
2025-06-28 05:17:11.740 Select Expression
2025-06-28 05:17:11.744 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.749 ........-> Filter
2025-06-28 05:17:11.754 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:11.758 ................-> Bitmap
2025-06-28 05:17:11.765 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:11.771 4 UPPERED "L" normal
2025-06-28 05:17:11.777 3 lowered "L" normal
2025-06-28 05:17:11.783
2025-06-28 05:17:11.789
2025-06-28 05:17:11.795 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-28 05:17:11.803
2025-06-28 05:17:11.814 Query: select * from v1_chk_nr
2025-06-28 05:17:11.822 Select Expression
2025-06-28 05:17:11.829 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:11.835 ........-> Filter
2025-06-28 05:17:11.841 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:11.847 1 lowered "D" w/accent
2025-06-28 05:17:11.852 2 UPPERED "D" w/accent
2025-06-28 05:17:11.858 3 lowered "D" normal
2025-06-28 05:17:11.864 4 UPPERED "D" normal
2025-06-28 05:17:11.871 Query: select * from v1_chk_ir_asc
2025-06-28 05:17:11.882 Select Expression
2025-06-28 05:17:11.890 ....-> Filter
2025-06-28 05:17:11.897 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:11.903 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:11.911 3 lowered "D" normal
2025-06-28 05:17:11.918 4 UPPERED "D" normal
2025-06-28 05:17:11.925 1 lowered "D" w/accent
2025-06-28 05:17:11.932 2 UPPERED "D" w/accent
2025-06-28 05:17:11.939 Query: select * from v1_chk_ir_dec
2025-06-28 05:17:11.947 Select Expression
2025-06-28 05:17:11.953 ....-> Filter
2025-06-28 05:17:11.960 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:11.967 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:11.973 2 UPPERED "D" w/accent
2025-06-28 05:17:11.979 1 lowered "D" w/accent
2025-06-28 05:17:11.985 4 UPPERED "D" normal
2025-06-28 05:17:11.994 3 lowered "D" normal
2025-06-28 05:17:12.005 Query: select * from v2_chk_nr
2025-06-28 05:17:12.017 Select Expression
2025-06-28 05:17:12.028 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.040 ........-> Filter
2025-06-28 05:17:12.050 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:12.057 1 lowered "L" w/accent
2025-06-28 05:17:12.062 2 UPPERED "L" w/accent
2025-06-28 05:17:12.068 3 lowered "L" normal
2025-06-28 05:17:12.075 4 UPPERED "L" normal
2025-06-28 05:17:12.083 Query: select * from v2_chk_ir_asc
2025-06-28 05:17:12.095 Select Expression
2025-06-28 05:17:12.104 ....-> Filter
2025-06-28 05:17:12.111 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:12.117 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:12.123 3 lowered "L" normal
2025-06-28 05:17:12.129 4 UPPERED "L" normal
2025-06-28 05:17:12.134 1 lowered "L" w/accent
2025-06-28 05:17:12.140 2 UPPERED "L" w/accent
2025-06-28 05:17:12.147 Query: select * from v2_chk_ir_dec
2025-06-28 05:17:12.159 Select Expression
2025-06-28 05:17:12.168 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.175 ........-> Filter
2025-06-28 05:17:12.182 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:12.189 ................-> Bitmap
2025-06-28 05:17:12.195 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:12.201 2 UPPERED "L" w/accent
2025-06-28 05:17:12.207 1 lowered "L" w/accent
2025-06-28 05:17:12.213 4 UPPERED "L" normal
2025-06-28 05:17:12.219 3 lowered "L" normal
2025-06-28 05:17:12.224
2025-06-28 05:17:12.230
2025-06-28 05:17:12.240 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-28 05:17:12.250
2025-06-28 05:17:12.257 Query: select * from v1_chk_nr
2025-06-28 05:17:12.264 Select Expression
2025-06-28 05:17:12.270 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.276 ........-> Filter
2025-06-28 05:17:12.282 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:12.287 3 lowered "D" normal
2025-06-28 05:17:12.295 Query: select * from v1_chk_ir_asc
2025-06-28 05:17:12.305 Select Expression
2025-06-28 05:17:12.313 ....-> Filter
2025-06-28 05:17:12.320 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:12.327 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:12.332 3 lowered "D" normal
2025-06-28 05:17:12.338 Query: select * from v1_chk_ir_dec
2025-06-28 05:17:12.348 Select Expression
2025-06-28 05:17:12.357 ....-> Filter
2025-06-28 05:17:12.369 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:12.379 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:12.387 3 lowered "D" normal
2025-06-28 05:17:12.395 Query: select * from v2_chk_nr
2025-06-28 05:17:12.402 Select Expression
2025-06-28 05:17:12.409 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.415 ........-> Filter
2025-06-28 05:17:12.421 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:12.427 3 lowered "L" normal
2025-06-28 05:17:12.432 Query: select * from v2_chk_ir_asc
2025-06-28 05:17:12.438 Select Expression
2025-06-28 05:17:12.444 ....-> Filter
2025-06-28 05:17:12.450 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:12.460 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:12.469 3 lowered "L" normal
2025-06-28 05:17:12.477 Query: select * from v2_chk_ir_dec
2025-06-28 05:17:12.483 Select Expression
2025-06-28 05:17:12.491 ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.501 ........-> Filter
2025-06-28 05:17:12.510 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:12.516 ................-> Bitmap
2025-06-28 05:17:12.525 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:12.537 3 lowered "L" normal
2025-06-28 05:17:12.547 """
2025-06-28 05:17:12.555
2025-06-28 05:17:12.563 act.expected_stdout = expected_stdout
2025-06-28 05:17:12.569
2025-06-28 05:17:12.575 act.stdout = capsys.readouterr().out
2025-06-28 05:17:12.582 > assert act.clean_stdout == act.clean_expected_stdout
2025-06-28 05:17:12.587 E assert
2025-06-28 05:17:12.594 E Initial state:
2025-06-28 05:17:12.604 E Query: select * from v1_chk_nr
2025-06-28 05:17:12.613 E Select Expression
2025-06-28 05:17:12.621 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.628 E ........-> Filter
2025-06-28 05:17:12.634 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:12.652 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 05:17:12.665 E 3 lowered "D" normal
2025-06-28 05:17:12.672 E Query: select * from v1_chk_ir_asc
2025-06-28 05:17:12.677 E Select Expression
2025-06-28 05:17:12.682 E ....-> Filter
2025-06-28 05:17:12.686 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:12.696 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:12.712 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:12.720 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:12.739 E 3 lowered "D" normal
2025-06-28 05:17:12.750 E Query: select * from v1_chk_ir_dec
2025-06-28 05:17:12.761 E Select Expression
2025-06-28 05:17:12.770 E ....-> Filter
2025-06-28 05:17:12.778 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:12.799 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:12.819 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:12.832 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:12.850 E 3 lowered "D" normal
2025-06-28 05:17:12.863 E Query: select * from v2_chk_nr
2025-06-28 05:17:12.873 E Select Expression
2025-06-28 05:17:12.880 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:12.887 E ........-> Filter
2025-06-28 05:17:12.894 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:12.907 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 05:17:12.927 E 3 lowered "L" normal
2025-06-28 05:17:12.934 E Query: select * from v2_chk_ir_asc
2025-06-28 05:17:12.941 E Select Expression
2025-06-28 05:17:12.948 E ....-> Filter
2025-06-28 05:17:12.955 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:12.972 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:12.987 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:12.995 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.015 E 3 lowered "L" normal
2025-06-28 05:17:13.022 E Query: select * from v2_chk_ir_dec
2025-06-28 05:17:13.028 E Select Expression
2025-06-28 05:17:13.033 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:13.038 E ........-> Filter
2025-06-28 05:17:13.043 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:13.054 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:13.069 E ................-> Bitmap
2025-06-28 05:17:13.076 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.085 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.107 E 3 lowered "L" normal
2025-06-28 05:17:13.116 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-28 05:17:13.122 E Query: select * from v1_chk_nr
2025-06-28 05:17:13.130 E Select Expression
2025-06-28 05:17:13.138 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:13.146 E ........-> Filter
2025-06-28 05:17:13.158 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:13.175 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 05:17:13.191 E 3 lowered "D" normal
2025-06-28 05:17:13.197 E 4 UPPERED "D" normal
2025-06-28 05:17:13.203 E Query: select * from v1_chk_ir_asc
2025-06-28 05:17:13.210 E Select Expression
2025-06-28 05:17:13.215 E ....-> Filter
2025-06-28 05:17:13.221 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:13.233 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:13.247 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:13.255 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:13.274 E 3 lowered "D" normal
2025-06-28 05:17:13.283 E 4 UPPERED "D" normal
2025-06-28 05:17:13.290 E Query: select * from v1_chk_ir_dec
2025-06-28 05:17:13.294 E Select Expression
2025-06-28 05:17:13.299 E ....-> Filter
2025-06-28 05:17:13.304 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:13.315 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:13.327 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:13.340 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:13.359 E 4 UPPERED "D" normal
2025-06-28 05:17:13.367 E 3 lowered "D" normal
2025-06-28 05:17:13.373 E Query: select * from v2_chk_nr
2025-06-28 05:17:13.380 E Select Expression
2025-06-28 05:17:13.386 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:13.393 E ........-> Filter
2025-06-28 05:17:13.399 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:13.414 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 05:17:13.438 E 3 lowered "L" normal
2025-06-28 05:17:13.448 E 4 UPPERED "L" normal
2025-06-28 05:17:13.459 E Query: select * from v2_chk_ir_asc
2025-06-28 05:17:13.470 E Select Expression
2025-06-28 05:17:13.483 E ....-> Filter
2025-06-28 05:17:13.495 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:13.512 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:13.525 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.530 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.542 E 3 lowered "L" normal
2025-06-28 05:17:13.548 E 4 UPPERED "L" normal
2025-06-28 05:17:13.553 E Query: select * from v2_chk_ir_dec
2025-06-28 05:17:13.559 E Select Expression
2025-06-28 05:17:13.565 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:13.570 E ........-> Filter
2025-06-28 05:17:13.576 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:13.588 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:13.607 E ................-> Bitmap
2025-06-28 05:17:13.619 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.628 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:13.643 E 4 UPPERED "L" normal
2025-06-28 05:17:13.649 E 3 lowered "L" normal
2025-06-28 05:17:13.656 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-28 05:17:13.662 E Query: select * from v1_chk_nr
2025-06-28 05:17:13.668 E Select Expression
2025-06-28 05:17:13.674 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:13.683 E ........-> Filter
2025-06-28 05:17:13.691 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:13.710 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 05:17:13.722 E 1 lowered "D" w/accent
2025-06-28 05:17:13.729 E 2 UPPERED "D" w/accent
2025-06-28 05:17:13.735 E 3 lowered "D" normal
2025-06-28 05:17:13.741 E 4 UPPERED "D" normal
2025-06-28 05:17:13.747 E Query: select * from v1_chk_ir_asc
2025-06-28 05:17:13.753 E Select Expression
2025-06-28 05:17:13.758 E ....-> Filter
2025-06-28 05:17:13.763 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:13.774 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:13.795 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:13.803 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:13.821 E 3 lowered "D" normal
2025-06-28 05:17:13.831 E 4 UPPERED "D" normal
2025-06-28 05:17:13.843 E 1 lowered "D" w/accent
2025-06-28 05:17:13.852 E 2 UPPERED "D" w/accent
2025-06-28 05:17:13.860 E Query: select * from v1_chk_ir_dec
2025-06-28 05:17:13.867 E Select Expression
2025-06-28 05:17:13.875 E ....-> Filter
2025-06-28 05:17:13.887 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:13.908 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:13.921 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:13.926 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:13.938 E 2 UPPERED "D" w/accent
2025-06-28 05:17:13.943 E 1 lowered "D" w/accent
2025-06-28 05:17:13.950 E 4 UPPERED "D" normal
2025-06-28 05:17:13.957 E 3 lowered "D" normal
2025-06-28 05:17:13.964 E Query: select * from v2_chk_nr
2025-06-28 05:17:13.971 E Select Expression
2025-06-28 05:17:13.978 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:13.985 E ........-> Filter
2025-06-28 05:17:13.992 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:14.013 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 05:17:14.025 E 1 lowered "L" w/accent
2025-06-28 05:17:14.031 E 2 UPPERED "L" w/accent
2025-06-28 05:17:14.036 E 3 lowered "L" normal
2025-06-28 05:17:14.042 E 4 UPPERED "L" normal
2025-06-28 05:17:14.048 E Query: select * from v2_chk_ir_asc
2025-06-28 05:17:14.054 E Select Expression
2025-06-28 05:17:14.062 E ....-> Filter
2025-06-28 05:17:14.070 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:14.083 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:14.102 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.115 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.135 E 3 lowered "L" normal
2025-06-28 05:17:14.141 E 4 UPPERED "L" normal
2025-06-28 05:17:14.148 E 1 lowered "L" w/accent
2025-06-28 05:17:14.154 E 2 UPPERED "L" w/accent
2025-06-28 05:17:14.161 E Query: select * from v2_chk_ir_dec
2025-06-28 05:17:14.171 E Select Expression
2025-06-28 05:17:14.180 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:14.188 E ........-> Filter
2025-06-28 05:17:14.200 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:14.220 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:14.235 E ................-> Bitmap
2025-06-28 05:17:14.243 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.253 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.270 E 2 UPPERED "L" w/accent
2025-06-28 05:17:14.278 E 1 lowered "L" w/accent
2025-06-28 05:17:14.285 E 4 UPPERED "L" normal
2025-06-28 05:17:14.297 E 3 lowered "L" normal
2025-06-28 05:17:14.307 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-28 05:17:14.316 E Query: select * from v1_chk_nr
2025-06-28 05:17:14.325 E Select Expression
2025-06-28 05:17:14.332 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:14.338 E ........-> Filter
2025-06-28 05:17:14.347 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 05:17:14.362 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 05:17:14.375 E 3 lowered "D" normal
2025-06-28 05:17:14.382 E Query: select * from v1_chk_ir_asc
2025-06-28 05:17:14.389 E Select Expression
2025-06-28 05:17:14.401 E ....-> Filter
2025-06-28 05:17:14.411 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 05:17:14.426 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:14.439 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:14.445 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 05:17:14.457 E 3 lowered "D" normal
2025-06-28 05:17:14.462 E Query: select * from v1_chk_ir_dec
2025-06-28 05:17:14.470 E Select Expression
2025-06-28 05:17:14.477 E ....-> Filter
2025-06-28 05:17:14.484 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 05:17:14.511 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 05:17:14.535 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:14.545 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 05:17:14.569 E 3 lowered "D" normal
2025-06-28 05:17:14.580 E Query: select * from v2_chk_nr
2025-06-28 05:17:14.591 E Select Expression
2025-06-28 05:17:14.603 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:14.611 E ........-> Filter
2025-06-28 05:17:14.618 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 05:17:14.632 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 05:17:14.643 E 3 lowered "L" normal
2025-06-28 05:17:14.648 E Query: select * from v2_chk_ir_asc
2025-06-28 05:17:14.654 E Select Expression
2025-06-28 05:17:14.660 E ....-> Filter
2025-06-28 05:17:14.666 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 05:17:14.680 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:14.699 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.710 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.730 E 3 lowered "L" normal
2025-06-28 05:17:14.737 E Query: select * from v2_chk_ir_dec
2025-06-28 05:17:14.743 E Select Expression
2025-06-28 05:17:14.749 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 05:17:14.756 E ........-> Filter
2025-06-28 05:17:14.763 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 05:17:14.780 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 05:17:14.794 E ................-> Bitmap
2025-06-28 05:17:14.801 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.807 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 05:17:14.816 E 3 lowered "L" normal
2025-06-28 05:17:14.821
2025-06-28 05:17:14.826 tests/bugs/gh_8434_test.py:371: AssertionError
2025-06-28 05:17:14.831 ---------------------------- Captured stdout setup -----------------------------
2025-06-28 05:17:14.836 Creating db: localhost:/var/tmp/qa_2024/test_11736/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
|