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-29 05:35:26.497
2025-06-29 05:35:26.504 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-29 05:35:26.510 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-29 05:35:26.516
2025-06-29 05:35:26.525 @pytest.mark.version('>=6')
2025-06-29 05:35:26.538 def test_1(act: Action, capsys):
2025-06-29 05:35:26.547 qry_map = {
2025-06-29 05:35:26.555 1 : 'select * from v1_chk_nr'
2025-06-29 05:35:26.562 ,2 : 'select * from v1_chk_ir_asc'
2025-06-29 05:35:26.569 ,3 : 'select * from v1_chk_ir_dec'
2025-06-29 05:35:26.576 ,4 : 'select * from v2_chk_nr'
2025-06-29 05:35:26.582 ,5 : 'select * from v2_chk_ir_asc'
2025-06-29 05:35:26.589 ,6 : 'select * from v2_chk_ir_dec'
2025-06-29 05:35:26.596 }
2025-06-29 05:35:26.602
2025-06-29 05:35:26.613 alter_lst = (
2025-06-29 05:35:26.625 ''
2025-06-29 05:35:26.639 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci'
2025-06-29 05:35:26.649 ,'alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai'
2025-06-29 05:35:26.661 ,'alter domain dm_utf8 type varchar(1) character set utf8'
2025-06-29 05:35:26.672 )
2025-06-29 05:35:26.686
2025-06-29 05:35:26.698 with act.db.connect(charset = 'utf8') as con:
2025-06-29 05:35:26.713 cur = con.cursor()
2025-06-29 05:35:26.723 for alter_i in alter_lst:
2025-06-29 05:35:26.731 if alter_i.strip():
2025-06-29 05:35:26.739 con.execute_immediate(alter_i)
2025-06-29 05:35:26.746 con.commit()
2025-06-29 05:35:26.754 print(f'\nAfter {alter_i}:')
2025-06-29 05:35:26.760 else:
2025-06-29 05:35:26.767 print('Initial state:')
2025-06-29 05:35:26.773
2025-06-29 05:35:26.780 for k, v in qry_map.items():
2025-06-29 05:35:26.786 ps, rs = None, None
2025-06-29 05:35:26.793 try:
2025-06-29 05:35:26.806 ps = cur.prepare(v)
2025-06-29 05:35:26.820
2025-06-29 05:35:26.829 print('Query:', v)
2025-06-29 05:35:26.836 # Print explained plan with padding eash line by dots in order to see indentations:
2025-06-29 05:35:26.843 print( '\n'.join([replace_leading(s) for s in ps.detailed_plan.split('\n')]) )
2025-06-29 05:35:26.850 print('')
2025-06-29 05:35:26.856
2025-06-29 05:35:26.862 # ::: NB ::: 'ps' returns data, i.e. this is SELECTABLE expression.
2025-06-29 05:35:26.867 # We have to store result of cur.execute(<psInstance>) in order to
2025-06-29 05:35:26.872 # close it explicitly.
2025-06-29 05:35:26.878 # Otherwise AV can occur during Python garbage collection and this
2025-06-29 05:35:26.884 # causes pytest to hang on its final point.
2025-06-29 05:35:26.892 # Explained by hvlad, email 26.10.24 17:42
2025-06-29 05:35:26.904 rs = cur.execute(ps)
2025-06-29 05:35:26.915 for r in rs:
2025-06-29 05:35:26.927 print(r[0], r[1])
2025-06-29 05:35:26.936 except DatabaseError as e:
2025-06-29 05:35:26.945 print(e.__str__())
2025-06-29 05:35:26.958 print(e.gds_codes)
2025-06-29 05:35:26.968 finally:
2025-06-29 05:35:26.981 if rs:
2025-06-29 05:35:26.994 rs.close() # <<< EXPLICITLY CLOSING CURSOR RESULTS
2025-06-29 05:35:27.004 if ps:
2025-06-29 05:35:27.013 ps.free()
2025-06-29 05:35:27.018
2025-06-29 05:35:27.023
2025-06-29 05:35:27.030 expected_stdout = """
2025-06-29 05:35:27.035 Initial state:
2025-06-29 05:35:27.043
2025-06-29 05:35:27.051 Query: select * from v1_chk_nr
2025-06-29 05:35:27.058 Select Expression
2025-06-29 05:35:27.063 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.068 ........-> Filter
2025-06-29 05:35:27.073 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:27.080 3 lowered "D" normal
2025-06-29 05:35:27.086 Query: select * from v1_chk_ir_asc
2025-06-29 05:35:27.091 Select Expression
2025-06-29 05:35:27.097 ....-> Filter
2025-06-29 05:35:27.103 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:27.108 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:27.120 3 lowered "D" normal
2025-06-29 05:35:27.131 Query: select * from v1_chk_ir_dec
2025-06-29 05:35:27.139 Select Expression
2025-06-29 05:35:27.146 ....-> Filter
2025-06-29 05:35:27.152 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:27.159 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:27.165 3 lowered "D" normal
2025-06-29 05:35:27.171 Query: select * from v2_chk_nr
2025-06-29 05:35:27.178 Select Expression
2025-06-29 05:35:27.190 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.201 ........-> Filter
2025-06-29 05:35:27.212 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:27.221 3 lowered "L" normal
2025-06-29 05:35:27.230 Query: select * from v2_chk_ir_asc
2025-06-29 05:35:27.240 Select Expression
2025-06-29 05:35:27.248 ....-> Filter
2025-06-29 05:35:27.257 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:27.264 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:27.272 3 lowered "L" normal
2025-06-29 05:35:27.280 Query: select * from v2_chk_ir_dec
2025-06-29 05:35:27.287 Select Expression
2025-06-29 05:35:27.295 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.303 ........-> Filter
2025-06-29 05:35:27.316 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:27.328 ................-> Bitmap
2025-06-29 05:35:27.338 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:27.347 3 lowered "L" normal
2025-06-29 05:35:27.354
2025-06-29 05:35:27.364
2025-06-29 05:35:27.377 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-29 05:35:27.385
2025-06-29 05:35:27.394 Query: select * from v1_chk_nr
2025-06-29 05:35:27.406 Select Expression
2025-06-29 05:35:27.416 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.424 ........-> Filter
2025-06-29 05:35:27.432 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:27.439 3 lowered "D" normal
2025-06-29 05:35:27.444 4 UPPERED "D" normal
2025-06-29 05:35:27.449 Query: select * from v1_chk_ir_asc
2025-06-29 05:35:27.454 Select Expression
2025-06-29 05:35:27.459 ....-> Filter
2025-06-29 05:35:27.470 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:27.480 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:27.488 3 lowered "D" normal
2025-06-29 05:35:27.494 4 UPPERED "D" normal
2025-06-29 05:35:27.504 Query: select * from v1_chk_ir_dec
2025-06-29 05:35:27.517 Select Expression
2025-06-29 05:35:27.526 ....-> Filter
2025-06-29 05:35:27.535 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:27.543 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:27.550 4 UPPERED "D" normal
2025-06-29 05:35:27.558 3 lowered "D" normal
2025-06-29 05:35:27.566 Query: select * from v2_chk_nr
2025-06-29 05:35:27.573 Select Expression
2025-06-29 05:35:27.587 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.598 ........-> Filter
2025-06-29 05:35:27.606 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:27.614 3 lowered "L" normal
2025-06-29 05:35:27.620 4 UPPERED "L" normal
2025-06-29 05:35:27.627 Query: select * from v2_chk_ir_asc
2025-06-29 05:35:27.634 Select Expression
2025-06-29 05:35:27.641 ....-> Filter
2025-06-29 05:35:27.647 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:27.655 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:27.666 3 lowered "L" normal
2025-06-29 05:35:27.675 4 UPPERED "L" normal
2025-06-29 05:35:27.684 Query: select * from v2_chk_ir_dec
2025-06-29 05:35:27.692 Select Expression
2025-06-29 05:35:27.699 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.706 ........-> Filter
2025-06-29 05:35:27.712 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:27.718 ................-> Bitmap
2025-06-29 05:35:27.725 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:27.731 4 UPPERED "L" normal
2025-06-29 05:35:27.739 3 lowered "L" normal
2025-06-29 05:35:27.751
2025-06-29 05:35:27.760
2025-06-29 05:35:27.768 After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-29 05:35:27.775
2025-06-29 05:35:27.786 Query: select * from v1_chk_nr
2025-06-29 05:35:27.794 Select Expression
2025-06-29 05:35:27.804 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:27.815 ........-> Filter
2025-06-29 05:35:27.823 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:27.830 1 lowered "D" w/accent
2025-06-29 05:35:27.841 2 UPPERED "D" w/accent
2025-06-29 05:35:27.852 3 lowered "D" normal
2025-06-29 05:35:27.861 4 UPPERED "D" normal
2025-06-29 05:35:27.868 Query: select * from v1_chk_ir_asc
2025-06-29 05:35:27.881 Select Expression
2025-06-29 05:35:27.894 ....-> Filter
2025-06-29 05:35:27.904 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:27.911 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:27.917 3 lowered "D" normal
2025-06-29 05:35:27.922 4 UPPERED "D" normal
2025-06-29 05:35:27.931 1 lowered "D" w/accent
2025-06-29 05:35:27.939 2 UPPERED "D" w/accent
2025-06-29 05:35:27.948 Query: select * from v1_chk_ir_dec
2025-06-29 05:35:27.954 Select Expression
2025-06-29 05:35:27.966 ....-> Filter
2025-06-29 05:35:27.978 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:27.990 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:27.999 2 UPPERED "D" w/accent
2025-06-29 05:35:28.006 1 lowered "D" w/accent
2025-06-29 05:35:28.014 4 UPPERED "D" normal
2025-06-29 05:35:28.024 3 lowered "D" normal
2025-06-29 05:35:28.032 Query: select * from v2_chk_nr
2025-06-29 05:35:28.038 Select Expression
2025-06-29 05:35:28.044 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.050 ........-> Filter
2025-06-29 05:35:28.055 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:28.062 1 lowered "L" w/accent
2025-06-29 05:35:28.072 2 UPPERED "L" w/accent
2025-06-29 05:35:28.082 3 lowered "L" normal
2025-06-29 05:35:28.091 4 UPPERED "L" normal
2025-06-29 05:35:28.098 Query: select * from v2_chk_ir_asc
2025-06-29 05:35:28.105 Select Expression
2025-06-29 05:35:28.111 ....-> Filter
2025-06-29 05:35:28.118 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:28.127 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:28.140 3 lowered "L" normal
2025-06-29 05:35:28.150 4 UPPERED "L" normal
2025-06-29 05:35:28.159 1 lowered "L" w/accent
2025-06-29 05:35:28.166 2 UPPERED "L" w/accent
2025-06-29 05:35:28.175 Query: select * from v2_chk_ir_dec
2025-06-29 05:35:28.182 Select Expression
2025-06-29 05:35:28.189 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.194 ........-> Filter
2025-06-29 05:35:28.200 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:28.206 ................-> Bitmap
2025-06-29 05:35:28.212 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:28.219 2 UPPERED "L" w/accent
2025-06-29 05:35:28.225 1 lowered "L" w/accent
2025-06-29 05:35:28.231 4 UPPERED "L" normal
2025-06-29 05:35:28.237 3 lowered "L" normal
2025-06-29 05:35:28.244
2025-06-29 05:35:28.249
2025-06-29 05:35:28.261 After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-29 05:35:28.271
2025-06-29 05:35:28.280 Query: select * from v1_chk_nr
2025-06-29 05:35:28.288 Select Expression
2025-06-29 05:35:28.293 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.301 ........-> Filter
2025-06-29 05:35:28.311 ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:28.320 3 lowered "D" normal
2025-06-29 05:35:28.328 Query: select * from v1_chk_ir_asc
2025-06-29 05:35:28.335 Select Expression
2025-06-29 05:35:28.341 ....-> Filter
2025-06-29 05:35:28.348 ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:28.354 ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:28.365 3 lowered "D" normal
2025-06-29 05:35:28.375 Query: select * from v1_chk_ir_dec
2025-06-29 05:35:28.382 Select Expression
2025-06-29 05:35:28.389 ....-> Filter
2025-06-29 05:35:28.395 ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:28.400 ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:28.411 3 lowered "D" normal
2025-06-29 05:35:28.419 Query: select * from v2_chk_nr
2025-06-29 05:35:28.429 Select Expression
2025-06-29 05:35:28.441 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.450 ........-> Filter
2025-06-29 05:35:28.457 ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:28.464 3 lowered "L" normal
2025-06-29 05:35:28.471 Query: select * from v2_chk_ir_asc
2025-06-29 05:35:28.479 Select Expression
2025-06-29 05:35:28.491 ....-> Filter
2025-06-29 05:35:28.500 ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:28.508 ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:28.514 3 lowered "L" normal
2025-06-29 05:35:28.521 Query: select * from v2_chk_ir_dec
2025-06-29 05:35:28.527 Select Expression
2025-06-29 05:35:28.534 ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.540 ........-> Filter
2025-06-29 05:35:28.547 ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:28.555 ................-> Bitmap
2025-06-29 05:35:28.561 ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:28.567 3 lowered "L" normal
2025-06-29 05:35:28.573 """
2025-06-29 05:35:28.580
2025-06-29 05:35:28.587 act.expected_stdout = expected_stdout
2025-06-29 05:35:28.594
2025-06-29 05:35:28.600 act.stdout = capsys.readouterr().out
2025-06-29 05:35:28.607 > assert act.clean_stdout == act.clean_expected_stdout
2025-06-29 05:35:28.613 E assert
2025-06-29 05:35:28.619 E Initial state:
2025-06-29 05:35:28.625 E Query: select * from v1_chk_nr
2025-06-29 05:35:28.632 E Select Expression
2025-06-29 05:35:28.638 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.644 E ........-> Filter
2025-06-29 05:35:28.650 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:28.663 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-29 05:35:28.683 E 3 lowered "D" normal
2025-06-29 05:35:28.691 E Query: select * from v1_chk_ir_asc
2025-06-29 05:35:28.701 E Select Expression
2025-06-29 05:35:28.709 E ....-> Filter
2025-06-29 05:35:28.722 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:28.738 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:28.750 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:28.756 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:28.767 E 3 lowered "D" normal
2025-06-29 05:35:28.773 E Query: select * from v1_chk_ir_dec
2025-06-29 05:35:28.778 E Select Expression
2025-06-29 05:35:28.784 E ....-> Filter
2025-06-29 05:35:28.790 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:28.811 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:28.833 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:28.846 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:28.874 E 3 lowered "D" normal
2025-06-29 05:35:28.885 E Query: select * from v2_chk_nr
2025-06-29 05:35:28.897 E Select Expression
2025-06-29 05:35:28.908 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:28.916 E ........-> Filter
2025-06-29 05:35:28.923 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:28.934 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-29 05:35:28.952 E 3 lowered "L" normal
2025-06-29 05:35:28.959 E Query: select * from v2_chk_ir_asc
2025-06-29 05:35:28.971 E Select Expression
2025-06-29 05:35:28.983 E ....-> Filter
2025-06-29 05:35:28.993 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:29.017 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:29.034 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.041 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.062 E 3 lowered "L" normal
2025-06-29 05:35:29.071 E Query: select * from v2_chk_ir_dec
2025-06-29 05:35:29.079 E Select Expression
2025-06-29 05:35:29.087 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:29.095 E ........-> Filter
2025-06-29 05:35:29.103 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:29.119 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:29.137 E ................-> Bitmap
2025-06-29 05:35:29.145 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.151 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.165 E 3 lowered "L" normal
2025-06-29 05:35:29.176 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci:
2025-06-29 05:35:29.188 E Query: select * from v1_chk_nr
2025-06-29 05:35:29.199 E Select Expression
2025-06-29 05:35:29.208 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:29.217 E ........-> Filter
2025-06-29 05:35:29.224 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:29.239 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-29 05:35:29.255 E 3 lowered "D" normal
2025-06-29 05:35:29.263 E 4 UPPERED "D" normal
2025-06-29 05:35:29.273 E Query: select * from v1_chk_ir_asc
2025-06-29 05:35:29.286 E Select Expression
2025-06-29 05:35:29.295 E ....-> Filter
2025-06-29 05:35:29.303 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:29.325 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:29.341 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:29.346 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:29.356 E 3 lowered "D" normal
2025-06-29 05:35:29.361 E 4 UPPERED "D" normal
2025-06-29 05:35:29.366 E Query: select * from v1_chk_ir_dec
2025-06-29 05:35:29.370 E Select Expression
2025-06-29 05:35:29.377 E ....-> Filter
2025-06-29 05:35:29.384 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:29.397 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:29.410 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:29.417 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:29.433 E 4 UPPERED "D" normal
2025-06-29 05:35:29.440 E 3 lowered "D" normal
2025-06-29 05:35:29.447 E Query: select * from v2_chk_nr
2025-06-29 05:35:29.454 E Select Expression
2025-06-29 05:35:29.461 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:29.468 E ........-> Filter
2025-06-29 05:35:29.476 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:29.493 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-29 05:35:29.514 E 3 lowered "L" normal
2025-06-29 05:35:29.523 E 4 UPPERED "L" normal
2025-06-29 05:35:29.531 E Query: select * from v2_chk_ir_asc
2025-06-29 05:35:29.537 E Select Expression
2025-06-29 05:35:29.543 E ....-> Filter
2025-06-29 05:35:29.551 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:29.571 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:29.595 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.605 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.632 E 3 lowered "L" normal
2025-06-29 05:35:29.647 E 4 UPPERED "L" normal
2025-06-29 05:35:29.663 E Query: select * from v2_chk_ir_dec
2025-06-29 05:35:29.671 E Select Expression
2025-06-29 05:35:29.678 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:29.684 E ........-> Filter
2025-06-29 05:35:29.690 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:29.703 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:29.719 E ................-> Bitmap
2025-06-29 05:35:29.727 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.734 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:29.747 E 4 UPPERED "L" normal
2025-06-29 05:35:29.754 E 3 lowered "L" normal
2025-06-29 05:35:29.764 E After alter domain dm_utf8 type varchar(1) character set utf8 collate unicode_ci_ai:
2025-06-29 05:35:29.775 E Query: select * from v1_chk_nr
2025-06-29 05:35:29.783 E Select Expression
2025-06-29 05:35:29.789 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:29.796 E ........-> Filter
2025-06-29 05:35:29.801 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:29.819 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-29 05:35:29.845 E 1 lowered "D" w/accent
2025-06-29 05:35:29.856 E 2 UPPERED "D" w/accent
2025-06-29 05:35:29.865 E 3 lowered "D" normal
2025-06-29 05:35:29.877 E 4 UPPERED "D" normal
2025-06-29 05:35:29.888 E Query: select * from v1_chk_ir_asc
2025-06-29 05:35:29.899 E Select Expression
2025-06-29 05:35:29.907 E ....-> Filter
2025-06-29 05:35:29.915 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:29.940 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:29.960 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:29.971 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:29.987 E 3 lowered "D" normal
2025-06-29 05:35:29.993 E 4 UPPERED "D" normal
2025-06-29 05:35:29.999 E 1 lowered "D" w/accent
2025-06-29 05:35:30.006 E 2 UPPERED "D" w/accent
2025-06-29 05:35:30.017 E Query: select * from v1_chk_ir_dec
2025-06-29 05:35:30.031 E Select Expression
2025-06-29 05:35:30.038 E ....-> Filter
2025-06-29 05:35:30.044 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:30.059 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:30.080 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:30.088 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:30.108 E 2 UPPERED "D" w/accent
2025-06-29 05:35:30.119 E 1 lowered "D" w/accent
2025-06-29 05:35:30.131 E 4 UPPERED "D" normal
2025-06-29 05:35:30.141 E 3 lowered "D" normal
2025-06-29 05:35:30.155 E Query: select * from v2_chk_nr
2025-06-29 05:35:30.166 E Select Expression
2025-06-29 05:35:30.177 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:30.185 E ........-> Filter
2025-06-29 05:35:30.195 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:30.205 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-29 05:35:30.217 E 1 lowered "L" w/accent
2025-06-29 05:35:30.226 E 2 UPPERED "L" w/accent
2025-06-29 05:35:30.237 E 3 lowered "L" normal
2025-06-29 05:35:30.248 E 4 UPPERED "L" normal
2025-06-29 05:35:30.262 E Query: select * from v2_chk_ir_asc
2025-06-29 05:35:30.275 E Select Expression
2025-06-29 05:35:30.285 E ....-> Filter
2025-06-29 05:35:30.293 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:30.310 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:30.326 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:30.334 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:30.353 E 3 lowered "L" normal
2025-06-29 05:35:30.361 E 4 UPPERED "L" normal
2025-06-29 05:35:30.366 E 1 lowered "L" w/accent
2025-06-29 05:35:30.374 E 2 UPPERED "L" w/accent
2025-06-29 05:35:30.381 E Query: select * from v2_chk_ir_dec
2025-06-29 05:35:30.388 E Select Expression
2025-06-29 05:35:30.395 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:30.403 E ........-> Filter
2025-06-29 05:35:30.414 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:30.439 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:30.460 E ................-> Bitmap
2025-06-29 05:35:30.473 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:30.487 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:30.510 E 2 UPPERED "L" w/accent
2025-06-29 05:35:30.523 E 1 lowered "L" w/accent
2025-06-29 05:35:30.533 E 4 UPPERED "L" normal
2025-06-29 05:35:30.548 E 3 lowered "L" normal
2025-06-29 05:35:30.561 E After alter domain dm_utf8 type varchar(1) character set utf8:
2025-06-29 05:35:30.574 E Query: select * from v1_chk_nr
2025-06-29 05:35:30.583 E Select Expression
2025-06-29 05:35:30.592 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:30.600 E ........-> Filter
2025-06-29 05:35:30.608 E - ............-> Table "TEST1" as "V1_CHK_NR TEST1" Full Scan
2025-06-29 05:35:30.623 E + ............-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_NR" "PUBLIC"."TEST1" Full Scan
2025-06-29 05:35:30.639 E 3 lowered "D" normal
2025-06-29 05:35:30.646 E Query: select * from v1_chk_ir_asc
2025-06-29 05:35:30.654 E Select Expression
2025-06-29 05:35:30.664 E ....-> Filter
2025-06-29 05:35:30.672 E - ........-> Table "TEST1" as "V1_CHK_IR_ASC TEST1" Access By ID
2025-06-29 05:35:30.683 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_ASC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:30.694 E - ............-> Index "TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:30.699 E + ............-> Index "PUBLIC"."TEST1_ASC" Range Scan (full match)
2025-06-29 05:35:30.712 E 3 lowered "D" normal
2025-06-29 05:35:30.724 E Query: select * from v1_chk_ir_dec
2025-06-29 05:35:30.738 E Select Expression
2025-06-29 05:35:30.747 E ....-> Filter
2025-06-29 05:35:30.755 E - ........-> Table "TEST1" as "V1_CHK_IR_DEC TEST1" Access By ID
2025-06-29 05:35:30.777 E + ........-> Table "PUBLIC"."TEST1" as "PUBLIC"."V1_CHK_IR_DEC" "PUBLIC"."TEST1" Access By ID
2025-06-29 05:35:30.800 E - ............-> Index "TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:30.808 E + ............-> Index "PUBLIC"."TEST1_DEC" Range Scan (full match)
2025-06-29 05:35:30.820 E 3 lowered "D" normal
2025-06-29 05:35:30.827 E Query: select * from v2_chk_nr
2025-06-29 05:35:30.834 E Select Expression
2025-06-29 05:35:30.841 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:30.847 E ........-> Filter
2025-06-29 05:35:30.852 E - ............-> Table "TEST2" as "V2_CHK_NR TEST2" Full Scan
2025-06-29 05:35:30.872 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_NR" "PUBLIC"."TEST2" Full Scan
2025-06-29 05:35:30.887 E 3 lowered "L" normal
2025-06-29 05:35:30.893 E Query: select * from v2_chk_ir_asc
2025-06-29 05:35:30.898 E Select Expression
2025-06-29 05:35:30.903 E ....-> Filter
2025-06-29 05:35:30.909 E - ........-> Table "TEST2" as "V2_CHK_IR_ASC TEST2" Access By ID
2025-06-29 05:35:30.919 E + ........-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_ASC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:30.933 E - ............-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:30.939 E + ............-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:30.950 E 3 lowered "L" normal
2025-06-29 05:35:30.958 E Query: select * from v2_chk_ir_dec
2025-06-29 05:35:30.964 E Select Expression
2025-06-29 05:35:30.975 E ....-> Sort (record length: NN, key length: MM)
2025-06-29 05:35:30.990 E ........-> Filter
2025-06-29 05:35:31.002 E - ............-> Table "TEST2" as "V2_CHK_IR_DEC TEST2" Access By ID
2025-06-29 05:35:31.026 E + ............-> Table "PUBLIC"."TEST2" as "PUBLIC"."V2_CHK_IR_DEC" "PUBLIC"."TEST2" Access By ID
2025-06-29 05:35:31.044 E ................-> Bitmap
2025-06-29 05:35:31.055 E - ....................-> Index "TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:31.062 E + ....................-> Index "PUBLIC"."TEST2_PARTIAL_ASC" Full Scan
2025-06-29 05:35:31.088 E 3 lowered "L" normal
2025-06-29 05:35:31.097
2025-06-29 05:35:31.108 tests/bugs/gh_8434_test.py:371: AssertionError
2025-06-29 05:35:31.118 ---------------------------- Captured stdout setup -----------------------------
2025-06-29 05:35:31.127 Creating db: localhost:/var/tmp/qa_2024/test_11738/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
|