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-27 05:18:20.194
2025-06-27 05:18:20.202 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-27 05:18:20.208 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-27 05:18:20.214
2025-06-27 05:18:20.222 @pytest.mark.version('>=6')
2025-06-27 05:18:20.229 def test_1(act: Action, capsys):
2025-06-27 05:18:20.235 qry_map = {
2025-06-27 05:18:20.244 1 : 'select * from v1_chk_nr'
2025-06-27 05:18:20.253 ,2 : 'select * from v1_chk_ir_asc'
2025-06-27 05:18:20.260 ,3 : 'select * from v1_chk_ir_dec'
2025-06-27 05:18:20.267 ,4 : 'select * from v2_chk_nr'
2025-06-27 05:18:20.275 ,5 : 'select * from v2_chk_ir_asc'
2025-06-27 05:18:20.286 ,6 : 'select * from v2_chk_ir_dec'
2025-06-27 05:18:20.294 }
2025-06-27 05:18:20.302
2025-06-27 05:18:20.313 alter_lst = (
2025-06-27 05:18:20.324 ''
2025-06-27 05:18:20.333 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-06-27 05:18:20.340 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-06-27 05:18:20.348 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-06-27 05:18:20.354 )
2025-06-27 05:18:20.360
2025-06-27 05:18:20.365 with act.db.connect(charset = 'utf8') as con:
2025-06-27 05:18:20.369 cur = con.cursor()
2025-06-27 05:18:20.374 for alter_i in alter_lst:
2025-06-27 05:18:20.379 if alter_i.strip():
2025-06-27 05:18:20.384 con.execute_immediate(alter_i)
2025-06-27 05:18:20.392 con.commit()
2025-06-27 05:18:20.401 print(f'\nAfter {alter_i}:')
2025-06-27 05:18:20.409 else:
2025-06-27 05:18:20.416 print('Initial state:')
2025-06-27 05:18:20.422
2025-06-27 05:18:20.428 for k, v in qry_map.items():
2025-06-27 05:18:20.434 ps, rs = None, None
2025-06-27 05:18:20.439 try:
2025-06-27 05:18:20.447 ps = cur.prepare(v)
2025-06-27 05:18:20.457
2025-06-27 05:18:20.466 print('Query:', v)
2025-06-27 05:18:20.473 # Print explained plan with padding eash line by dots in order to see indentations:
2025-06-27 05:18:20.482 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-06-27 05:18:20.492 print('')
2025-06-27 05:18:20.501
2025-06-27 05:18:20.512 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-06-27 05:18:20.524 # We have to store result of cur.execute(<psInstance>) in order to
2025-06-27 05:18:20.535 # close it explicitly.
2025-06-27 05:18:20.545 # Otherwise AV can occur during Python garbage collection and this
2025-06-27 05:18:20.552 # causes pytest to hang on its final point.
2025-06-27 05:18:20.559 # Explained by hvlad, email 26.10.24 17:42
2025-06-27 05:18:20.564 rs = cur.execute(ps)
2025-06-27 05:18:20.570 for r in rs:
2025-06-27 05:18:20.575 print(r[0], r[1])
2025-06-27 05:18:20.579 except DatabaseError as e:
2025-06-27 05:18:20.587 print(e.__str__())
2025-06-27 05:18:20.597 print(e.gds_codes)
2025-06-27 05:18:20.608 finally:
2025-06-27 05:18:20.620 if rs:
2025-06-27 05:18:20.631 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-06-27 05:18:20.640 if ps:
2025-06-27 05:18:20.650 ps.free()
2025-06-27 05:18:20.663
2025-06-27 05:18:20.673
2025-06-27 05:18:20.685 expected_stdout = """
2025-06-27 05:18:20.694 Initial state:
2025-06-27 05:18:20.705
2025-06-27 05:18:20.716 Query: select * from v1_chk_nr
2025-06-27 05:18:20.728 Select Expression
2025-06-27 05:18:20.737 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:20.744 ........-> Filter
2025-06-27 05:18:20.751 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:20.759 3 lowered "D" normal
2025-06-27 05:18:20.770 Query: select * from v1_chk_ir_asc
2025-06-27 05:18:20.779 Select Expression
2025-06-27 05:18:20.786 ....-> Filter
2025-06-27 05:18:20.795 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:20.805 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:20.814 3 lowered "D" normal
2025-06-27 05:18:20.826 Query: select * from v1_chk_ir_dec
2025-06-27 05:18:20.835 Select Expression
2025-06-27 05:18:20.843 ....-> Filter
2025-06-27 05:18:20.851 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:20.857 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:20.863 3 lowered "D" normal
2025-06-27 05:18:20.869 Query: select * from v2_chk_nr
2025-06-27 05:18:20.875 Select Expression
2025-06-27 05:18:20.881 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:20.887 ........-> Filter
2025-06-27 05:18:20.893 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:20.899 3 lowered "L" normal
2025-06-27 05:18:20.904 Query: select * from v2_chk_ir_asc
2025-06-27 05:18:20.910 Select Expression
2025-06-27 05:18:20.916 ....-> Filter
2025-06-27 05:18:20.922 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:20.927 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:20.932 3 lowered "L" normal
2025-06-27 05:18:20.938 Query: select * from v2_chk_ir_dec
2025-06-27 05:18:20.943 Select Expression
2025-06-27 05:18:20.948 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:20.953 ........-> Filter
2025-06-27 05:18:20.958 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:20.963 ................-> Bitmap
2025-06-27 05:18:20.968 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:20.973 3 lowered "L" normal
2025-06-27 05:18:20.979
2025-06-27 05:18:20.984
2025-06-27 05:18:20.990 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-27 05:18:20.995
2025-06-27 05:18:21.002 Query: select * from v1_chk_nr
2025-06-27 05:18:21.007 Select Expression
2025-06-27 05:18:21.012 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.018 ........-> Filter
2025-06-27 05:18:21.026 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:21.036 3 lowered "D" normal
2025-06-27 05:18:21.045 4 UPPERED "D" normal
2025-06-27 05:18:21.053 Query: select * from v1_chk_ir_asc
2025-06-27 05:18:21.060 Select Expression
2025-06-27 05:18:21.066 ....-> Filter
2025-06-27 05:18:21.076 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:21.085 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:21.093 3 lowered "D" normal
2025-06-27 05:18:21.099 4 UPPERED "D" normal
2025-06-27 05:18:21.107 Query: select * from v1_chk_ir_dec
2025-06-27 05:18:21.117 Select Expression
2025-06-27 05:18:21.125 ....-> Filter
2025-06-27 05:18:21.132 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:21.139 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:21.145 4 UPPERED "D" normal
2025-06-27 05:18:21.151 3 lowered "D" normal
2025-06-27 05:18:21.156 Query: select * from v2_chk_nr
2025-06-27 05:18:21.162 Select Expression
2025-06-27 05:18:21.173 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.181 ........-> Filter
2025-06-27 05:18:21.188 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:21.194 3 lowered "L" normal
2025-06-27 05:18:21.199 4 UPPERED "L" normal
2025-06-27 05:18:21.204 Query: select * from v2_chk_ir_asc
2025-06-27 05:18:21.209 Select Expression
2025-06-27 05:18:21.214 ....-> Filter
2025-06-27 05:18:21.219 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:21.225 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:21.231 3 lowered "L" normal
2025-06-27 05:18:21.241 4 UPPERED "L" normal
2025-06-27 05:18:21.250 Query: select * from v2_chk_ir_dec
2025-06-27 05:18:21.259 Select Expression
2025-06-27 05:18:21.265 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.271 ........-> Filter
2025-06-27 05:18:21.277 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:21.283 ................-> Bitmap
2025-06-27 05:18:21.290 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:21.300 4 UPPERED "L" normal
2025-06-27 05:18:21.308 3 lowered "L" normal
2025-06-27 05:18:21.321
2025-06-27 05:18:21.333
2025-06-27 05:18:21.343 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-27 05:18:21.351
2025-06-27 05:18:21.359 Query: select * from v1_chk_nr
2025-06-27 05:18:21.367 Select Expression
2025-06-27 05:18:21.374 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.386 ........-> Filter
2025-06-27 05:18:21.396 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:21.407 1 lowered "D" w/accent
2025-06-27 05:18:21.417 2 UPPERED "D" w/accent
2025-06-27 05:18:21.425 3 lowered "D" normal
2025-06-27 05:18:21.432 4 UPPERED "D" normal
2025-06-27 05:18:21.439 Query: select * from v1_chk_ir_asc
2025-06-27 05:18:21.445 Select Expression
2025-06-27 05:18:21.451 ....-> Filter
2025-06-27 05:18:21.458 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:21.469 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:21.481 3 lowered "D" normal
2025-06-27 05:18:21.492 4 UPPERED "D" normal
2025-06-27 05:18:21.504 1 lowered "D" w/accent
2025-06-27 05:18:21.516 2 UPPERED "D" w/accent
2025-06-27 05:18:21.527 Query: select * from v1_chk_ir_dec
2025-06-27 05:18:21.536 Select Expression
2025-06-27 05:18:21.545 ....-> Filter
2025-06-27 05:18:21.556 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:21.565 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:21.573 2 UPPERED "D" w/accent
2025-06-27 05:18:21.580 1 lowered "D" w/accent
2025-06-27 05:18:21.585 4 UPPERED "D" normal
2025-06-27 05:18:21.590 3 lowered "D" normal
2025-06-27 05:18:21.599 Query: select * from v2_chk_nr
2025-06-27 05:18:21.608 Select Expression
2025-06-27 05:18:21.615 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.627 ........-> Filter
2025-06-27 05:18:21.633 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:21.639 1 lowered "L" w/accent
2025-06-27 05:18:21.645 2 UPPERED "L" w/accent
2025-06-27 05:18:21.651 3 lowered "L" normal
2025-06-27 05:18:21.658 4 UPPERED "L" normal
2025-06-27 05:18:21.670 Query: select * from v2_chk_ir_asc
2025-06-27 05:18:21.677 Select Expression
2025-06-27 05:18:21.684 ....-> Filter
2025-06-27 05:18:21.691 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:21.699 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:21.709 3 lowered "L" normal
2025-06-27 05:18:21.716 4 UPPERED "L" normal
2025-06-27 05:18:21.723 1 lowered "L" w/accent
2025-06-27 05:18:21.734 2 UPPERED "L" w/accent
2025-06-27 05:18:21.745 Query: select * from v2_chk_ir_dec
2025-06-27 05:18:21.755 Select Expression
2025-06-27 05:18:21.764 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.771 ........-> Filter
2025-06-27 05:18:21.778 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:21.788 ................-> Bitmap
2025-06-27 05:18:21.797 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:21.805 2 UPPERED "L" w/accent
2025-06-27 05:18:21.811 1 lowered "L" w/accent
2025-06-27 05:18:21.822 4 UPPERED "L" normal
2025-06-27 05:18:21.833 3 lowered "L" normal
2025-06-27 05:18:21.844
2025-06-27 05:18:21.853
2025-06-27 05:18:21.863 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-27 05:18:21.874
2025-06-27 05:18:21.886 Query: select * from v1_chk_nr
2025-06-27 05:18:21.897 Select Expression
2025-06-27 05:18:21.905 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:21.913 ........-> Filter
2025-06-27 05:18:21.919 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:21.925 3 lowered "D" normal
2025-06-27 05:18:21.931 Query: select * from v1_chk_ir_asc
2025-06-27 05:18:21.938 Select Expression
2025-06-27 05:18:21.948 ....-> Filter
2025-06-27 05:18:21.957 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:21.964 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:21.971 3 lowered "D" normal
2025-06-27 05:18:21.979 Query: select * from v1_chk_ir_dec
2025-06-27 05:18:21.990 Select Expression
2025-06-27 05:18:22.000 ....-> Filter
2025-06-27 05:18:22.010 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:22.022 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:22.031 3 lowered "D" normal
2025-06-27 05:18:22.039 Query: select * from v2_chk_nr
2025-06-27 05:18:22.046 Select Expression
2025-06-27 05:18:22.055 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:22.066 ........-> Filter
2025-06-27 05:18:22.077 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:22.090 3 lowered "L" normal
2025-06-27 05:18:22.102 Query: select * from v2_chk_ir_asc
2025-06-27 05:18:22.112 Select Expression
2025-06-27 05:18:22.124 ....-> Filter
2025-06-27 05:18:22.134 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:22.145 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:22.156 3 lowered "L" normal
2025-06-27 05:18:22.167 Query: select * from v2_chk_ir_dec
2025-06-27 05:18:22.174 Select Expression
2025-06-27 05:18:22.182 ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:22.191 ........-> Filter
2025-06-27 05:18:22.201 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:22.208 ................-> Bitmap
2025-06-27 05:18:22.219 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:22.228 3 lowered "L" normal
2025-06-27 05:18:22.236 """
2025-06-27 05:18:22.243
2025-06-27 05:18:22.249 act.expected_stdout = expected_stdout
2025-06-27 05:18:22.255
2025-06-27 05:18:22.261 act.stdout = capsys.readouterr().out
2025-06-27 05:18:22.266 > assert act.clean_stdout == act.clean_expected_stdout
2025-06-27 05:18:22.277 E assert
2025-06-27 05:18:22.286 E Initial state:
2025-06-27 05:18:22.294 E Query: select * from v1_chk_nr
2025-06-27 05:18:22.303 E Select Expression
2025-06-27 05:18:22.312 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:22.325 E ........-> Filter
2025-06-27 05:18:22.340 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:22.365 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-27 05:18:22.380 E 3 lowered "D" normal
2025-06-27 05:18:22.386 E Query: select * from v1_chk_ir_asc
2025-06-27 05:18:22.396 E Select Expression
2025-06-27 05:18:22.407 E ....-> Filter
2025-06-27 05:18:22.415 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:22.430 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:22.443 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:22.448 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:22.459 E 3 lowered "D" normal
2025-06-27 05:18:22.464 E Query: select * from v1_chk_ir_dec
2025-06-27 05:18:22.470 E Select Expression
2025-06-27 05:18:22.476 E ....-> Filter
2025-06-27 05:18:22.482 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:22.502 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:22.521 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:22.534 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:22.557 E 3 lowered "D" normal
2025-06-27 05:18:22.565 E Query: select * from v2_chk_nr
2025-06-27 05:18:22.572 E Select Expression
2025-06-27 05:18:22.581 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:22.594 E ........-> Filter
2025-06-27 05:18:22.600 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:22.612 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-27 05:18:22.623 E 3 lowered "L" normal
2025-06-27 05:18:22.629 E Query: select * from v2_chk_ir_asc
2025-06-27 05:18:22.635 E Select Expression
2025-06-27 05:18:22.640 E ....-> Filter
2025-06-27 05:18:22.647 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:22.657 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:22.668 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:22.674 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:22.686 E 3 lowered "L" normal
2025-06-27 05:18:22.695 E Query: select * from v2_chk_ir_dec
2025-06-27 05:18:22.705 E Select Expression
2025-06-27 05:18:22.713 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:22.721 E ........-> Filter
2025-06-27 05:18:22.728 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:22.752 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:22.766 E ................-> Bitmap
2025-06-27 05:18:22.771 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:22.775 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:22.786 E 3 lowered "L" normal
2025-06-27 05:18:22.794 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-27 05:18:22.802 E Query: select * from v1_chk_nr
2025-06-27 05:18:22.809 E Select Expression
2025-06-27 05:18:22.816 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:22.824 E ........-> Filter
2025-06-27 05:18:22.831 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:22.855 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-27 05:18:22.871 E 3 lowered "D" normal
2025-06-27 05:18:22.879 E 4 UPPERED "D" normal
2025-06-27 05:18:22.889 E Query: select * from v1_chk_ir_asc
2025-06-27 05:18:22.901 E Select Expression
2025-06-27 05:18:22.910 E ....-> Filter
2025-06-27 05:18:22.918 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:22.940 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:22.954 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:22.967 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:22.988 E 3 lowered "D" normal
2025-06-27 05:18:22.994 E 4 UPPERED "D" normal
2025-06-27 05:18:22.999 E Query: select * from v1_chk_ir_dec
2025-06-27 05:18:23.004 E Select Expression
2025-06-27 05:18:23.008 E ....-> Filter
2025-06-27 05:18:23.013 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:23.024 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:23.033 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:23.038 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:23.050 E 4 UPPERED "D" normal
2025-06-27 05:18:23.056 E 3 lowered "D" normal
2025-06-27 05:18:23.062 E Query: select * from v2_chk_nr
2025-06-27 05:18:23.072 E Select Expression
2025-06-27 05:18:23.082 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:23.093 E ........-> Filter
2025-06-27 05:18:23.103 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:23.119 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-27 05:18:23.137 E 3 lowered "L" normal
2025-06-27 05:18:23.144 E 4 UPPERED "L" normal
2025-06-27 05:18:23.151 E Query: select * from v2_chk_ir_asc
2025-06-27 05:18:23.157 E Select Expression
2025-06-27 05:18:23.163 E ....-> Filter
2025-06-27 05:18:23.177 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:23.195 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:23.209 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.215 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.226 E 3 lowered "L" normal
2025-06-27 05:18:23.231 E 4 UPPERED "L" normal
2025-06-27 05:18:23.236 E Query: select * from v2_chk_ir_dec
2025-06-27 05:18:23.242 E Select Expression
2025-06-27 05:18:23.250 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:23.258 E ........-> Filter
2025-06-27 05:18:23.265 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:23.280 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:23.301 E ................-> Bitmap
2025-06-27 05:18:23.310 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.317 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.329 E 4 UPPERED "L" normal
2025-06-27 05:18:23.335 E 3 lowered "L" normal
2025-06-27 05:18:23.342 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-27 05:18:23.348 E Query: select * from v1_chk_nr
2025-06-27 05:18:23.356 E Select Expression
2025-06-27 05:18:23.366 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:23.374 E ........-> Filter
2025-06-27 05:18:23.381 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:23.392 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-27 05:18:23.401 E 1 lowered "D" w/accent
2025-06-27 05:18:23.405 E 2 UPPERED "D" w/accent
2025-06-27 05:18:23.409 E 3 lowered "D" normal
2025-06-27 05:18:23.414 E 4 UPPERED "D" normal
2025-06-27 05:18:23.420 E Query: select * from v1_chk_ir_asc
2025-06-27 05:18:23.427 E Select Expression
2025-06-27 05:18:23.433 E ....-> Filter
2025-06-27 05:18:23.439 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:23.448 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:23.458 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:23.463 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:23.475 E 3 lowered "D" normal
2025-06-27 05:18:23.482 E 4 UPPERED "D" normal
2025-06-27 05:18:23.492 E 1 lowered "D" w/accent
2025-06-27 05:18:23.502 E 2 UPPERED "D" w/accent
2025-06-27 05:18:23.509 E Query: select * from v1_chk_ir_dec
2025-06-27 05:18:23.515 E Select Expression
2025-06-27 05:18:23.523 E ....-> Filter
2025-06-27 05:18:23.533 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:23.548 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:23.564 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:23.573 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:23.587 E 2 UPPERED "D" w/accent
2025-06-27 05:18:23.598 E 1 lowered "D" w/accent
2025-06-27 05:18:23.608 E 4 UPPERED "D" normal
2025-06-27 05:18:23.615 E 3 lowered "D" normal
2025-06-27 05:18:23.620 E Query: select * from v2_chk_nr
2025-06-27 05:18:23.625 E Select Expression
2025-06-27 05:18:23.629 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:23.633 E ........-> Filter
2025-06-27 05:18:23.638 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:23.646 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-27 05:18:23.655 E 1 lowered "L" w/accent
2025-06-27 05:18:23.659 E 2 UPPERED "L" w/accent
2025-06-27 05:18:23.663 E 3 lowered "L" normal
2025-06-27 05:18:23.667 E 4 UPPERED "L" normal
2025-06-27 05:18:23.672 E Query: select * from v2_chk_ir_asc
2025-06-27 05:18:23.677 E Select Expression
2025-06-27 05:18:23.683 E ....-> Filter
2025-06-27 05:18:23.694 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:23.710 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:23.728 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.735 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.749 E 3 lowered "L" normal
2025-06-27 05:18:23.755 E 4 UPPERED "L" normal
2025-06-27 05:18:23.759 E 1 lowered "L" w/accent
2025-06-27 05:18:23.770 E 2 UPPERED "L" w/accent
2025-06-27 05:18:23.782 E Query: select * from v2_chk_ir_dec
2025-06-27 05:18:23.792 E Select Expression
2025-06-27 05:18:23.801 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:23.813 E ........-> Filter
2025-06-27 05:18:23.825 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:23.844 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:23.857 E ................-> Bitmap
2025-06-27 05:18:23.863 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.870 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:23.883 E 2 UPPERED "L" w/accent
2025-06-27 05:18:23.890 E 1 lowered "L" w/accent
2025-06-27 05:18:23.896 E 4 UPPERED "L" normal
2025-06-27 05:18:23.903 E 3 lowered "L" normal
2025-06-27 05:18:23.910 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-27 05:18:23.918 E Query: select * from v1_chk_nr
2025-06-27 05:18:23.928 E Select Expression
2025-06-27 05:18:23.936 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:23.942 E ........-> Filter
2025-06-27 05:18:23.948 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-27 05:18:23.963 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-27 05:18:23.982 E 3 lowered "D" normal
2025-06-27 05:18:23.990 E Query: select * from v1_chk_ir_asc
2025-06-27 05:18:24.002 E Select Expression
2025-06-27 05:18:24.009 E ....-> Filter
2025-06-27 05:18:24.015 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-27 05:18:24.031 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:24.046 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:24.052 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-27 05:18:24.062 E 3 lowered "D" normal
2025-06-27 05:18:24.066 E Query: select * from v1_chk_ir_dec
2025-06-27 05:18:24.073 E Select Expression
2025-06-27 05:18:24.080 E ....-> Filter
2025-06-27 05:18:24.086 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-27 05:18:24.097 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-27 05:18:24.109 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:24.116 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-27 05:18:24.129 E 3 lowered "D" normal
2025-06-27 05:18:24.135 E Query: select * from v2_chk_nr
2025-06-27 05:18:24.147 E Select Expression
2025-06-27 05:18:24.157 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:24.165 E ........-> Filter
2025-06-27 05:18:24.173 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-27 05:18:24.186 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-27 05:18:24.198 E 3 lowered "L" normal
2025-06-27 05:18:24.204 E Query: select * from v2_chk_ir_asc
2025-06-27 05:18:24.210 E Select Expression
2025-06-27 05:18:24.221 E ....-> Filter
2025-06-27 05:18:24.232 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-27 05:18:24.250 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:24.265 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:24.272 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:24.293 E 3 lowered "L" normal
2025-06-27 05:18:24.302 E Query: select * from v2_chk_ir_dec
2025-06-27 05:18:24.309 E Select Expression
2025-06-27 05:18:24.316 E ....-> Sort (record length: NN, key length: MM)
2025-06-27 05:18:24.322 E ........-> Filter
2025-06-27 05:18:24.328 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-27 05:18:24.340 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-27 05:18:24.352 E ................-> Bitmap
2025-06-27 05:18:24.357 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:24.363 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-27 05:18:24.381 E 3 lowered "L" normal
2025-06-27 05:18:24.391
2025-06-27 05:18:24.402 tests/bugs/gh_8434_test.py:371: AssertionError
2025-06-27 05:18:24.413 ---------------------------- Captured stdout setup -----------------------------
2025-06-27 05:18:24.423 Creating db: localhost:/var/tmp/qa_2024/test_11734/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
|