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 06:38:17.022
2025-06-28 06:38:17.022 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-28 06:38:17.022 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-28 06:38:17.022
2025-06-28 06:38:17.022 @pytest.mark.version('>=6')
2025-06-28 06:38:17.022 def test_1(act: Action, capsys):
2025-06-28 06:38:17.022 qry_map = {
2025-06-28 06:38:17.022 1 : 'select * from v1_chk_nr'
2025-06-28 06:38:17.022 ,2 : 'select * from v1_chk_ir_asc'
2025-06-28 06:38:17.022 ,3 : 'select * from v1_chk_ir_dec'
2025-06-28 06:38:17.022 ,4 : 'select * from v2_chk_nr'
2025-06-28 06:38:17.023 ,5 : 'select * from v2_chk_ir_asc'
2025-06-28 06:38:17.023 ,6 : 'select * from v2_chk_ir_dec'
2025-06-28 06:38:17.023 }
2025-06-28 06:38:17.023
2025-06-28 06:38:17.023 alter_lst = (
2025-06-28 06:38:17.023 ''
2025-06-28 06:38:17.023 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-06-28 06:38:17.023 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-06-28 06:38:17.023 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-06-28 06:38:17.023 )
2025-06-28 06:38:17.023
2025-06-28 06:38:17.023 with act.db.connect(charset = 'utf8') as con:
2025-06-28 06:38:17.023 cur = con.cursor()
2025-06-28 06:38:17.023 for alter_i in alter_lst:
2025-06-28 06:38:17.023 if alter_i.strip():
2025-06-28 06:38:17.023 con.execute_immediate(alter_i)
2025-06-28 06:38:17.023 con.commit()
2025-06-28 06:38:17.023 print(f'\nAfter {alter_i}:')
2025-06-28 06:38:17.023 else:
2025-06-28 06:38:17.023 print('Initial state:')
2025-06-28 06:38:17.023
2025-06-28 06:38:17.024 for k, v in qry_map.items():
2025-06-28 06:38:17.024 ps, rs = None, None
2025-06-28 06:38:17.024 try:
2025-06-28 06:38:17.024 ps = cur.prepare(v)
2025-06-28 06:38:17.024
2025-06-28 06:38:17.024 print('Query:', v)
2025-06-28 06:38:17.024 # Print explained plan with padding eash line by dots in order to see indentations:
2025-06-28 06:38:17.024 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-06-28 06:38:17.024 print('')
2025-06-28 06:38:17.024
2025-06-28 06:38:17.024 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-06-28 06:38:17.024 # We have to store result of cur.execute(<psInstance>) in order to
2025-06-28 06:38:17.024 # close it explicitly.
2025-06-28 06:38:17.024 # Otherwise AV can occur during Python garbage collection and this
2025-06-28 06:38:17.024 # causes pytest to hang on its final point.
2025-06-28 06:38:17.024 # Explained by hvlad, email 26.10.24 17:42
2025-06-28 06:38:17.024 rs = cur.execute(ps)
2025-06-28 06:38:17.024 for r in rs:
2025-06-28 06:38:17.024 print(r[0], r[1])
2025-06-28 06:38:17.024 except DatabaseError as e:
2025-06-28 06:38:17.024 print(e.__str__())
2025-06-28 06:38:17.025 print(e.gds_codes)
2025-06-28 06:38:17.025 finally:
2025-06-28 06:38:17.025 if rs:
2025-06-28 06:38:17.025 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-06-28 06:38:17.025 if ps:
2025-06-28 06:38:17.025 ps.free()
2025-06-28 06:38:17.025
2025-06-28 06:38:17.025
2025-06-28 06:38:17.025 expected_stdout = """
2025-06-28 06:38:17.025 Initial state:
2025-06-28 06:38:17.025
2025-06-28 06:38:17.025 Query: select * from v1_chk_nr
2025-06-28 06:38:17.025 Select Expression
2025-06-28 06:38:17.025 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.025 ........-> Filter
2025-06-28 06:38:17.025 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.025 3 lowered "D" normal
2025-06-28 06:38:17.025 Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.025 Select Expression
2025-06-28 06:38:17.025 ....-> Filter
2025-06-28 06:38:17.025 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.025 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.026 3 lowered "D" normal
2025-06-28 06:38:17.026 Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.026 Select Expression
2025-06-28 06:38:17.026 ....-> Filter
2025-06-28 06:38:17.026 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.026 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.026 3 lowered "D" normal
2025-06-28 06:38:17.026 Query: select * from v2_chk_nr
2025-06-28 06:38:17.026 Select Expression
2025-06-28 06:38:17.026 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.026 ........-> Filter
2025-06-28 06:38:17.026 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.026 3 lowered "L" normal
2025-06-28 06:38:17.026 Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.026 Select Expression
2025-06-28 06:38:17.026 ....-> Filter
2025-06-28 06:38:17.026 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.026 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.026 3 lowered "L" normal
2025-06-28 06:38:17.026 Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.026 Select Expression
2025-06-28 06:38:17.026 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.027 ........-> Filter
2025-06-28 06:38:17.027 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.027 ................-> Bitmap
2025-06-28 06:38:17.027 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.027 3 lowered "L" normal
2025-06-28 06:38:17.027
2025-06-28 06:38:17.027
2025-06-28 06:38:17.027 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-28 06:38:17.027
2025-06-28 06:38:17.027 Query: select * from v1_chk_nr
2025-06-28 06:38:17.027 Select Expression
2025-06-28 06:38:17.027 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.027 ........-> Filter
2025-06-28 06:38:17.027 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.027 3 lowered "D" normal
2025-06-28 06:38:17.027 4 UPPERED "D" normal
2025-06-28 06:38:17.027 Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.027 Select Expression
2025-06-28 06:38:17.027 ....-> Filter
2025-06-28 06:38:17.027 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.027 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.028 3 lowered "D" normal
2025-06-28 06:38:17.028 4 UPPERED "D" normal
2025-06-28 06:38:17.028 Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.028 Select Expression
2025-06-28 06:38:17.028 ....-> Filter
2025-06-28 06:38:17.028 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.028 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.028 4 UPPERED "D" normal
2025-06-28 06:38:17.028 3 lowered "D" normal
2025-06-28 06:38:17.028 Query: select * from v2_chk_nr
2025-06-28 06:38:17.028 Select Expression
2025-06-28 06:38:17.028 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.028 ........-> Filter
2025-06-28 06:38:17.028 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.028 3 lowered "L" normal
2025-06-28 06:38:17.028 4 UPPERED "L" normal
2025-06-28 06:38:17.028 Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.028 Select Expression
2025-06-28 06:38:17.028 ....-> Filter
2025-06-28 06:38:17.029 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.029 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.029 3 lowered "L" normal
2025-06-28 06:38:17.029 4 UPPERED "L" normal
2025-06-28 06:38:17.029 Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.029 Select Expression
2025-06-28 06:38:17.029 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.029 ........-> Filter
2025-06-28 06:38:17.029 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.029 ................-> Bitmap
2025-06-28 06:38:17.029 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.029 4 UPPERED "L" normal
2025-06-28 06:38:17.029 3 lowered "L" normal
2025-06-28 06:38:17.029
2025-06-28 06:38:17.029
2025-06-28 06:38:17.029 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-28 06:38:17.029
2025-06-28 06:38:17.029 Query: select * from v1_chk_nr
2025-06-28 06:38:17.029 Select Expression
2025-06-28 06:38:17.029 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.030 ........-> Filter
2025-06-28 06:38:17.030 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.030 1 lowered "D" w/accent
2025-06-28 06:38:17.030 2 UPPERED "D" w/accent
2025-06-28 06:38:17.030 3 lowered "D" normal
2025-06-28 06:38:17.030 4 UPPERED "D" normal
2025-06-28 06:38:17.030 Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.030 Select Expression
2025-06-28 06:38:17.030 ....-> Filter
2025-06-28 06:38:17.030 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.030 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.030 3 lowered "D" normal
2025-06-28 06:38:17.030 4 UPPERED "D" normal
2025-06-28 06:38:17.030 1 lowered "D" w/accent
2025-06-28 06:38:17.030 2 UPPERED "D" w/accent
2025-06-28 06:38:17.030 Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.030 Select Expression
2025-06-28 06:38:17.030 ....-> Filter
2025-06-28 06:38:17.030 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.030 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.030 2 UPPERED "D" w/accent
2025-06-28 06:38:17.031 1 lowered "D" w/accent
2025-06-28 06:38:17.031 4 UPPERED "D" normal
2025-06-28 06:38:17.031 3 lowered "D" normal
2025-06-28 06:38:17.031 Query: select * from v2_chk_nr
2025-06-28 06:38:17.031 Select Expression
2025-06-28 06:38:17.031 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.031 ........-> Filter
2025-06-28 06:38:17.031 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.031 1 lowered "L" w/accent
2025-06-28 06:38:17.031 2 UPPERED "L" w/accent
2025-06-28 06:38:17.031 3 lowered "L" normal
2025-06-28 06:38:17.031 4 UPPERED "L" normal
2025-06-28 06:38:17.031 Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.031 Select Expression
2025-06-28 06:38:17.031 ....-> Filter
2025-06-28 06:38:17.031 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.031 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.031 3 lowered "L" normal
2025-06-28 06:38:17.031 4 UPPERED "L" normal
2025-06-28 06:38:17.031 1 lowered "L" w/accent
2025-06-28 06:38:17.031 2 UPPERED "L" w/accent
2025-06-28 06:38:17.032 Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.032 Select Expression
2025-06-28 06:38:17.032 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.032 ........-> Filter
2025-06-28 06:38:17.032 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.032 ................-> Bitmap
2025-06-28 06:38:17.032 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.032 2 UPPERED "L" w/accent
2025-06-28 06:38:17.032 1 lowered "L" w/accent
2025-06-28 06:38:17.032 4 UPPERED "L" normal
2025-06-28 06:38:17.032 3 lowered "L" normal
2025-06-28 06:38:17.032
2025-06-28 06:38:17.032
2025-06-28 06:38:17.032 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-28 06:38:17.032
2025-06-28 06:38:17.032 Query: select * from v1_chk_nr
2025-06-28 06:38:17.032 Select Expression
2025-06-28 06:38:17.032 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.032 ........-> Filter
2025-06-28 06:38:17.032 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.033 3 lowered "D" normal
2025-06-28 06:38:17.033 Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.033 Select Expression
2025-06-28 06:38:17.033 ....-> Filter
2025-06-28 06:38:17.033 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.033 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.033 3 lowered "D" normal
2025-06-28 06:38:17.033 Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.033 Select Expression
2025-06-28 06:38:17.033 ....-> Filter
2025-06-28 06:38:17.033 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.033 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.033 3 lowered "D" normal
2025-06-28 06:38:17.033 Query: select * from v2_chk_nr
2025-06-28 06:38:17.033 Select Expression
2025-06-28 06:38:17.033 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.033 ........-> Filter
2025-06-28 06:38:17.033 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.033 3 lowered "L" normal
2025-06-28 06:38:17.033 Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.033 Select Expression
2025-06-28 06:38:17.034 ....-> Filter
2025-06-28 06:38:17.034 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.034 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.034 3 lowered "L" normal
2025-06-28 06:38:17.034 Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.034 Select Expression
2025-06-28 06:38:17.034 ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.034 ........-> Filter
2025-06-28 06:38:17.034 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.034 ................-> Bitmap
2025-06-28 06:38:17.034 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.034 3 lowered "L" normal
2025-06-28 06:38:17.034 """
2025-06-28 06:38:17.034
2025-06-28 06:38:17.034 act.expected_stdout = expected_stdout
2025-06-28 06:38:17.034
2025-06-28 06:38:17.034 act.stdout = capsys.readouterr().out
2025-06-28 06:38:17.034 > assert act.clean_stdout == act.clean_expected_stdout
2025-06-28 06:38:17.034 E assert
2025-06-28 06:38:17.034 E Initial state:
2025-06-28 06:38:17.034 E Query: select * from v1_chk_nr
2025-06-28 06:38:17.035 E Select Expression
2025-06-28 06:38:17.035 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.035 E ........-> Filter
2025-06-28 06:38:17.035 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.035 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 06:38:17.035 E 3 lowered "D" normal
2025-06-28 06:38:17.035 E Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.035 E Select Expression
2025-06-28 06:38:17.035 E ....-> Filter
2025-06-28 06:38:17.035 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.035 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.035 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.035 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.035 E 3 lowered "D" normal
2025-06-28 06:38:17.035 E Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.035 E Select Expression
2025-06-28 06:38:17.036 E ....-> Filter
2025-06-28 06:38:17.036 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.036 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.036 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.036 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.036 E 3 lowered "D" normal
2025-06-28 06:38:17.036 E Query: select * from v2_chk_nr
2025-06-28 06:38:17.036 E Select Expression
2025-06-28 06:38:17.036 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.036 E ........-> Filter
2025-06-28 06:38:17.036 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.036 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 06:38:17.037 E 3 lowered "L" normal
2025-06-28 06:38:17.037 E Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.037 E Select Expression
2025-06-28 06:38:17.037 E ....-> Filter
2025-06-28 06:38:17.037 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.037 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.037 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.037 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.037 E 3 lowered "L" normal
2025-06-28 06:38:17.037 E Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.037 E Select Expression
2025-06-28 06:38:17.037 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.037 E ........-> Filter
2025-06-28 06:38:17.037 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.037 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.038 E ................-> Bitmap
2025-06-28 06:38:17.038 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.038 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.038 E 3 lowered "L" normal
2025-06-28 06:38:17.038 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-28 06:38:17.038 E Query: select * from v1_chk_nr
2025-06-28 06:38:17.038 E Select Expression
2025-06-28 06:38:17.038 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.038 E ........-> Filter
2025-06-28 06:38:17.038 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.038 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 06:38:17.038 E 3 lowered "D" normal
2025-06-28 06:38:17.038 E 4 UPPERED "D" normal
2025-06-28 06:38:17.038 E Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.038 E Select Expression
2025-06-28 06:38:17.038 E ....-> Filter
2025-06-28 06:38:17.038 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.039 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.039 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.039 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.039 E 3 lowered "D" normal
2025-06-28 06:38:17.039 E 4 UPPERED "D" normal
2025-06-28 06:38:17.039 E Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.039 E Select Expression
2025-06-28 06:38:17.039 E ....-> Filter
2025-06-28 06:38:17.039 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.039 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.039 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.039 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.039 E 4 UPPERED "D" normal
2025-06-28 06:38:17.040 E 3 lowered "D" normal
2025-06-28 06:38:17.040 E Query: select * from v2_chk_nr
2025-06-28 06:38:17.040 E Select Expression
2025-06-28 06:38:17.040 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.040 E ........-> Filter
2025-06-28 06:38:17.040 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.040 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 06:38:17.040 E 3 lowered "L" normal
2025-06-28 06:38:17.040 E 4 UPPERED "L" normal
2025-06-28 06:38:17.040 E Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.040 E Select Expression
2025-06-28 06:38:17.040 E ....-> Filter
2025-06-28 06:38:17.040 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.040 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.040 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.040 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.041 E 3 lowered "L" normal
2025-06-28 06:38:17.041 E 4 UPPERED "L" normal
2025-06-28 06:38:17.041 E Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.041 E Select Expression
2025-06-28 06:38:17.041 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.041 E ........-> Filter
2025-06-28 06:38:17.041 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.041 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.041 E ................-> Bitmap
2025-06-28 06:38:17.041 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.041 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.041 E 4 UPPERED "L" normal
2025-06-28 06:38:17.041 E 3 lowered "L" normal
2025-06-28 06:38:17.041 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-28 06:38:17.041 E Query: select * from v1_chk_nr
2025-06-28 06:38:17.041 E Select Expression
2025-06-28 06:38:17.041 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.042 E ........-> Filter
2025-06-28 06:38:17.042 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.042 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 06:38:17.042 E 1 lowered "D" w/accent
2025-06-28 06:38:17.042 E 2 UPPERED "D" w/accent
2025-06-28 06:38:17.042 E 3 lowered "D" normal
2025-06-28 06:38:17.042 E 4 UPPERED "D" normal
2025-06-28 06:38:17.042 E Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.042 E Select Expression
2025-06-28 06:38:17.042 E ....-> Filter
2025-06-28 06:38:17.042 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.042 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.042 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.042 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.043 E 3 lowered "D" normal
2025-06-28 06:38:17.043 E 4 UPPERED "D" normal
2025-06-28 06:38:17.043 E 1 lowered "D" w/accent
2025-06-28 06:38:17.043 E 2 UPPERED "D" w/accent
2025-06-28 06:38:17.043 E Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.043 E Select Expression
2025-06-28 06:38:17.043 E ....-> Filter
2025-06-28 06:38:17.043 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.043 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.043 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.043 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.043 E 2 UPPERED "D" w/accent
2025-06-28 06:38:17.043 E 1 lowered "D" w/accent
2025-06-28 06:38:17.043 E 4 UPPERED "D" normal
2025-06-28 06:38:17.043 E 3 lowered "D" normal
2025-06-28 06:38:17.043 E Query: select * from v2_chk_nr
2025-06-28 06:38:17.043 E Select Expression
2025-06-28 06:38:17.044 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.048 E ........-> Filter
2025-06-28 06:38:17.048 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.048 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 06:38:17.048 E 1 lowered "L" w/accent
2025-06-28 06:38:17.048 E 2 UPPERED "L" w/accent
2025-06-28 06:38:17.048 E 3 lowered "L" normal
2025-06-28 06:38:17.048 E 4 UPPERED "L" normal
2025-06-28 06:38:17.048 E Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.048 E Select Expression
2025-06-28 06:38:17.048 E ....-> Filter
2025-06-28 06:38:17.048 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.048 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.048 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.048 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.049 E 3 lowered "L" normal
2025-06-28 06:38:17.049 E 4 UPPERED "L" normal
2025-06-28 06:38:17.049 E 1 lowered "L" w/accent
2025-06-28 06:38:17.049 E 2 UPPERED "L" w/accent
2025-06-28 06:38:17.049 E Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.049 E Select Expression
2025-06-28 06:38:17.049 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.049 E ........-> Filter
2025-06-28 06:38:17.049 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.049 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.049 E ................-> Bitmap
2025-06-28 06:38:17.049 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.049 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.049 E 2 UPPERED "L" w/accent
2025-06-28 06:38:17.049 E 1 lowered "L" w/accent
2025-06-28 06:38:17.049 E 4 UPPERED "L" normal
2025-06-28 06:38:17.049 E 3 lowered "L" normal
2025-06-28 06:38:17.050 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-28 06:38:17.050 E Query: select * from v1_chk_nr
2025-06-28 06:38:17.050 E Select Expression
2025-06-28 06:38:17.050 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.050 E ........-> Filter
2025-06-28 06:38:17.050 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-28 06:38:17.050 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-28 06:38:17.050 E 3 lowered "D" normal
2025-06-28 06:38:17.050 E Query: select * from v1_chk_ir_asc
2025-06-28 06:38:17.050 E Select Expression
2025-06-28 06:38:17.050 E ....-> Filter
2025-06-28 06:38:17.050 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-28 06:38:17.050 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.050 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.050 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-28 06:38:17.051 E 3 lowered "D" normal
2025-06-28 06:38:17.051 E Query: select * from v1_chk_ir_dec
2025-06-28 06:38:17.051 E Select Expression
2025-06-28 06:38:17.051 E ....-> Filter
2025-06-28 06:38:17.051 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-28 06:38:17.051 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-28 06:38:17.051 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.051 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-28 06:38:17.051 E 3 lowered "D" normal
2025-06-28 06:38:17.051 E Query: select * from v2_chk_nr
2025-06-28 06:38:17.051 E Select Expression
2025-06-28 06:38:17.051 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.051 E ........-> Filter
2025-06-28 06:38:17.051 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-28 06:38:17.051 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-28 06:38:17.052 E 3 lowered "L" normal
2025-06-28 06:38:17.052 E Query: select * from v2_chk_ir_asc
2025-06-28 06:38:17.052 E Select Expression
2025-06-28 06:38:17.052 E ....-> Filter
2025-06-28 06:38:17.052 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-28 06:38:17.052 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.052 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.052 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.052 E 3 lowered "L" normal
2025-06-28 06:38:17.052 E Query: select * from v2_chk_ir_dec
2025-06-28 06:38:17.052 E Select Expression
2025-06-28 06:38:17.052 E ....-> Sort (record length: NN, key length: MM)
2025-06-28 06:38:17.052 E ........-> Filter
2025-06-28 06:38:17.052 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-28 06:38:17.052 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-28 06:38:17.053 E ................-> Bitmap
2025-06-28 06:38:17.053 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.053 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-28 06:38:17.053 E 3 lowered "L" normal
2025-06-28 06:38:17.053
2025-06-28 06:38:17.053 tests\bugs\gh_8434_test.py:371: AssertionError
2025-06-28 06:38:17.053 ---------------------------- Captured stdout setup ----------------------------
2025-06-28 06:38:17.053 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11759\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
|