You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1) create database with default page_size (8k)
2) run:
echo recreate table test(s varchar(2039) unique); set count on; insert into test select rpad('', 2039, uuid_to_char(gen_uuid())) from rdb$types, rdb$types; | isql /3333:e30 & gstat -r /3333:e30
Output of ISQL will be like this:
Statement failed, SQLSTATE = 54000
Implementation limit exceeded
-Maximum index level reached
Records affected: NNN
Output of "gstat -r":
TEST (135)
Primary pointer page: 179, Index root page: 185
Total formats: 1, used formats: 0
Average record length: 0.00, total records: 0
Average version length: 0.00, total versions: 0, max versions: 0
Average fragment length: 0.00, total fragments: 0, max fragments: 0
Average unpacked length: 0.00, compression ratio: 0.00
Pointer pages: 1, data page slots: 0
Data pages: 0, average fill: 0%
Primary pages: 0, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
Index RDB$8 \(0\)
Root page: 899, depth: 16, leaf buckets: 119, nodes: 0
Average node length: 0\.00, total dup: 0, max dup: 0
Average key length: 0\.00, compression ratio: 0\.00
Average prefix length: 0\.00, average data length: 0\.00
Clustering factor: 0, ratio: 0\.00
Fill distribution:
0 \- 19% = 1
20 \- 39% = 118
40 \- 59% = 0
60 \- 79% = 0
80 \- 99% = 0
===
All numbers for INDEX section should be zeroes because in fact none records have been added into the table.
PS. gfix -sweep does not help: non-zero values remain in gstat after it.
The text was updated successfully, but these errors were encountered:
There is an issue with index GC algorithm : index could not release too many pages after all keys was deleted.
I observed it with big\huge keys and depth >= 5.
Must say that it doesn't show itself in "real life", thus i set "minor" priority.
Submitted by: @pavel-zotov
1) create database with default page_size (8k)
2) run:
echo recreate table test(s varchar(2039) unique); set count on; insert into test select rpad('', 2039, uuid_to_char(gen_uuid())) from rdb$types, rdb$types; | isql /3333:e30 & gstat -r /3333:e30
Output of ISQL will be like this:
Statement failed, SQLSTATE = 54000
Implementation limit exceeded
-Maximum index level reached
Records affected: NNN
Output of "gstat -r":
TEST (135)
Primary pointer page: 179, Index root page: 185
Total formats: 1, used formats: 0
Average record length: 0.00, total records: 0
Average version length: 0.00, total versions: 0, max versions: 0
Average fragment length: 0.00, total fragments: 0, max fragments: 0
Average unpacked length: 0.00, compression ratio: 0.00
Pointer pages: 1, data page slots: 0
Data pages: 0, average fill: 0%
Primary pages: 0, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
===
All numbers for INDEX section should be zeroes because in fact none records have been added into the table.
PS. gfix -sweep does not help: non-zero values remain in gstat after it.
The text was updated successfully, but these errors were encountered: