aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/mb/Unicode/convutils.pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/mb/Unicode/convutils.pm')
-rw-r--r--src/backend/utils/mb/Unicode/convutils.pm62
1 files changed, 33 insertions, 29 deletions
diff --git a/src/backend/utils/mb/Unicode/convutils.pm b/src/backend/utils/mb/Unicode/convutils.pm
index 2f64a12ea14..9d97061c6fe 100644
--- a/src/backend/utils/mb/Unicode/convutils.pm
+++ b/src/backend/utils/mb/Unicode/convutils.pm
@@ -380,7 +380,8 @@ sub print_radix_table
{
header => "Dummy map, for invalid values",
min_idx => 0,
- max_idx => $widest_range
+ max_idx => $widest_range,
+ label => "dummy map"
};
###
@@ -471,35 +472,37 @@ sub print_radix_table
}
# Also look up the positions of the roots in the table.
- my $b1root = $segmap{"1-byte"};
- my $b2root = $segmap{"2-byte"};
- my $b3root = $segmap{"3-byte"};
- my $b4root = $segmap{"4-byte"};
+ # Missing map represents dummy mapping.
+ my $b1root = $segmap{"1-byte"} || 0;
+ my $b2root = $segmap{"2-byte"} || 0;
+ my $b3root = $segmap{"3-byte"} || 0;
+ my $b4root = $segmap{"4-byte"} || 0;
# And the lower-upper values of each level in each radix tree.
- my $b1_lower = $min_idx{1}{1};
- my $b1_upper = $max_idx{1}{1};
-
- my $b2_1_lower = $min_idx{2}{1};
- my $b2_1_upper = $max_idx{2}{1};
- my $b2_2_lower = $min_idx{2}{2};
- my $b2_2_upper = $max_idx{2}{2};
-
- my $b3_1_lower = $min_idx{3}{1};
- my $b3_1_upper = $max_idx{3}{1};
- my $b3_2_lower = $min_idx{3}{2};
- my $b3_2_upper = $max_idx{3}{2};
- my $b3_3_lower = $min_idx{3}{3};
- my $b3_3_upper = $max_idx{3}{3};
-
- my $b4_1_lower = $min_idx{4}{1};
- my $b4_1_upper = $max_idx{4}{1};
- my $b4_2_lower = $min_idx{4}{2};
- my $b4_2_upper = $max_idx{4}{2};
- my $b4_3_lower = $min_idx{4}{3};
- my $b4_3_upper = $max_idx{4}{3};
- my $b4_4_lower = $min_idx{4}{4};
- my $b4_4_upper = $max_idx{4}{4};
+ # Missing values represent zero.
+ my $b1_lower = $min_idx{1}{1} || 0;
+ my $b1_upper = $max_idx{1}{1} || 0;
+
+ my $b2_1_lower = $min_idx{2}{1} || 0;
+ my $b2_1_upper = $max_idx{2}{1} || 0;
+ my $b2_2_lower = $min_idx{2}{2} || 0;
+ my $b2_2_upper = $max_idx{2}{2} || 0;
+
+ my $b3_1_lower = $min_idx{3}{1} || 0;
+ my $b3_1_upper = $max_idx{3}{1} || 0;
+ my $b3_2_lower = $min_idx{3}{2} || 0;
+ my $b3_2_upper = $max_idx{3}{2} || 0;
+ my $b3_3_lower = $min_idx{3}{3} || 0;
+ my $b3_3_upper = $max_idx{3}{3} || 0;
+
+ my $b4_1_lower = $min_idx{4}{1} || 0;
+ my $b4_1_upper = $max_idx{4}{1} || 0;
+ my $b4_2_lower = $min_idx{4}{2} || 0;
+ my $b4_2_upper = $max_idx{4}{2} || 0;
+ my $b4_3_lower = $min_idx{4}{3} || 0;
+ my $b4_3_upper = $max_idx{4}{3} || 0;
+ my $b4_4_lower = $min_idx{4}{4} || 0;
+ my $b4_4_upper = $max_idx{4}{4} || 0;
###
### Find the maximum value in the whole table, to determine if we can
@@ -607,7 +610,8 @@ sub print_radix_table
for (my $j = 0;
$j < $vals_per_line && $i <= $seg->{max_idx}; $j++)
{
- my $val = $seg->{values}->{$i};
+ # missing values represent zero.
+ my $val = $seg->{values}->{$i} || 0;
printf $out " 0x%0*x", $colwidth, $val;
$off++;