2813 Vladislav Vaintroub 2008-09-08
Add missing dependency to perror to avoid compile error in multiprocessor builds
modified:
extra/CMakeLists.txt
2812 lars-erik.bjork@stripped 2008-09-08
This is a fix for bug#38304 - Data contents becomes NULL if
column name in Falcon table uses accented letters.
In StorageInterface::encodeRecord the value for fields with
international character(s) in their names are coded as
NULL (encodeNULL). This is because there is no entry for these
fields in the fieldMap. The values for these fields are therefore
never written to the database.
When populating the fieldMap ( in StorageInterface::mapFields),
the fieldId of every field is looked up by calling
StorageTableShare::getFieldId, which in turn calls
Table::findField.
Table::findField, is not able to match the field name looked up
in the SymbolManager (SymbolManager::getSymbol), with the field
name in the Table.
This is because SymbolManager::getSymbol tries to uppercase
every Symbol it looks up, but the uppercasing does not handle
international characters. The name it tries to look up, and
eventually returns, is the partial name of the field, up to the
first international character.
Because we "can't find" the correct field, a NULL entry is added
to the fieldMap for this field.
According to Jim Starkey, the fix for this would be to replace
the call to SymbolManager::getSymbol, with a call to
SymbolManager::getString, which does not uppercase the input.
This seems to work, and I have added a test-case that tests this
for different combinations of the SQL modes (also suggested by
Jim)
There are some twenty different SQL modes, which would result in
millions of different combinations, so I have picked the modes
that to the best of my knowledge, are the most interesting ones.
added:
mysql-test/suite/falcon/r/falcon_bug_38304.result
mysql-test/suite/falcon/t/falcon_bug_38304.test
modified:
storage/falcon/Table.cpp
=== modified file 'extra/CMakeLists.txt'
--- a/extra/CMakeLists.txt 2008-04-02 17:52:11 +0000
+++ b/extra/CMakeLists.txt 2008-09-08 12:07:15 +0000
@@ -42,6 +42,7 @@ ADD_EXECUTABLE(my_print_defaults my_prin
TARGET_LINK_LIBRARIES(my_print_defaults strings mysys debug dbug taocrypt ws2_32)
ADD_EXECUTABLE(perror perror.c)
+ADD_DEPENDENCIES(perror GenError)
TARGET_LINK_LIBRARIES(perror strings mysys debug dbug ws2_32)
ADD_EXECUTABLE(resolveip resolveip.c)
| Thread |
|---|
| • bzr push into mysql-6.0-falcon branch (vvaintroub:2812 to 2813) | Vladislav Vaintroub | 8 Sep |