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-01 05:54:52.342
2025-07-01 05:54:52.351 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-01 05:54:52.359 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-01 05:54:52.365
2025-07-01 05:54:52.371 @pytest.mark.version('>=6')
2025-07-01 05:54:52.379 def test_1(act: Action, capsys):
2025-07-01 05:54:52.390 qry_map = {
2025-07-01 05:54:52.403 1 : 'select * from v1_chk_nr'
2025-07-01 05:54:52.413 ,2 : 'select * from v1_chk_ir_asc'
2025-07-01 05:54:52.422 ,3 : 'select * from v1_chk_ir_dec'
2025-07-01 05:54:52.429 ,4 : 'select * from v2_chk_nr'
2025-07-01 05:54:52.436 ,5 : 'select * from v2_chk_ir_asc'
2025-07-01 05:54:52.444 ,6 : 'select * from v2_chk_ir_dec'
2025-07-01 05:54:52.450 }
2025-07-01 05:54:52.455
2025-07-01 05:54:52.462 alter_lst = (
2025-07-01 05:54:52.468 ''
2025-07-01 05:54:52.475 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-07-01 05:54:52.481 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-07-01 05:54:52.489 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-07-01 05:54:52.495 )
2025-07-01 05:54:52.501
2025-07-01 05:54:52.508 with act.db.connect(charset = 'utf8') as con:
2025-07-01 05:54:52.513 cur = con.cursor()
2025-07-01 05:54:52.518 for alter_i in alter_lst:
2025-07-01 05:54:52.523 if alter_i.strip():
2025-07-01 05:54:52.528 con.execute_immediate(alter_i)
2025-07-01 05:54:52.534 con.commit()
2025-07-01 05:54:52.545 print(f'\nAfter {alter_i}:')
2025-07-01 05:54:52.557 else:
2025-07-01 05:54:52.562 print('Initial state:')
2025-07-01 05:54:52.567
2025-07-01 05:54:52.572 for k, v in qry_map.items():
2025-07-01 05:54:52.576 ps, rs = None, None
2025-07-01 05:54:52.581 try:
2025-07-01 05:54:52.587 ps = cur.prepare(v)
2025-07-01 05:54:52.592
2025-07-01 05:54:52.598 print('Query:', v)
2025-07-01 05:54:52.604 # Print explained plan with padding eash line by dots in order to see indentations:
2025-07-01 05:54:52.612 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-07-01 05:54:52.618 print('')
2025-07-01 05:54:52.623
2025-07-01 05:54:52.628 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-07-01 05:54:52.633 # We have to store result of cur.execute(<psInstance>) in order to
2025-07-01 05:54:52.638 # close it explicitly.
2025-07-01 05:54:52.642 # Otherwise AV can occur during Python garbage collection and this
2025-07-01 05:54:52.647 # causes pytest to hang on its final point.
2025-07-01 05:54:52.652 # Explained by hvlad, email 26.10.24 17:42
2025-07-01 05:54:52.656 rs = cur.execute(ps)
2025-07-01 05:54:52.669 for r in rs:
2025-07-01 05:54:52.678 print(r[0], r[1])
2025-07-01 05:54:52.686 except DatabaseError as e:
2025-07-01 05:54:52.691 print(e.__str__())
2025-07-01 05:54:52.697 print(e.gds_codes)
2025-07-01 05:54:52.702 finally:
2025-07-01 05:54:52.707 if rs:
2025-07-01 05:54:52.713 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-07-01 05:54:52.718 if ps:
2025-07-01 05:54:52.724 ps.free()
2025-07-01 05:54:52.735
2025-07-01 05:54:52.745
2025-07-01 05:54:52.751 expected_stdout = """
2025-07-01 05:54:52.757 Initial state:
2025-07-01 05:54:52.763
2025-07-01 05:54:52.769 Query: select * from v1_chk_nr
2025-07-01 05:54:52.776 Select Expression
2025-07-01 05:54:52.782 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:52.793 ........-> Filter
2025-07-01 05:54:52.805 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:52.815 3 lowered "D" normal
2025-07-01 05:54:52.823 Query: select * from v1_chk_ir_asc
2025-07-01 05:54:52.829 Select Expression
2025-07-01 05:54:52.835 ....-> Filter
2025-07-01 05:54:52.842 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:52.852 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:52.860 3 lowered "D" normal
2025-07-01 05:54:52.867 Query: select * from v1_chk_ir_dec
2025-07-01 05:54:52.872 Select Expression
2025-07-01 05:54:52.877 ....-> Filter
2025-07-01 05:54:52.882 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:52.888 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:52.896 3 lowered "D" normal
2025-07-01 05:54:52.909 Query: select * from v2_chk_nr
2025-07-01 05:54:52.919 Select Expression
2025-07-01 05:54:52.925 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:52.932 ........-> Filter
2025-07-01 05:54:52.940 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:52.947 3 lowered "L" normal
2025-07-01 05:54:52.955 Query: select * from v2_chk_ir_asc
2025-07-01 05:54:52.963 Select Expression
2025-07-01 05:54:52.969 ....-> Filter
2025-07-01 05:54:52.976 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:52.983 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:52.989 3 lowered "L" normal
2025-07-01 05:54:52.996 Query: select * from v2_chk_ir_dec
2025-07-01 05:54:53.003 Select Expression
2025-07-01 05:54:53.014 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.022 ........-> Filter
2025-07-01 05:54:53.029 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:53.034 ................-> Bitmap
2025-07-01 05:54:53.039 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:53.044 3 lowered "L" normal
2025-07-01 05:54:53.049
2025-07-01 05:54:53.054
2025-07-01 05:54:53.060 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-07-01 05:54:53.065
2025-07-01 05:54:53.071 Query: select * from v1_chk_nr
2025-07-01 05:54:53.077 Select Expression
2025-07-01 05:54:53.082 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.087 ........-> Filter
2025-07-01 05:54:53.092 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:53.097 3 lowered "D" normal
2025-07-01 05:54:53.103 4 UPPERED "D" normal
2025-07-01 05:54:53.109 Query: select * from v1_chk_ir_asc
2025-07-01 05:54:53.115 Select Expression
2025-07-01 05:54:53.121 ....-> Filter
2025-07-01 05:54:53.128 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:53.134 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:53.140 3 lowered "D" normal
2025-07-01 05:54:53.146 4 UPPERED "D" normal
2025-07-01 05:54:53.158 Query: select * from v1_chk_ir_dec
2025-07-01 05:54:53.167 Select Expression
2025-07-01 05:54:53.176 ....-> Filter
2025-07-01 05:54:53.183 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:53.190 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:53.195 4 UPPERED "D" normal
2025-07-01 05:54:53.201 3 lowered "D" normal
2025-07-01 05:54:53.205 Query: select * from v2_chk_nr
2025-07-01 05:54:53.210 Select Expression
2025-07-01 05:54:53.215 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.220 ........-> Filter
2025-07-01 05:54:53.224 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:53.229 3 lowered "L" normal
2025-07-01 05:54:53.234 4 UPPERED "L" normal
2025-07-01 05:54:53.245 Query: select * from v2_chk_ir_asc
2025-07-01 05:54:53.256 Select Expression
2025-07-01 05:54:53.264 ....-> Filter
2025-07-01 05:54:53.270 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:53.276 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:53.282 3 lowered "L" normal
2025-07-01 05:54:53.293 4 UPPERED "L" normal
2025-07-01 05:54:53.304 Query: select * from v2_chk_ir_dec
2025-07-01 05:54:53.312 Select Expression
2025-07-01 05:54:53.319 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.325 ........-> Filter
2025-07-01 05:54:53.330 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:53.336 ................-> Bitmap
2025-07-01 05:54:53.341 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:53.346 4 UPPERED "L" normal
2025-07-01 05:54:53.351 3 lowered "L" normal
2025-07-01 05:54:53.355
2025-07-01 05:54:53.361
2025-07-01 05:54:53.367 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-07-01 05:54:53.373
2025-07-01 05:54:53.379 Query: select * from v1_chk_nr
2025-07-01 05:54:53.387 Select Expression
2025-07-01 05:54:53.396 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.405 ........-> Filter
2025-07-01 05:54:53.412 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:53.417 1 lowered "D" w/accent
2025-07-01 05:54:53.423 2 UPPERED "D" w/accent
2025-07-01 05:54:53.429 3 lowered "D" normal
2025-07-01 05:54:53.437 4 UPPERED "D" normal
2025-07-01 05:54:53.450 Query: select * from v1_chk_ir_asc
2025-07-01 05:54:53.459 Select Expression
2025-07-01 05:54:53.472 ....-> Filter
2025-07-01 05:54:53.480 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:53.487 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:53.494 3 lowered "D" normal
2025-07-01 05:54:53.506 4 UPPERED "D" normal
2025-07-01 05:54:53.519 1 lowered "D" w/accent
2025-07-01 05:54:53.528 2 UPPERED "D" w/accent
2025-07-01 05:54:53.535 Query: select * from v1_chk_ir_dec
2025-07-01 05:54:53.540 Select Expression
2025-07-01 05:54:53.545 ....-> Filter
2025-07-01 05:54:53.550 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:53.554 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:53.559 2 UPPERED "D" w/accent
2025-07-01 05:54:53.563 1 lowered "D" w/accent
2025-07-01 05:54:53.568 4 UPPERED "D" normal
2025-07-01 05:54:53.573 3 lowered "D" normal
2025-07-01 05:54:53.577 Query: select * from v2_chk_nr
2025-07-01 05:54:53.582 Select Expression
2025-07-01 05:54:53.586 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.591 ........-> Filter
2025-07-01 05:54:53.595 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:53.600 1 lowered "L" w/accent
2025-07-01 05:54:53.604 2 UPPERED "L" w/accent
2025-07-01 05:54:53.609 3 lowered "L" normal
2025-07-01 05:54:53.613 4 UPPERED "L" normal
2025-07-01 05:54:53.618 Query: select * from v2_chk_ir_asc
2025-07-01 05:54:53.622 Select Expression
2025-07-01 05:54:53.627 ....-> Filter
2025-07-01 05:54:53.631 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:53.636 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:53.640 3 lowered "L" normal
2025-07-01 05:54:53.645 4 UPPERED "L" normal
2025-07-01 05:54:53.650 1 lowered "L" w/accent
2025-07-01 05:54:53.654 2 UPPERED "L" w/accent
2025-07-01 05:54:53.659 Query: select * from v2_chk_ir_dec
2025-07-01 05:54:53.663 Select Expression
2025-07-01 05:54:53.667 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.672 ........-> Filter
2025-07-01 05:54:53.677 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:53.681 ................-> Bitmap
2025-07-01 05:54:53.686 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:53.690 2 UPPERED "L" w/accent
2025-07-01 05:54:53.695 1 lowered "L" w/accent
2025-07-01 05:54:53.702 4 UPPERED "L" normal
2025-07-01 05:54:53.712 3 lowered "L" normal
2025-07-01 05:54:53.720
2025-07-01 05:54:53.727
2025-07-01 05:54:53.734 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-07-01 05:54:53.745
2025-07-01 05:54:53.755 Query: select * from v1_chk_nr
2025-07-01 05:54:53.767 Select Expression
2025-07-01 05:54:53.776 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.783 ........-> Filter
2025-07-01 05:54:53.790 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:53.800 3 lowered "D" normal
2025-07-01 05:54:53.813 Query: select * from v1_chk_ir_asc
2025-07-01 05:54:53.824 Select Expression
2025-07-01 05:54:53.837 ....-> Filter
2025-07-01 05:54:53.848 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:53.859 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:53.871 3 lowered "D" normal
2025-07-01 05:54:53.884 Query: select * from v1_chk_ir_dec
2025-07-01 05:54:53.895 Select Expression
2025-07-01 05:54:53.905 ....-> Filter
2025-07-01 05:54:53.913 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:53.919 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:53.925 3 lowered "D" normal
2025-07-01 05:54:53.932 Query: select * from v2_chk_nr
2025-07-01 05:54:53.938 Select Expression
2025-07-01 05:54:53.943 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:53.949 ........-> Filter
2025-07-01 05:54:53.955 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:53.961 3 lowered "L" normal
2025-07-01 05:54:53.966 Query: select * from v2_chk_ir_asc
2025-07-01 05:54:53.972 Select Expression
2025-07-01 05:54:53.978 ....-> Filter
2025-07-01 05:54:53.984 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:53.997 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:54.008 3 lowered "L" normal
2025-07-01 05:54:54.019 Query: select * from v2_chk_ir_dec
2025-07-01 05:54:54.030 Select Expression
2025-07-01 05:54:54.038 ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:54.045 ........-> Filter
2025-07-01 05:54:54.052 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:54.058 ................-> Bitmap
2025-07-01 05:54:54.064 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:54.070 3 lowered "L" normal
2025-07-01 05:54:54.076 """
2025-07-01 05:54:54.083
2025-07-01 05:54:54.093 act.expected_stdout = expected_stdout
2025-07-01 05:54:54.101
2025-07-01 05:54:54.109 act.stdout = capsys.readouterr().out
2025-07-01 05:54:54.115 > assert act.clean_stdout == act.clean_expected_stdout
2025-07-01 05:54:54.122 E assert
2025-07-01 05:54:54.127 E Initial state:
2025-07-01 05:54:54.140 E Query: select * from v1_chk_nr
2025-07-01 05:54:54.148 E Select Expression
2025-07-01 05:54:54.155 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:54.163 E ........-> Filter
2025-07-01 05:54:54.170 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:54.184 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-01 05:54:54.197 E 3 lowered "D" normal
2025-07-01 05:54:54.203 E Query: select * from v1_chk_ir_asc
2025-07-01 05:54:54.214 E Select Expression
2025-07-01 05:54:54.223 E ....-> Filter
2025-07-01 05:54:54.230 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:54.251 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:54.268 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:54.275 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:54.294 E 3 lowered "D" normal
2025-07-01 05:54:54.302 E Query: select * from v1_chk_ir_dec
2025-07-01 05:54:54.309 E Select Expression
2025-07-01 05:54:54.315 E ....-> Filter
2025-07-01 05:54:54.323 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:54.337 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:54.350 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:54.356 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:54.369 E 3 lowered "D" normal
2025-07-01 05:54:54.375 E Query: select * from v2_chk_nr
2025-07-01 05:54:54.379 E Select Expression
2025-07-01 05:54:54.384 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:54.389 E ........-> Filter
2025-07-01 05:54:54.394 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:54.407 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-01 05:54:54.428 E 3 lowered "L" normal
2025-07-01 05:54:54.435 E Query: select * from v2_chk_ir_asc
2025-07-01 05:54:54.442 E Select Expression
2025-07-01 05:54:54.453 E ....-> Filter
2025-07-01 05:54:54.462 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:54.484 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:54.500 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:54.507 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:54.519 E 3 lowered "L" normal
2025-07-01 05:54:54.524 E Query: select * from v2_chk_ir_dec
2025-07-01 05:54:54.529 E Select Expression
2025-07-01 05:54:54.535 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:54.541 E ........-> Filter
2025-07-01 05:54:54.547 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:54.564 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:54.579 E ................-> Bitmap
2025-07-01 05:54:54.585 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:54.590 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:54.602 E 3 lowered "L" normal
2025-07-01 05:54:54.612 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-07-01 05:54:54.618 E Query: select * from v1_chk_nr
2025-07-01 05:54:54.624 E Select Expression
2025-07-01 05:54:54.630 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:54.635 E ........-> Filter
2025-07-01 05:54:54.641 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:54.653 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-01 05:54:54.665 E 3 lowered "D" normal
2025-07-01 05:54:54.669 E 4 UPPERED "D" normal
2025-07-01 05:54:54.674 E Query: select * from v1_chk_ir_asc
2025-07-01 05:54:54.679 E Select Expression
2025-07-01 05:54:54.683 E ....-> Filter
2025-07-01 05:54:54.689 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:54.700 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:54.723 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:54.733 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:54.750 E 3 lowered "D" normal
2025-07-01 05:54:54.761 E 4 UPPERED "D" normal
2025-07-01 05:54:54.770 E Query: select * from v1_chk_ir_dec
2025-07-01 05:54:54.779 E Select Expression
2025-07-01 05:54:54.786 E ....-> Filter
2025-07-01 05:54:54.792 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:54.806 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:54.826 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:54.834 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:54.846 E 4 UPPERED "D" normal
2025-07-01 05:54:54.857 E 3 lowered "D" normal
2025-07-01 05:54:54.866 E Query: select * from v2_chk_nr
2025-07-01 05:54:54.873 E Select Expression
2025-07-01 05:54:54.879 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:54.884 E ........-> Filter
2025-07-01 05:54:54.893 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:54.916 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-01 05:54:54.931 E 3 lowered "L" normal
2025-07-01 05:54:54.940 E 4 UPPERED "L" normal
2025-07-01 05:54:54.951 E Query: select * from v2_chk_ir_asc
2025-07-01 05:54:54.960 E Select Expression
2025-07-01 05:54:54.967 E ....-> Filter
2025-07-01 05:54:54.974 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:54.998 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:55.015 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.022 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.034 E 3 lowered "L" normal
2025-07-01 05:54:55.038 E 4 UPPERED "L" normal
2025-07-01 05:54:55.048 E Query: select * from v2_chk_ir_dec
2025-07-01 05:54:55.057 E Select Expression
2025-07-01 05:54:55.065 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:55.070 E ........-> Filter
2025-07-01 05:54:55.076 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:55.100 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:55.124 E ................-> Bitmap
2025-07-01 05:54:55.135 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.145 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.159 E 4 UPPERED "L" normal
2025-07-01 05:54:55.166 E 3 lowered "L" normal
2025-07-01 05:54:55.176 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-07-01 05:54:55.189 E Query: select * from v1_chk_nr
2025-07-01 05:54:55.202 E Select Expression
2025-07-01 05:54:55.209 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:55.215 E ........-> Filter
2025-07-01 05:54:55.223 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:55.240 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-01 05:54:55.257 E 1 lowered "D" w/accent
2025-07-01 05:54:55.263 E 2 UPPERED "D" w/accent
2025-07-01 05:54:55.269 E 3 lowered "D" normal
2025-07-01 05:54:55.275 E 4 UPPERED "D" normal
2025-07-01 05:54:55.282 E Query: select * from v1_chk_ir_asc
2025-07-01 05:54:55.293 E Select Expression
2025-07-01 05:54:55.305 E ....-> Filter
2025-07-01 05:54:55.313 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:55.326 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:55.338 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:55.344 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:55.355 E 3 lowered "D" normal
2025-07-01 05:54:55.363 E 4 UPPERED "D" normal
2025-07-01 05:54:55.371 E 1 lowered "D" w/accent
2025-07-01 05:54:55.377 E 2 UPPERED "D" w/accent
2025-07-01 05:54:55.384 E Query: select * from v1_chk_ir_dec
2025-07-01 05:54:55.390 E Select Expression
2025-07-01 05:54:55.396 E ....-> Filter
2025-07-01 05:54:55.402 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:55.414 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:55.426 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:55.432 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:55.449 E 2 UPPERED "D" w/accent
2025-07-01 05:54:55.457 E 1 lowered "D" w/accent
2025-07-01 05:54:55.463 E 4 UPPERED "D" normal
2025-07-01 05:54:55.468 E 3 lowered "D" normal
2025-07-01 05:54:55.472 E Query: select * from v2_chk_nr
2025-07-01 05:54:55.477 E Select Expression
2025-07-01 05:54:55.482 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:55.487 E ........-> Filter
2025-07-01 05:54:55.491 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:55.503 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-01 05:54:55.515 E 1 lowered "L" w/accent
2025-07-01 05:54:55.520 E 2 UPPERED "L" w/accent
2025-07-01 05:54:55.526 E 3 lowered "L" normal
2025-07-01 05:54:55.537 E 4 UPPERED "L" normal
2025-07-01 05:54:55.548 E Query: select * from v2_chk_ir_asc
2025-07-01 05:54:55.559 E Select Expression
2025-07-01 05:54:55.567 E ....-> Filter
2025-07-01 05:54:55.574 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:55.596 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:55.620 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.631 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.653 E 3 lowered "L" normal
2025-07-01 05:54:55.663 E 4 UPPERED "L" normal
2025-07-01 05:54:55.672 E 1 lowered "L" w/accent
2025-07-01 05:54:55.681 E 2 UPPERED "L" w/accent
2025-07-01 05:54:55.690 E Query: select * from v2_chk_ir_dec
2025-07-01 05:54:55.699 E Select Expression
2025-07-01 05:54:55.706 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:55.711 E ........-> Filter
2025-07-01 05:54:55.717 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:55.727 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:55.737 E ................-> Bitmap
2025-07-01 05:54:55.742 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.747 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:55.758 E 2 UPPERED "L" w/accent
2025-07-01 05:54:55.763 E 1 lowered "L" w/accent
2025-07-01 05:54:55.768 E 4 UPPERED "L" normal
2025-07-01 05:54:55.773 E 3 lowered "L" normal
2025-07-01 05:54:55.778 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-07-01 05:54:55.789 E Query: select * from v1_chk_nr
2025-07-01 05:54:55.798 E Select Expression
2025-07-01 05:54:55.807 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:55.815 E ........-> Filter
2025-07-01 05:54:55.822 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-07-01 05:54:55.833 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-07-01 05:54:55.848 E 3 lowered "D" normal
2025-07-01 05:54:55.860 E Query: select * from v1_chk_ir_asc
2025-07-01 05:54:55.869 E Select Expression
2025-07-01 05:54:55.876 E ....-> Filter
2025-07-01 05:54:55.884 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-07-01 05:54:55.904 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:55.919 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:55.925 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-07-01 05:54:55.937 E 3 lowered "D" normal
2025-07-01 05:54:55.950 E Query: select * from v1_chk_ir_dec
2025-07-01 05:54:55.963 E Select Expression
2025-07-01 05:54:55.976 E ....-> Filter
2025-07-01 05:54:55.989 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-07-01 05:54:56.015 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-07-01 05:54:56.037 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:56.047 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-07-01 05:54:56.062 E 3 lowered "D" normal
2025-07-01 05:54:56.068 E Query: select * from v2_chk_nr
2025-07-01 05:54:56.074 E Select Expression
2025-07-01 05:54:56.080 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:56.085 E ........-> Filter
2025-07-01 05:54:56.090 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-07-01 05:54:56.100 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-07-01 05:54:56.109 E 3 lowered "L" normal
2025-07-01 05:54:56.113 E Query: select * from v2_chk_ir_asc
2025-07-01 05:54:56.118 E Select Expression
2025-07-01 05:54:56.122 E ....-> Filter
2025-07-01 05:54:56.127 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-07-01 05:54:56.136 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:56.145 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:56.149 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:56.158 E 3 lowered "L" normal
2025-07-01 05:54:56.162 E Query: select * from v2_chk_ir_dec
2025-07-01 05:54:56.167 E Select Expression
2025-07-01 05:54:56.171 E ....-> Sort (record length: NN, key length: MM)
2025-07-01 05:54:56.176 E ........-> Filter
2025-07-01 05:54:56.180 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-07-01 05:54:56.189 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-07-01 05:54:56.198 E ................-> Bitmap
2025-07-01 05:54:56.202 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:56.207 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-07-01 05:54:56.215 E 3 lowered "L" normal
2025-07-01 05:54:56.223
2025-07-01 05:54:56.230 tests/bugs/gh_8434_test.py:371: AssertionError
2025-07-01 05:54:56.236 ---------------------------- Captured stdout setup -----------------------------
2025-07-01 05:54:56.243 Creating db: localhost:/var/tmp/qa_2024/test_11741/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
|
3 #text |
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>
@pytest.mark.version('>=6')
def test_1(act: Action, capsys):
qry_map = {
1 : 'select * from v1_chk_nr'
,2 : 'select * from v1_chk_ir_asc'
,3 : 'select * from v1_chk_ir_dec'
,4 : 'select * from v2_chk_nr'
,5 : 'select * from v2_chk_ir_asc'
,6 : 'select * from v2_chk_ir_dec'
}
alter_lst = (
''
,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
,'alter domain dm_utf8 type varchar(1) character set utf8'
)
with act.db.connect(charset = 'utf8') as con:
cur = con.cursor()
for alter_i in alter_lst:
if alter_i.strip():
con.execute_immediate(alter_i)
con.commit()
print(f'\nAfter {alter_i}:')
else:
print('Initial state:')
for k, v in qry_map.items():
ps, rs = None, None
try:
ps = cur.prepare(v)
print('Query:', v)
# Print explained plan with padding eash line by dots in order to see indentations:
print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
print('')
# ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
# We have to store result of cur.execute(<psInstance>) in order to
# close it explicitly.
# Otherwise AV can occur during Python garbage collection and this
# causes pytest to hang on its final point.
# Explained by hvlad, email 26.10.24 17:42
rs = cur.execute(ps)
for r in rs:
print(r[0], r[1])
except DatabaseError as e:
print(e.__str__())
print(e.gds_codes)
finally:
if rs:
rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
if ps:
ps.free()
expected_stdout = """
Initial state:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
1 lowered "D" w/accent
2 UPPERED "D" w/accent
3 lowered "D" normal
4 UPPERED "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
4 UPPERED "D" normal
1 lowered "D" w/accent
2 UPPERED "D" w/accent
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
2 UPPERED "D" w/accent
1 lowered "D" w/accent
4 UPPERED "D" normal
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
1 lowered "L" w/accent
2 UPPERED "L" w/accent
3 lowered "L" normal
4 UPPERED "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
4 UPPERED "L" normal
1 lowered "L" w/accent
2 UPPERED "L" w/accent
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2 UPPERED "L" w/accent
1 lowered "L" w/accent
4 UPPERED "L" normal
3 lowered "L" normal
After alter domain dm_utf8 type varchar(1) character set utf8:
Query: select * from v1_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
3 lowered "D" normal
Query: select * from v1_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
............-> Index "TEST1_ASC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v1_chk_ir_dec
Select Expression
....-> Filter
........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
............-> Index "TEST1_DEC" Range Scan (full match)
3 lowered "D" normal
Query: select * from v2_chk_nr
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_asc
Select Expression
....-> Filter
........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
............-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
Query: select * from v2_chk_ir_dec
Select Expression
....-> Sort (record length: NN, key length: MM)
........-> Filter
............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
................-> Bitmap
....................-> Index "TEST2_PARTIAL_ASC" Full Scan
3 lowered "L" normal
"""
act.expected_stdout = expected_stdout
act.stdout = capsys.readouterr().out
> assert act.clean_stdout == act.clean_expected_stdout
E assert
E Initial state:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 4 UPPERED "D" normal
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 4 UPPERED "L" normal
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 1 lowered "D" w/accent
E 2 UPPERED "D" w/accent
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E 4 UPPERED "D" normal
E 1 lowered "D" w/accent
E 2 UPPERED "D" w/accent
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 2 UPPERED "D" w/accent
E 1 lowered "D" w/accent
E 4 UPPERED "D" normal
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 1 lowered "L" w/accent
E 2 UPPERED "L" w/accent
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E 4 UPPERED "L" normal
E 1 lowered "L" w/accent
E 2 UPPERED "L" w/accent
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 2 UPPERED "L" w/accent
E 1 lowered "L" w/accent
E 4 UPPERED "L" normal
E 3 lowered "L" normal
E After alter domain dm_utf8 type varchar(1) character set utf8:
E Query: select * from v1_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_ASC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v1_chk_ir_dec
E Select Expression
E ....-> Filter
E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
E - ............-> Index "TEST1_DEC" Range Scan (full match)
E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
E 3 lowered "D" normal
E Query: select * from v2_chk_nr
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_asc
E Select Expression
E ....-> Filter
E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
E Query: select * from v2_chk_ir_dec
E Select Expression
E ....-> Sort (record length: NN, key length: MM)
E ........-> Filter
E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
E ................-> Bitmap
E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
E 3 lowered "L" normal
tests/bugs/gh_8434_test.py:371: AssertionError
|