diff options
Diffstat (limited to 'src/backend/utils/mb/Unicode/convutils.pm')
-rw-r--r-- | src/backend/utils/mb/Unicode/convutils.pm | 62 |
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++; |