mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 14:03:02 +01:00
Fixed CORE-1802 - Maximum key size using PXW_CSY collation
This commit is contained in:
parent
7bc95f13fc
commit
ff80913a1b
@ -105,17 +105,7 @@ USHORT LC_NARROW_key_length(texttype* obj, USHORT inLen)
|
|||||||
{
|
{
|
||||||
BYTE bytesPerChar = 3;
|
BYTE bytesPerChar = 3;
|
||||||
|
|
||||||
// if collation is not multi-level, the weights used is already know
|
// scan the table to identify what weights are used
|
||||||
if (obj->texttype_impl->texttype_flags & TEXTTYPE_non_multi_level)
|
|
||||||
{
|
|
||||||
if (obj->texttype_impl->texttype_flags & TEXTTYPE_secondary_insensitive)
|
|
||||||
--bytesPerChar;
|
|
||||||
|
|
||||||
if (obj->texttype_impl->texttype_flags & TEXTTYPE_tertiary_insensitive)
|
|
||||||
--bytesPerChar;
|
|
||||||
}
|
|
||||||
else // scan the table to identify what weights are used
|
|
||||||
{
|
|
||||||
bool useSecondary = false;
|
bool useSecondary = false;
|
||||||
bool useTertiary = false;
|
bool useTertiary = false;
|
||||||
|
|
||||||
@ -136,6 +126,14 @@ USHORT LC_NARROW_key_length(texttype* obj, USHORT inLen)
|
|||||||
|
|
||||||
if (!useTertiary)
|
if (!useTertiary)
|
||||||
--bytesPerChar;
|
--bytesPerChar;
|
||||||
|
|
||||||
|
if (obj->texttype_impl->texttype_flags & TEXTTYPE_non_multi_level)
|
||||||
|
{
|
||||||
|
if (useSecondary && (obj->texttype_impl->texttype_flags & TEXTTYPE_secondary_insensitive))
|
||||||
|
--bytesPerChar;
|
||||||
|
|
||||||
|
if (useTertiary && (obj->texttype_impl->texttype_flags & TEXTTYPE_tertiary_insensitive))
|
||||||
|
--bytesPerChar;
|
||||||
}
|
}
|
||||||
|
|
||||||
obj->texttype_impl->texttype_bytes_per_key = bytesPerChar;
|
obj->texttype_impl->texttype_bytes_per_key = bytesPerChar;
|
||||||
|
Loading…
Reference in New Issue
Block a user