2 @message |
assert
Initial state:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
1 lowered "D" w/accent
2 UPPERED "D" w/accent
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
1 lowered "D" w/accent
2 UPPERED "D" w/accent
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2 UPPERED "D" w/accent
1 lowered "D" w/accent
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
1 lowered "L" w/accent
2 UPPERED "L" w/accent
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
1 lowered "L" w/accent
2 UPPERED "L" w/accent
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2 UPPERED "L" w/accent
1 lowered "L" w/accent
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
+ ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_ASC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
- ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
+ ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
- ............-> Index "TEST1_DEC" Range Scan (full match)
+ ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
- ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
+ ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
- ............-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
- ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
+ ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
................-> Bitmap
- ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
+ ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
LOG DETAILS:
2025-07-03 05:19:34.754
2025-07-03 05:19:34.760 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-03 05:19:34.767 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-03 05:19:34.774
2025-07-03 05:19:34.782 @pytest.mark.version('>=6')
2025-07-03 05:19:34.793 def test_1(act: Action, capsys):
2025-07-03 05:19:34.802 qry_map = {
2025-07-03 05:19:34.808 1 : 'select * from v1_chk_nr'
2025-07-03 05:19:34.814 ,2 : 'select * from v1_chk_ir_asc'
2025-07-03 05:19:34.821 ,3 : 'select * from v1_chk_ir_dec'
2025-07-03 05:19:34.828 ,4 : 'select * from v2_chk_nr'
2025-07-03 05:19:34.835 ,5 : 'select * from v2_chk_ir_asc'
2025-07-03 05:19:34.842 ,6 : 'select * from v2_chk_ir_dec'
2025-07-03 05:19:34.853 }
2025-07-03 05:19:34.862
2025-07-03 05:19:34.870 alter_lst = (
2025-07-03 05:19:34.877 ''
2025-07-03 05:19:34.883 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-07-03 05:19:34.890 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-07-03 05:19:34.896 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-07-03 05:19:34.902 )
2025-07-03 05:19:34.910
2025-07-03 05:19:34.918 with act.db.connect(charset = 'utf8') as con:
2025-07-03 05:19:34.924 cur = con.cursor()
2025-07-03 05:19:34.930 for alter_i in alter_lst:
2025-07-03 05:19:34.934 if alter_i.strip():
2025-07-03 05:19:34.940 con.execute_immediate(alter_i)
2025-07-03 05:19:34.946 con.commit()
2025-07-03 05:19:34.952 print(f'\nAfter {alter_i}:')
2025-07-03 05:19:34.958 else:
2025-07-03 05:19:34.966 print('Initial state:')
2025-07-03 05:19:34.973
2025-07-03 05:19:34.979 for k, v in qry_map.items():
2025-07-03 05:19:34.986 ps, rs = None, None
2025-07-03 05:19:34.993 try:
2025-07-03 05:19:34.999 ps = cur.prepare(v)
2025-07-03 05:19:35.011
2025-07-03 05:19:35.018 print('Query:', v)
2025-07-03 05:19:35.025 # Print explained plan with padding eash line by dots in order to see indentations:
2025-07-03 05:19:35.031 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-07-03 05:19:35.036 print('')
2025-07-03 05:19:35.040
2025-07-03 05:19:35.044 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-07-03 05:19:35.049 # We have to store result of cur.execute(<psInstance>) in order to
2025-07-03 05:19:35.053 # close it explicitly.
2025-07-03 05:19:35.058 # Otherwise AV can occur during Python garbage collection and this
2025-07-03 05:19:35.062 # causes pytest to hang on its final point.
2025-07-03 05:19:35.067 # Explained by hvlad, email 26.10.24 17:42
2025-07-03 05:19:35.071 rs = cur.execute(ps)
2025-07-03 05:19:35.075 for r in rs:
2025-07-03 05:19:35.080 print(r[0], r[1])
2025-07-03 05:19:35.084 except DatabaseError as e:
2025-07-03 05:19:35.089 print(e.__str__())
2025-07-03 05:19:35.093 print(e.gds_codes)
2025-07-03 05:19:35.097 finally:
2025-07-03 05:19:35.102 if rs:
2025-07-03 05:19:35.109 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-07-03 05:19:35.115 if ps:
2025-07-03 05:19:35.127 ps.free()
2025-07-03 05:19:35.135
2025-07-03 05:19:35.141
2025-07-03 05:19:35.145 expected_stdout = """
2025-07-03 05:19:35.150 Initial state:
2025-07-03 05:19:35.154
2025-07-03 05:19:35.160 Query: select * from v1_chk_nr
2025-07-03 05:19:35.167 Select Expression
2025-07-03 05:19:35.173 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.179 ........-> Filter
2025-07-03 05:19:35.186 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:35.192 3 lowered "D" normal
2025-07-03 05:19:35.199 Query: select * from v1_chk_ir_asc
2025-07-03 05:19:35.211 Select Expression
2025-07-03 05:19:35.219 ....-> Filter
2025-07-03 05:19:35.226 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:35.232 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:35.238 3 lowered "D" normal
2025-07-03 05:19:35.244 Query: select * from v1_chk_ir_dec
2025-07-03 05:19:35.250 Select Expression
2025-07-03 05:19:35.263 ....-> Filter
2025-07-03 05:19:35.273 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:35.281 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:35.287 3 lowered "D" normal
2025-07-03 05:19:35.293 Query: select * from v2_chk_nr
2025-07-03 05:19:35.297 Select Expression
2025-07-03 05:19:35.302 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.306 ........-> Filter
2025-07-03 05:19:35.312 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:35.318 3 lowered "L" normal
2025-07-03 05:19:35.323 Query: select * from v2_chk_ir_asc
2025-07-03 05:19:35.330 Select Expression
2025-07-03 05:19:35.336 ....-> Filter
2025-07-03 05:19:35.343 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:35.349 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:35.356 3 lowered "L" normal
2025-07-03 05:19:35.364 Query: select * from v2_chk_ir_dec
2025-07-03 05:19:35.370 Select Expression
2025-07-03 05:19:35.377 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.384 ........-> Filter
2025-07-03 05:19:35.391 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:35.398 ................-> Bitmap
2025-07-03 05:19:35.405 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:35.411 3 lowered "L" normal
2025-07-03 05:19:35.418
2025-07-03 05:19:35.424
2025-07-03 05:19:35.431 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-07-03 05:19:35.438
2025-07-03 05:19:35.445 Query: select * from v1_chk_nr
2025-07-03 05:19:35.451 Select Expression
2025-07-03 05:19:35.458 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.463 ........-> Filter
2025-07-03 05:19:35.469 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:35.474 3 lowered "D" normal
2025-07-03 05:19:35.479 4 UPPERED "D" normal
2025-07-03 05:19:35.485 Query: select * from v1_chk_ir_asc
2025-07-03 05:19:35.491 Select Expression
2025-07-03 05:19:35.497 ....-> Filter
2025-07-03 05:19:35.503 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:35.509 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:35.515 3 lowered "D" normal
2025-07-03 05:19:35.521 4 UPPERED "D" normal
2025-07-03 05:19:35.528 Query: select * from v1_chk_ir_dec
2025-07-03 05:19:35.533 Select Expression
2025-07-03 05:19:35.539 ....-> Filter
2025-07-03 05:19:35.545 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:35.550 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:35.555 4 UPPERED "D" normal
2025-07-03 05:19:35.559 3 lowered "D" normal
2025-07-03 05:19:35.564 Query: select * from v2_chk_nr
2025-07-03 05:19:35.569 Select Expression
2025-07-03 05:19:35.573 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.578 ........-> Filter
2025-07-03 05:19:35.583 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:35.587 3 lowered "L" normal
2025-07-03 05:19:35.592 4 UPPERED "L" normal
2025-07-03 05:19:35.597 Query: select * from v2_chk_ir_asc
2025-07-03 05:19:35.601 Select Expression
2025-07-03 05:19:35.605 ....-> Filter
2025-07-03 05:19:35.610 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:35.615 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:35.619 3 lowered "L" normal
2025-07-03 05:19:35.624 4 UPPERED "L" normal
2025-07-03 05:19:35.630 Query: select * from v2_chk_ir_dec
2025-07-03 05:19:35.636 Select Expression
2025-07-03 05:19:35.644 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.651 ........-> Filter
2025-07-03 05:19:35.658 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:35.665 ................-> Bitmap
2025-07-03 05:19:35.672 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:35.678 4 UPPERED "L" normal
2025-07-03 05:19:35.690 3 lowered "L" normal
2025-07-03 05:19:35.699
2025-07-03 05:19:35.706
2025-07-03 05:19:35.712 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-07-03 05:19:35.718
2025-07-03 05:19:35.724 Query: select * from v1_chk_nr
2025-07-03 05:19:35.730 Select Expression
2025-07-03 05:19:35.736 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.742 ........-> Filter
2025-07-03 05:19:35.751 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:35.759 1 lowered "D" w/accent
2025-07-03 05:19:35.769 2 UPPERED "D" w/accent
2025-07-03 05:19:35.777 3 lowered "D" normal
2025-07-03 05:19:35.786 4 UPPERED "D" normal
2025-07-03 05:19:35.793 Query: select * from v1_chk_ir_asc
2025-07-03 05:19:35.799 Select Expression
2025-07-03 05:19:35.805 ....-> Filter
2025-07-03 05:19:35.811 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:35.816 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:35.821 3 lowered "D" normal
2025-07-03 05:19:35.825 4 UPPERED "D" normal
2025-07-03 05:19:35.830 1 lowered "D" w/accent
2025-07-03 05:19:35.835 2 UPPERED "D" w/accent
2025-07-03 05:19:35.841 Query: select * from v1_chk_ir_dec
2025-07-03 05:19:35.852 Select Expression
2025-07-03 05:19:35.859 ....-> Filter
2025-07-03 05:19:35.868 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:35.880 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:35.890 2 UPPERED "D" w/accent
2025-07-03 05:19:35.899 1 lowered "D" w/accent
2025-07-03 05:19:35.911 4 UPPERED "D" normal
2025-07-03 05:19:35.921 3 lowered "D" normal
2025-07-03 05:19:35.929 Query: select * from v2_chk_nr
2025-07-03 05:19:35.936 Select Expression
2025-07-03 05:19:35.943 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:35.948 ........-> Filter
2025-07-03 05:19:35.954 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:35.962 1 lowered "L" w/accent
2025-07-03 05:19:35.969 2 UPPERED "L" w/accent
2025-07-03 05:19:35.974 3 lowered "L" normal
2025-07-03 05:19:35.980 4 UPPERED "L" normal
2025-07-03 05:19:35.986 Query: select * from v2_chk_ir_asc
2025-07-03 05:19:35.992 Select Expression
2025-07-03 05:19:35.998 ....-> Filter
2025-07-03 05:19:36.004 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:36.010 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.016 3 lowered "L" normal
2025-07-03 05:19:36.021 4 UPPERED "L" normal
2025-07-03 05:19:36.027 1 lowered "L" w/accent
2025-07-03 05:19:36.032 2 UPPERED "L" w/accent
2025-07-03 05:19:36.038 Query: select * from v2_chk_ir_dec
2025-07-03 05:19:36.044 Select Expression
2025-07-03 05:19:36.051 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.058 ........-> Filter
2025-07-03 05:19:36.065 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:36.071 ................-> Bitmap
2025-07-03 05:19:36.077 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.082 2 UPPERED "L" w/accent
2025-07-03 05:19:36.089 1 lowered "L" w/accent
2025-07-03 05:19:36.095 4 UPPERED "L" normal
2025-07-03 05:19:36.101 3 lowered "L" normal
2025-07-03 05:19:36.107
2025-07-03 05:19:36.113
2025-07-03 05:19:36.119 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-07-03 05:19:36.126
2025-07-03 05:19:36.132 Query: select * from v1_chk_nr
2025-07-03 05:19:36.138 Select Expression
2025-07-03 05:19:36.145 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.152 ........-> Filter
2025-07-03 05:19:36.166 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:36.174 3 lowered "D" normal
2025-07-03 05:19:36.186 Query: select * from v1_chk_ir_asc
2025-07-03 05:19:36.197 Select Expression
2025-07-03 05:19:36.205 ....-> Filter
2025-07-03 05:19:36.217 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:36.227 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:36.235 3 lowered "D" normal
2025-07-03 05:19:36.241 Query: select * from v1_chk_ir_dec
2025-07-03 05:19:36.248 Select Expression
2025-07-03 05:19:36.254 ....-> Filter
2025-07-03 05:19:36.260 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:36.267 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:36.273 3 lowered "D" normal
2025-07-03 05:19:36.279 Query: select * from v2_chk_nr
2025-07-03 05:19:36.286 Select Expression
2025-07-03 05:19:36.292 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.298 ........-> Filter
2025-07-03 05:19:36.311 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:36.322 3 lowered "L" normal
2025-07-03 05:19:36.330 Query: select * from v2_chk_ir_asc
2025-07-03 05:19:36.337 Select Expression
2025-07-03 05:19:36.343 ....-> Filter
2025-07-03 05:19:36.350 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:36.356 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.362 3 lowered "L" normal
2025-07-03 05:19:36.368 Query: select * from v2_chk_ir_dec
2025-07-03 05:19:36.374 Select Expression
2025-07-03 05:19:36.380 ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.386 ........-> Filter
2025-07-03 05:19:36.392 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:36.398 ................-> Bitmap
2025-07-03 05:19:36.405 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.412 3 lowered "L" normal
2025-07-03 05:19:36.418 """
2025-07-03 05:19:36.423
2025-07-03 05:19:36.429 act.expected_stdout = expected_stdout
2025-07-03 05:19:36.435
2025-07-03 05:19:36.440 act.stdout = capsys.readouterr().out
2025-07-03 05:19:36.446 > assert act.clean_stdout == act.clean_expected_stdout
2025-07-03 05:19:36.452 E assert
2025-07-03 05:19:36.457 E Initial state:
2025-07-03 05:19:36.463 E Query: select * from v1_chk_nr
2025-07-03 05:19:36.469 E Select Expression
2025-07-03 05:19:36.475 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.482 E ........-> Filter
2025-07-03 05:19:36.488 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:36.500 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-03 05:19:36.514 E 3 lowered "D" normal
2025-07-03 05:19:36.521 E Query: select * from v1_chk_ir_asc
2025-07-03 05:19:36.527 E Select Expression
2025-07-03 05:19:36.533 E ....-> Filter
2025-07-03 05:19:36.539 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:36.548 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:36.558 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:36.563 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:36.577 E 3 lowered "D" normal
2025-07-03 05:19:36.585 E Query: select * from v1_chk_ir_dec
2025-07-03 05:19:36.592 E Select Expression
2025-07-03 05:19:36.601 E ....-> Filter
2025-07-03 05:19:36.610 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:36.628 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:36.641 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:36.647 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:36.661 E 3 lowered "D" normal
2025-07-03 05:19:36.668 E Query: select * from v2_chk_nr
2025-07-03 05:19:36.675 E Select Expression
2025-07-03 05:19:36.682 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.688 E ........-> Filter
2025-07-03 05:19:36.694 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:36.708 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-03 05:19:36.723 E 3 lowered "L" normal
2025-07-03 05:19:36.735 E Query: select * from v2_chk_ir_asc
2025-07-03 05:19:36.745 E Select Expression
2025-07-03 05:19:36.752 E ....-> Filter
2025-07-03 05:19:36.758 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:36.778 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:36.793 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.802 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.821 E 3 lowered "L" normal
2025-07-03 05:19:36.829 E Query: select * from v2_chk_ir_dec
2025-07-03 05:19:36.836 E Select Expression
2025-07-03 05:19:36.843 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.849 E ........-> Filter
2025-07-03 05:19:36.855 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:36.873 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:36.889 E ................-> Bitmap
2025-07-03 05:19:36.895 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.903 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:36.921 E 3 lowered "L" normal
2025-07-03 05:19:36.929 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-07-03 05:19:36.936 E Query: select * from v1_chk_nr
2025-07-03 05:19:36.942 E Select Expression
2025-07-03 05:19:36.951 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:36.958 E ........-> Filter
2025-07-03 05:19:36.969 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:36.986 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-03 05:19:37.000 E 3 lowered "D" normal
2025-07-03 05:19:37.007 E 4 UPPERED "D" normal
2025-07-03 05:19:37.012 E Query: select * from v1_chk_ir_asc
2025-07-03 05:19:37.018 E Select Expression
2025-07-03 05:19:37.028 E ....-> Filter
2025-07-03 05:19:37.038 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:37.054 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:37.071 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:37.081 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:37.104 E 3 lowered "D" normal
2025-07-03 05:19:37.111 E 4 UPPERED "D" normal
2025-07-03 05:19:37.119 E Query: select * from v1_chk_ir_dec
2025-07-03 05:19:37.127 E Select Expression
2025-07-03 05:19:37.134 E ....-> Filter
2025-07-03 05:19:37.143 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:37.165 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:37.188 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:37.194 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:37.217 E 4 UPPERED "D" normal
2025-07-03 05:19:37.228 E 3 lowered "D" normal
2025-07-03 05:19:37.237 E Query: select * from v2_chk_nr
2025-07-03 05:19:37.244 E Select Expression
2025-07-03 05:19:37.251 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:37.259 E ........-> Filter
2025-07-03 05:19:37.270 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:37.289 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-03 05:19:37.302 E 3 lowered "L" normal
2025-07-03 05:19:37.309 E 4 UPPERED "L" normal
2025-07-03 05:19:37.315 E Query: select * from v2_chk_ir_asc
2025-07-03 05:19:37.320 E Select Expression
2025-07-03 05:19:37.325 E ....-> Filter
2025-07-03 05:19:37.331 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:37.349 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:37.367 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:37.373 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:37.389 E 3 lowered "L" normal
2025-07-03 05:19:37.402 E 4 UPPERED "L" normal
2025-07-03 05:19:37.412 E Query: select * from v2_chk_ir_dec
2025-07-03 05:19:37.419 E Select Expression
2025-07-03 05:19:37.424 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:37.430 E ........-> Filter
2025-07-03 05:19:37.437 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:37.452 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:37.467 E ................-> Bitmap
2025-07-03 05:19:37.477 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:37.485 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:37.499 E 4 UPPERED "L" normal
2025-07-03 05:19:37.507 E 3 lowered "L" normal
2025-07-03 05:19:37.517 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-07-03 05:19:37.524 E Query: select * from v1_chk_nr
2025-07-03 05:19:37.531 E Select Expression
2025-07-03 05:19:37.537 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:37.543 E ........-> Filter
2025-07-03 05:19:37.551 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:37.568 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-03 05:19:37.580 E 1 lowered "D" w/accent
2025-07-03 05:19:37.584 E 2 UPPERED "D" w/accent
2025-07-03 05:19:37.589 E 3 lowered "D" normal
2025-07-03 05:19:37.593 E 4 UPPERED "D" normal
2025-07-03 05:19:37.598 E Query: select * from v1_chk_ir_asc
2025-07-03 05:19:37.602 E Select Expression
2025-07-03 05:19:37.607 E ....-> Filter
2025-07-03 05:19:37.612 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:37.623 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:37.635 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:37.641 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:37.654 E 3 lowered "D" normal
2025-07-03 05:19:37.659 E 4 UPPERED "D" normal
2025-07-03 05:19:37.671 E 1 lowered "D" w/accent
2025-07-03 05:19:37.680 E 2 UPPERED "D" w/accent
2025-07-03 05:19:37.687 E Query: select * from v1_chk_ir_dec
2025-07-03 05:19:37.694 E Select Expression
2025-07-03 05:19:37.701 E ....-> Filter
2025-07-03 05:19:37.708 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:37.721 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:37.734 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:37.739 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:37.761 E 2 UPPERED "D" w/accent
2025-07-03 05:19:37.769 E 1 lowered "D" w/accent
2025-07-03 05:19:37.776 E 4 UPPERED "D" normal
2025-07-03 05:19:37.783 E 3 lowered "D" normal
2025-07-03 05:19:37.789 E Query: select * from v2_chk_nr
2025-07-03 05:19:37.795 E Select Expression
2025-07-03 05:19:37.800 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:37.806 E ........-> Filter
2025-07-03 05:19:37.812 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:37.831 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-03 05:19:37.853 E 1 lowered "L" w/accent
2025-07-03 05:19:37.861 E 2 UPPERED "L" w/accent
2025-07-03 05:19:37.868 E 3 lowered "L" normal
2025-07-03 05:19:37.877 E 4 UPPERED "L" normal
2025-07-03 05:19:37.888 E Query: select * from v2_chk_ir_asc
2025-07-03 05:19:37.896 E Select Expression
2025-07-03 05:19:37.903 E ....-> Filter
2025-07-03 05:19:37.909 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:37.921 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:37.934 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:37.945 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:37.958 E 3 lowered "L" normal
2025-07-03 05:19:37.964 E 4 UPPERED "L" normal
2025-07-03 05:19:37.970 E 1 lowered "L" w/accent
2025-07-03 05:19:37.976 E 2 UPPERED "L" w/accent
2025-07-03 05:19:37.982 E Query: select * from v2_chk_ir_dec
2025-07-03 05:19:37.993 E Select Expression
2025-07-03 05:19:38.001 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:38.007 E ........-> Filter
2025-07-03 05:19:38.013 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:38.025 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:38.043 E ................-> Bitmap
2025-07-03 05:19:38.050 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:38.056 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:38.068 E 2 UPPERED "L" w/accent
2025-07-03 05:19:38.074 E 1 lowered "L" w/accent
2025-07-03 05:19:38.081 E 4 UPPERED "L" normal
2025-07-03 05:19:38.089 E 3 lowered "L" normal
2025-07-03 05:19:38.095 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-07-03 05:19:38.100 E Query: select * from v1_chk_nr
2025-07-03 05:19:38.105 E Select Expression
2025-07-03 05:19:38.110 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:38.114 E ........-> Filter
2025-07-03 05:19:38.121 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-03 05:19:38.133 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-03 05:19:38.146 E 3 lowered "D" normal
2025-07-03 05:19:38.153 E Query: select * from v1_chk_ir_asc
2025-07-03 05:19:38.160 E Select Expression
2025-07-03 05:19:38.166 E ....-> Filter
2025-07-03 05:19:38.175 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-03 05:19:38.195 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:38.207 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:38.219 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-03 05:19:38.243 E 3 lowered "D" normal
2025-07-03 05:19:38.254 E Query: select * from v1_chk_ir_dec
2025-07-03 05:19:38.266 E Select Expression
2025-07-03 05:19:38.278 E ....-> Filter
2025-07-03 05:19:38.287 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-03 05:19:38.310 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-03 05:19:38.325 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:38.331 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-03 05:19:38.342 E 3 lowered "D" normal
2025-07-03 05:19:38.351 E Query: select * from v2_chk_nr
2025-07-03 05:19:38.358 E Select Expression
2025-07-03 05:19:38.370 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:38.381 E ........-> Filter
2025-07-03 05:19:38.392 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-03 05:19:38.408 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-03 05:19:38.421 E 3 lowered "L" normal
2025-07-03 05:19:38.428 E Query: select * from v2_chk_ir_asc
2025-07-03 05:19:38.435 E Select Expression
2025-07-03 05:19:38.445 E ....-> Filter
2025-07-03 05:19:38.457 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-03 05:19:38.481 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:38.501 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:38.512 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:38.533 E 3 lowered "L" normal
2025-07-03 05:19:38.541 E Query: select * from v2_chk_ir_dec
2025-07-03 05:19:38.547 E Select Expression
2025-07-03 05:19:38.554 E ....-> Sort (record length: NN, key length: MM)
2025-07-03 05:19:38.559 E ........-> Filter
2025-07-03 05:19:38.566 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-03 05:19:38.585 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-03 05:19:38.598 E ................-> Bitmap
2025-07-03 05:19:38.603 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:38.608 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-03 05:19:38.618 E 3 lowered "L" normal
2025-07-03 05:19:38.625
2025-07-03 05:19:38.631 tests/bugs/gh_8434_test.py:371: AssertionError
2025-07-03 05:19:38.636 ---------------------------- Captured stdout setup -----------------------------
2025-07-03 05:19:38.641 Creating db: localhost:/var/tmp/qa_2024/test_11742/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
|
3 #text |
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>
@pytest.mark.version('>=6')
def test_1(act: Action, capsys):
qry_map = {
1 : 'select * from v1_chk_nr'
,2 : 'select * from v1_chk_ir_asc'
,3 : 'select * from v1_chk_ir_dec'
,4 : 'select * from v2_chk_nr'
,5 : 'select * from v2_chk_ir_asc'
,6 : 'select * from v2_chk_ir_dec'
}
alter_lst = (
''
,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
,'alter domain dm_utf8 type varchar(1) character set utf8'
)
with act.db.connect(charset = 'utf8') as con:
cur = con.cursor()
for alter_i in alter_lst:
if alter_i.strip():
con.execute_immediate(alter_i)
con.commit()
print(f'\nAfter {alter_i}:')
else:
print('Initial state:')
for k, v in qry_map.items():
ps, rs = None, None
try:
ps = cur.prepare(v)
print('Query:', v)
# Print explained plan with padding eash line by dots in order to see indentations:
print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
print('')
# ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
# We have to store result of cur.execute(<psInstance>) in order to
# close it explicitly.
# Otherwise AV can occur during Python garbage collection and this
# causes pytest to hang on its final point.
# Explained by hvlad, email 26.10.24 17:42
rs = cur.execute(ps)
for r in rs:
print(r[0], r[1])
except DatabaseError as e:
print(e.__str__())
print(e.gds_codes)
finally:
if rs:
rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
if ps:
ps.free()
expected_stdout = """
Initial state:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
1 lowered "D" w/accent
2 UPPERED "D" w/accent
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
1 lowered "D" w/accent
2 UPPERED "D" w/accent
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
2 UPPERED "D" w/accent
1 lowered "D" w/accent
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
1 lowered "L" w/accent
2 UPPERED "L" w/accent
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
1 lowered "L" w/accent
2 UPPERED "L" w/accent
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2 UPPERED "L" w/accent
1 lowered "L" w/accent
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
"""
act.expected_stdout = expected_stdout
act.stdout = capsys.readouterr().out
> assert act.clean_stdout == act.clean_expected_stdout
E assert
E Initial state:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 4 UPPERED "D" normal
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 4 UPPERED "L" normal
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 1 lowered "D" w/accent
E 2 UPPERED "D" w/accent
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E 1 lowered "D" w/accent
E 2 UPPERED "D" w/accent
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 2 UPPERED "D" w/accent
E 1 lowered "D" w/accent
E 4 UPPERED "D" normal
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 1 lowered "L" w/accent
E 2 UPPERED "L" w/accent
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E 1 lowered "L" w/accent
E 2 UPPERED "L" w/accent
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 2 UPPERED "L" w/accent
E 1 lowered "L" w/accent
E 4 UPPERED "L" normal
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
tests/bugs/gh_8434_test.py:371: AssertionError
|