summaryrefslogtreecommitdiff
path: root/strings
Commit message (Collapse)AuthorAgeFilesLines
* Cherry-picking patch for Bug#55980.Alexander Nozdrin2010-08-312-9/+79
| | | | | | | | | | | | | | | | | | | | | Original changeset: ------------------------------------------------------------ revno: 3197 revision-id: alik@sun.com-20100831135426-h5a4s2w6ih1d8q2x parent: magnus.blaudd@sun.com-20100830120632-u3xzy002mdwueli8 committer: Alexander Nozdrin <alik@sun.com> branch nick: mysql-5.5-bugfixing timestamp: Tue 2010-08-31 17:54:26 +0400 message: Bug#55980 Character sets: supplementary character _bin ordering is wrong Problem: - ORDER BY for utf8mb4_bin, utf16_bin and utf32_bin returned results in a wrong order, because old functions (supporting only BMP range) were used to handle these collations. - Additionally, utf16_bin did not sort supplementary characters between U+D700 and U+E000, as WL#1213 specification specified. ------------------------------------------------------------
* Patch for Bug#55854 (MySQL AB should not be AUTHOR, copyright incorrect).Alexander Nozdrin2010-08-121-2/+2
| | | | Fixing copyright text.
* Auto-merge from mysql-trunk-merge.Alexander Nozdrin2010-07-2910-339/+37
|\
| * Merging from mysql-5.1-bugteamAlexander Barkov2010-07-269-337/+36
| |\
| | * Bug#45012 my_like_range_cp932 generates invalid stringAlexander Barkov2010-07-269-335/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The functions my_like_range_xxx() returned badly formed maximum strings for Asian character sets, which made problems for storage engines. Fix: - Removed a number my_like_range_xxx() implementations, which were in fact dumplicate code pieces. - Using generic my_like_range_mb() instead. - Setting max_sort_char member properly for Asian character sets - Adding unittest/strings/strings-t.c, to test that my_like_range_xxx() return well-formed min and max strings. Notes: - No additional tests in mysql/t/ available. Old tests cover the affected code well enough.
| * | Merge of mysql-5.1-bugteam into mysql-trunk-merge.Davi Arnaut2010-07-201-2/+1
| |\ \ | | |/
| | * Bug#45288: pb2 returns a lot of compilation warnings on linuxDavi Arnaut2010-07-201-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix warnings flagged by the new warning option -Wunused-but-set-variable that was added to GCC 4.6 and that is enabled by -Wunused and -Wall. The option causes a warning whenever a local variable is assigned to but is later unused. It also warns about meaningless pointer dereferences. client/mysql.cc: Meaningless pointer dereferences. client/mysql_upgrade.c: Check whether reading from the file succeeded. extra/comp_err.c: Unused. extra/yassl/src/yassl_imp.cpp: Skip instead of reading data that is discarded. include/my_pthread.h: Variable is only used in debug builds. include/mysys_err.h: Add new error messages. mysys/errors.c: Add new error message for permission related functions. mysys/mf_iocache.c: Variable is only checked under THREAD. mysys/my_copy.c: Raise a error if chmod or chown fails. mysys/my_redel.c: Raise a error if chmod or chown fails. regex/engine.c: Use a equivalent variable for the assert. server-tools/instance-manager/instance_options.cc: Unused. sql/field.cc: Unused. sql/item.cc: Unused. sql/log.cc: Do not ignore the return value of freopen: only set buffer if reopening succeeds. Adjust doxygen comment to the right function. Pass message lenght to log function. sql/mysqld.cc: Do not ignore the return value of freopen: only set buffer if reopening succeeds. sql/partition_info.cc: Unused. sql/slave.cc: No need to set pointer to the address of '\0'. sql/spatial.cc: Unused. Left for historical purposes. sql/sql_acl.cc: Unused. sql/sql_base.cc: Pointers are always set to the same variables. sql/sql_parse.cc: End statement if reading fails. Store the buffer after it has actually been updated. sql/sql_repl.cc: No need to set pointer to the address of '\0'. sql/sql_show.cc: Put variable under the same ifdef block. sql/udf_example.c: Set null pointer flag appropriately. storage/csv/ha_tina.cc: Meaningless dereferences. storage/example/ha_example.cc: Return the error since it's available. storage/myisam/mi_locking.c: Remove unused and dead code.
| | * Bug#45288: pb2 returns a lot of compilation warnings on linuxDavi Arnaut2010-07-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Although the C standard mandates that sprintf return the number of bytes written, some very ancient systems (i.e. SunOS 4) returned a pointer to the buffer instead. Since these systems are not supported anymore and are hopefully long dead by now, simply remove the portability wrapper that dealt with this discrepancy. The autoconf check was causing trouble with GCC.
| | * Bug#53445: Build with -Wall and fix warnings that it generatesDavi Arnaut2010-07-021-82/+0
| | | | | | | | | | | | | | | If bzero is not available, resort to memset. Also, remove dead bzero.c
* | | WL#5486: Remove code for unsupported platformsDavi Arnaut2010-07-266-155/+1
| | | | | | | | | | | | Remove ASM for MC68000 and Vax.
* | | WL#5486: Remove code for unsupported platformsDavi Arnaut2010-07-269-382/+0
| | | | | | | | | | | | Remove 32-bit SPARC specific code.
* | | Cleanup after bild team push.Vladislav Vaintroub2010-07-251-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fixed obvious errors (HAVE_BROKEN_PREAD is not true for on any of systems we use, definitely not on HPUX) * Remove other junk flags for OSX and HPUX * Avoid checking type sizes in universal builds on OSX, again (CMake2.8.0 fails is different architectures return different results) * Do not compile template instantiation stuff unless EXPLICIT_TEMPLATE_INSTANTIATION is used. * Some cleanup (make gen_lex_hash simpler, avoid dependencies) * Exclude some unused files from compilation (strtol.c etc)
* | | WL#5498: Remove dead and unused source codeDavi Arnaut2010-07-239-220/+8
| | | | | | | | | | | | | | | | | | | | | | | | Remove unused string functions. include/m_string.h: Remove prototypes for unused string functions and for functions that do not exist anymore.
* | | WL#5498: Remove dead and unused source codeDavi Arnaut2010-07-231-2/+2
| | | | | | | | | | | | | | | | | | | | | Remove unused macros or macro which are always defined. include/my_global.h: Remove unused macros and move macros which aren't used globally.
* | | WL#5498: Remove dead and unused source codeDavi Arnaut2010-07-233-129/+4
| | | | | | | | | | | | Remove the obsolete and buggy bmove512, use memcpy instead.
* | | WL#5498: Remove dead and unused source codeDavi Arnaut2010-07-232-128/+0
|/ / | | | | | | Remove code that has been disabled for a long time.
* | Merge of mysql-trunk-bugfixing into mysql-trunk-merge.Davi Arnaut2010-07-1517-90/+56
|\ \
| * | WL#5486: Remove code for unsupported platformsDavi Arnaut2010-07-1515-66/+56
| | | | | | | | | | | | Remove MS-DOS specific code.
| * | WL#5486: Remove code for unsupported platformsDavi Arnaut2010-07-152-24/+0
| | | | | | | | | | | | Remove Netware specific code.
* | | Unset the execute bit where it's not needed.Davi Arnaut2010-07-031-0/+0
| | |
* | | Merge of mysql-5.1-bugteam into mysql-trunk-merge.Davi Arnaut2010-07-025-80/+14
|\ \ \ | |/ / |/| / | |/
| * Bug#53445: Build with -Wall and fix warnings that it generatesDavi Arnaut2010-07-027-84/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apart strict-aliasing warnings, fix the remaining warnings generated by GCC 4.4.4 -Wall and -Wextra flags. One major source of warnings was the in-house function my_bcmp which (unconventionally) took pointers to unsigned characters as the byte sequences to be compared. Since my_bcmp and bcmp are deprecated functions whose only difference with memcmp is the return value, every use of the function is replaced with memcmp as the special return value wasn't actually being used by any caller. There were also various other warnings, mostly due to type mismatches, missing return values, missing prototypes, dead code (unreachable) and ignored return values. BUILD/SETUP.sh: Remove flags that are implied by -Wall and -Wextra. Do not warn about unused parameters in C++. BUILD/check-cpu: Print only the compiler version instead of verbose banner. Although the option is gcc specific, the check was only being used for GCC specific checks anyway. client/mysql.cc: bcmp is no longer defined. client/mysqltest.cc: Pass a string to function expecting a format string. Replace use of bcmp with memcmp. cmd-line-utils/readline/Makefile.am: Always define _GNU_SOURCE when compiling GNU readline. Required to make certain prototypes visible. cmd-line-utils/readline/input.c: Condition for the code to be meaningful. configure.in: Remove check for bcmp. extra/comp_err.c: Use appropriate type. extra/replace.c: Replace use of bcmp with memcmp. extra/yassl/src/crypto_wrapper.cpp: Do not ignore the return value of fgets. Retrieve the file position if fgets succeed -- if it fails, the function will bail out and return a error. extra/yassl/taocrypt/include/blowfish.hpp: Use a single array instead of accessing positions of the sbox_ through a subscript to pbox_. extra/yassl/taocrypt/include/runtime.hpp: One definition of such functions is enough. extra/yassl/taocrypt/src/aes.cpp: Avoid potentially ambiguous conditions. extra/yassl/taocrypt/src/algebra.cpp: Rename arguments to avoid shadowing related warnings. extra/yassl/taocrypt/src/blowfish.cpp: Avoid potentially ambiguous conditions. extra/yassl/taocrypt/src/integer.cpp: Do not define type within a anonymous union. Use a variable to return a value instead of leaving the result in a register -- compiler does not know the logic inside the asm. extra/yassl/taocrypt/src/misc.cpp: Define handler for pure virtual functions. Remove unused code. extra/yassl/taocrypt/src/twofish.cpp: Avoid potentially ambiguous conditions. extra/yassl/testsuite/test.hpp: Function must have C language linkage. include/m_string.h: Remove check which relied on bcmp being defined -- they weren't being used as bcmp is only visible when _BSD_SOURCE is defined. include/my_bitmap.h: Remove bogus helpers which were used only in a few files and were causing warnings about dead code. include/my_global.h: Due to G++ bug, always silence false-positive uninitialized variables warnings when compiling C++ code with G++. Remove bogus helper. libmysql/Makefile.shared: Remove built-in implementation of bcmp. mysql-test/lib/My/SafeProcess/safe_process.cc: Cast pid to largest possible type for a process identifier. mysys/mf_loadpath.c: Leave space of the ending nul. mysys/mf_pack.c: Replace bcmp with memcmp. mysys/my_bitmap.c: Dead code removal. mysys/my_gethwaddr.c: Remove unused variable. mysys/my_getopt.c: Silence bogus uninitialized variable warning. Do not cast away the constant qualifier. mysys/safemalloc.c: Cast to expected type. mysys/thr_lock.c: Silence bogus uninitialized variable warning. sql/field.cc: Replace bogus helper with a more appropriate logic which is used throughout the code. sql/item.cc: Remove bogus logical condition which always evaluates to TRUE. sql/item_create.cc: Simplify code to avoid signedness related warnings. sql/log_event.cc: Replace use of bcmp with memcmp. No need to use helpers for simple bit operations. sql/log_event_old.cc: Replace bmove_align with memcpy. sql/mysqld.cc: Move use declaration of variable to the ifdef block where it is used. Remove now-unnecessary casts and arguments. sql/set_var.cc: Replace bogus helpers with simple and classic bit operations. sql/slave.cc: Cast to expected type and silence bogus warning. sql/sql_class.h: Don't use enum values as bit flags, the supposed type safety is bogus as the combined bit flags are not a value in the enumeration. sql/udf_example.c: Only declare variable when necessary. sql/unireg.h: Replace use of bmove_align with memcpy. storage/innobase/os/os0file.c: Silence bogus warning. storage/myisam/mi_open.c: Remove bogus cast, DBUG_DUMP expects a pointer to unsigned char. storage/myisam/mi_page.c: Remove bogus cast, DBUG_DUMP expects a pointer to unsigned char. strings/bcmp.c: Remove built-in bcmp. strings/ctype-ucs2.c: Silence bogus warning. tests/mysql_client_test.c: Use a appropriate type as expected by simple_command().
* | Merge of mysql-5.1-bugteam into mysql-trunk-merge.Davi Arnaut2010-06-101-3/+3
|\ \ | |/
| * Bug#42733: Type-punning warnings when compiling MySQL --Davi Arnaut2010-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | strict aliasing violations. Essentially, the problem is that large parts of the server were developed in simpler times (last decades, pre C99 standard) when strict aliasing and compilers supporting such optimizations were rare to non-existent. Thus, when compiling the server with a modern compiler that uses strict aliasing rules to perform optimizations, there are several places in the code that might trigger undefined behavior. As evinced by some recent bugs, GCC does a somewhat good of job misoptimizing such code, but on the other hand also gives warnings about suspicious code. One problem is that the warnings aren't always accurate, yet we can't afford to just shut them off as we might miss real cases. False-positive cases are aggravated mostly by casts that are likely to trigger undefined behavior. The solution is to start a cleanup process focused on fixing and reducing the amount of strict-aliasing related warnings produced by GCC and others compilers. A good deal of noise reduction can be achieved by just removing useless casts that are product of historical cruft and are likely to trigger undefined behavior if dereferenced. client/mysql.cc: Remove now-unnecessary casts. Break up large strings. client/mysql_upgrade.c: Remove now-unnecessary casts. client/mysqladmin.cc: Remove now-unnecessary casts. Break up large strings. client/mysqlbinlog.cc: Remove now-unnecessary casts. client/mysqlcheck.c: Remove now-unnecessary casts. client/mysqldump.c: Remove now-unnecessary casts. client/mysqlimport.c: Remove now-unnecessary casts. client/mysqlshow.c: Remove now-unnecessary casts. client/mysqlslap.c: Remove now-unnecessary casts. client/mysqltest.cc: Remove now-unnecessary casts. extra/comp_err.c: Remove now-unnecessary casts. extra/my_print_defaults.c: Remove now-unnecessary casts. Break up large strings. extra/mysql_waitpid.c: Remove now-unnecessary casts. extra/perror.c: Remove now-unnecessary casts. extra/resolve_stack_dump.c: Remove now-unnecessary casts. extra/resolveip.c: Remove now-unnecessary casts. include/my_getopt.h: Use a void pointer type as the opaque type to avoid problems with type incompatibility -- GCC issues warnings when the type name is not type compatible with a operand. As a side bonus, a explicit cast won't be necessary anymore. include/sslopt-longopts.h: Remove now-unnecessary casts. Break up large strings. mysys/my_getopt.c: Update opaque type and introduce a type definition for the argument to my_getopt_register_get_addr. server-tools/instance-manager/options.cc: Remove now-unnecessary casts. sql/mysqld.cc: Remove now-unnecessary casts. Break up large strings. Update mysql_getopt_value prototype (the old prototype was different from the definition anyway). sql/sql_plugin.cc: The type of a pointer to a function must be compatible with the pointed-to function type, otherwise the behavior is undefined. sql/table.cc: The variable buf pointer to pointer to pointer to constant char could improperly alias a incompatible type in call to fix_type_ pointers. Since this was actually dead code, it is simply removed. sql/unireg.cc: Remove call to get_form_pos. The code creates a new FRM file which is always truncated and writes the form position as 0. Hence, no need to retrieve it, we now for sure it is 0. storage/archive/archive_reader.c: Remove now-unnecessary casts. storage/myisam/ft_nlq_search.c: Read weight directly from the buffer. storage/myisam/fulltext.h: Add explanation about the type duality of a key buffer. Add accessor macro to retrieve a FT float value. storage/myisam/mi_test1.c: Remove now-unnecessary casts. storage/myisam/myisam_ftdump.c: Read weight directly from the buffer. storage/myisam/myisamchk.c: Remove now-unnecessary casts. storage/myisam/myisamlog.c: A pointer to char was used to alias a pointer to pointer to unsigned char, thus violating strict aliasing rules. storage/myisam/myisampack.c: Remove now-unnecessary casts. strings/decimal.c: Remove aliasing violation, printing the value is enough for debugging purposes. tests/mysql_client_test.c: Remove now-unnecessary casts.
* | Bug #45882: dtoa.c might not work with gcc 4.4.0Alexey Kopytov2010-06-011-181/+192
| | | | | | | | | | | | | | | | | | | | | | - Ported relevant changes from the upstream version to not break strict-aliasing rules and to fix compiler warnings and and infinite loops caused by that issue. - Fixed compilation with Honor_FLT_ROUNDS defined. - Fixed an unused variable warning.
* | Backport: remove ancient and unused strings files.Davi Arnaut2010-05-2816-2061/+0
| |
* | Bug #53445 Build with -Wall and fix warnings that it generatesTor Didriksen2010-05-261-20/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add -Wall to gcc/g++ Fix most warnings reported in dbg and opt mode. cmd-line-utils/libedit/filecomplete.c: Remove unused auto variables. configure.cmake: Add -Wall to gcc. extra/comp_err.c: Cast to correct type. extra/perror.c: Fix segfault (but warnings about deprecated features remain) extra/yassl/taocrypt/include/runtime.hpp: Comparing two literals was reported as undefined behaviour. include/my_global.h: Add a template for aligning character buffers. mysys/lf_alloc-pin.c: Initialize pointer. sql/mysqld.cc: Use UNINIT_VAR rather than LINT_INIT. sql/partition_info.cc: Use UNINIT_VAR rather than LINT_INIT. sql/rpl_handler.cc: Use char[] rather than unsigned long[] array for placement buffer. sql/spatial.cc: Use char[] rather than unsigned void*[] array for placement buffer. sql/spatial.h: Use char[] rather than unsigned void*[] array for placement buffer. sql/sql_partition.cc: Initialize auto variable. sql/sql_table.cc: Initialize auto variables. Add parens around assignment within if() sql/sys_vars.cc: Use UNINIT_VAR. storage/innobase/os/os0file.c: Init first slot in auto variable. storage/myisam/mi_create.c: Use UNINIT_VAR rather than LINT_INIT. storage/myisam/mi_open.c: Remove (wrong) casting. storage/myisam/mi_page.c: Remove (wrong) casting. storage/myisam/mi_search.c: Cast to uchar* rather than char*. strings/ctype-ucs2.c: Use UNINIT_VAR rather than LINT_INIT. Add (uchar*) casting.
* | Patch for Bug#53937 (Junk make-ccc files included in MySQL Server bzr repo).Alexander Nozdrin2010-05-261-3/+0
| | | | | | | | Remove make-ccc files.
* | Another incarnation of the patch for Bug#30708Alexander Nozdrin2010-05-191-4/+0
| | | | | | | | | | | | | | | | | | | | (make relies GNU extentions). The patch was partially backport from 6.0. Original comment: bug#30708: make relies GNU extensions. Now that we no longer use BitKeeper we can safely remove the SCCS handling with no loss of functionality.
* | Reconciling different file ids for dtoa.c in trunk and 6.0-codebase.Alexey Kopytov2010-04-111-0/+2782
|\ \
| * | WL #2934 "Make/find library for doing float/double to string conversionsunknown2007-12-074-267/+2771
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and vice versa" Initial import of the dtoa.c code and custom wrappers around it to allow its usage from the server code. Conversion of FLOAT/DOUBLE values to DECIMAL ones or strings and vice versa has been significantly reworked. As the new algoritms are more precise than the older ones, results of such conversions may not always match those obtained from older server versions. This in turn may break compatibility for some applications. This patch also fixes the following bugs: - bug #12860 "Difference in zero padding of exponent between Unix and Windows" - bug #21497 "DOUBLE truncated to unusable value" - bug #26788 "mysqld (debug) aborts when inserting specific numbers into char fields" - bug #24541 "Data truncated..." on decimal type columns without any good reason" BitKeeper/deleted/.del-strtod.c: Rename: strings/strtod.c -> BitKeeper/deleted/.del-strtod.c client/Makefile.am: Added dtoa.c client/sql_string.cc: Replaced sprintf() with a new wrapper around dtoa() include/m_string.h: Added declarations for the new double to/from string conversion functions. libmysql/Makefile.shared: Removed strtod.c, added dtoa.c libmysql/libmysql.c: Replaced sprintf() with my_gcvt(). We must use the same conversion method in both server and client lib. mysql-test/r/archive_gis.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/cast.result: Fixed tests to take the formatting changes into account. mysql-test/r/func_group.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/func_math.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/func_str.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/gis.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/innodb_gis.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/insert.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/mysqldump.result: No need for result substitution since we do not rely on system behavior anymore. mysql-test/r/ndb_gis.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/parser.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/ps_2myisam.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/ps_3innodb.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/ps_4heap.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/ps_5merge.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/ps_7ndb.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/select.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/r/sp.result: Fixed tests to take additional precision from dtoa() into account. Decimal 2.7182818284590452354 is now converted to the double value of 2.718281828459045, not 2.718281828459. Thus we get additional precision from the subsequent calculations. mysql-test/r/strict.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/type_decimal.result: Added a test case for bug #24541. mysql-test/r/type_float.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. Added test cases for bugs #12860, #21497 and #26788. mysql-test/r/type_newdecimal.result: Fixed tests to take additional precision from dtoa() and formatting changes into account. mysql-test/r/variables.result: Fixed tests to take the formatting changes into account. mysql-test/r/view.result: Fixed tests to take additional precision from dtoa() into account. mysql-test/t/cast.test: No need to replace the results for Windows anymore. mysql-test/t/insert.test: Added test cases from bug #26788. mysql-test/t/mysqldump.test: Fixed tests to take additional precision from dtoa() into account. No need for results substitution because we do not rely on system behavior anymore. mysql-test/t/type_decimal.test: Added a test case for bug #24541. mysql-test/t/type_float.test: Added test cases for bugs #12860, #21497 and #26788. mysql-test/t/type_newdecimal.test: Removed replace_result which is pointless with our own floating point conversion library. Added a reference for WL#3977. sql/field.cc: Replaced the field.cc's own constant for the maximum double->string conversion buffer with the one defined in m_string.h Replaced double->string conversion code with the new wrappers around dtoa(). Fixed a bug in Field_real::truncate() which led to incorrect results when +-Infinity was passed as an input number. Fixed Field_blob::store(double) to use NOT_FIXED_DEC instead of 2 as precision, so that my_gcvt() is now used for conversion. sql/field.h: Moved NOT_FIXED_DEC to m_string.h because we now use this constant in floating point <-> string conversion routines. sql/item.cc: If a result of a numeric functions is stored in a string field, follow the same rules as in Field_str::store(double), i.e. take the field width into account. sql/log_event.cc: Replaced sprintf() with my_gcvt(). sql/mysql_priv.h: Moved log_10[] from strtod.c to mysqld.c, because we don't need it in libmystrings anymore. sql/mysqld.cc: Moved log_10[] from strtod.c to mysqld.c, because we don't need it in libmystrings anymore. sql/sql_show.cc: Replaced sprintf() with my_fcvt(). sql/sql_string.cc: Replace the double->string conversion code with the new wrappers around dtoa(). sql/unireg.h: Moved FLOATING_POINT_BUFFER from unireg.h to m_string.h so it can be used in libmystrings. strings/Makefile.am: Removed strtod.c, added dtoa.c strings/decimal.c: Replaced sprintf() with my_gcvt(). Changed double2decimal() to print the digits to a string buffer, then use my_strtod(). strings/dtoa.c: Initial import of the dtoa code and custom wrappers around it to allow its usage from the server code.
* | | Reconciling different file ids for dtoa.c in trunk and 6.0-codebase.Alexey Kopytov2010-04-111-2782/+0
| | |
* | | Bug #52165: Assertion failed: file .\dtoa.c, line 465Alexey Kopytov2010-04-071-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The failing assertion was written with the assumption that a NULL string can never be passed to my_strtod(). However, an empty string may be passed under some circumstances by passing str == NULL and *end == NULL. Fixed the assertion to take the above case into account. mysql-test/r/func_misc.result: Added a test case for bug #52165. mysql-test/t/func_misc.test: Added a test case for bug #52165. strings/dtoa.c: Fixed the assertion in my_strtod() to take the case of 'str == NULL && *end == NULL' into account.
* | | An additional fix for WL#1213 4-byte UTF8Alexander Barkov2010-03-111-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | - Fixing crash on attempt to create a fulltext index with an utf8mb4 column - fixing wrong border width for supplementary characters in mysql client: mysql --default-character-set=utf8mb4 -e "select concat(_utf32 0x20000,'a')"
* | | Bug#51675 Server crashes on inserting 4 byte char. after ALTER TABLE to ↵Alexander Barkov2010-03-041-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | 'utf8mb4' Bug#51676 Server crashes on SELECT, ORDER BY on 'utf8mb4' column An additional fix. We should use 0xFFFD as a weight for supplementary characters, not the "weight for character U+FFFD".
* | | A joint patch for:Alexander Barkov2010-03-043-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug#51675 Server crashes on inserting 4 byte char. after ALTER TABLE to 'utf8mb4' Bug#51676 Server crashes on SELECT, ORDER BY on 'utf8mb4' column include/m_ctype.h: Defining MY_CS_REPLACEMENT_CHARACTER mysql-test/r/ctype_utf8mb4.result: Adding tests mysql-test/t/ctype_utf8mb4.test: Adding tests strings/ctype-uca.c: Don't use UCA data for characters higher than 0xFFFF. strings/ctype-ucs2.c: Using newly defined MY_CS_REPLACEMENT_CHARACTER strings/ctype-utf8.c: Using newly defined MY_CS_REPLACEMENT_CHARACTER Removing unesed variable "plane".
* | | Merging WL#1213 into mysql-next-mr-bar2Alexander Barkov2010-02-244-761/+5417
|\ \ \
| * | | Backporting WL#1213Alexander Barkov2010-02-244-761/+5417
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | config/ac-macros/character_sets.m4: - Adding configure definitions for utf8mb4, utf16, utf32 include/config-win.h: - Enabling utf8mb4, utf16, utf32 in Windows build include/m_ctype.h: - Adding new flags - Adding new shared functions prototypes mysql-test/include/ctype_datetime.inc: - Adding test to check that datetime functions work with "real" multibyte character sets. mysql-test/include/ctype_like.inc: - Adding LIKE tests mysql-test/include/have_utf16.inc: New file mysql-test/include/have_utf32.inc: New file mysql-test/include/have_utf8mb4.inc: New file mysql-test/r/ctype_ldml.result: - Adding tests for utf8mb4, utf16, utf32 mysql-test/r/ctype_many.result: - Adding tests to check superset/subset relations between all Unicode character sets. mysql-test/r/ctype_utf16.result: New file mysql-test/r/ctype_utf16_uca.result: New file mysql-test/r/ctype_utf32.result: New file mysql-test/r/ctype_utf32_uca.result: New file mysql-test/r/ctype_utf8.result: - Adding tests for utf8mn3 alias mysql-test/r/ctype_utf8mb4.result: - Adding tests for utf8mb4 mysql-test/r/have_utf16.require: New file mysql-test/r/have_utf32.require: New file mysql-test/r/have_utf8mb4.require: New file mysql-test/std_data/Index.xml: - Adding tests for loadable utf8m4, utf16, utf32 collations mysql-test/suite/sys_vars/r/character_set_client_basic.result: - Adding tests for utf16, utf32. - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_connection_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_database_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_filesystem_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/r/character_set_results_basic.result: - Fixing new number of character sets mysql-test/suite/sys_vars/t/character_set_client_basic.test: - Adding tests for new character sets mysql-test/suite/sys_vars/t/character_set_connection_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/suite/sys_vars/t/character_set_database_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/suite/sys_vars/t/character_set_filesystem_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/suite/sys_vars/t/character_set_results_basic.test: - Adding dependency on utf8mb4, utf16, utf32 mysql-test/t/ctype_ldml.test: - Adding tests for dynamic utf8mb4, utf16, utf32 collations mysql-test/t/ctype_many.test: - Adding tests to check superset/subset relations between all Unicode character sets mysql-test/t/ctype_utf16.test: New file mysql-test/t/ctype_utf16_uca.test: New file mysql-test/t/ctype_utf32.test: New file mysql-test/t/ctype_utf32_uca.test: New file mysql-test/t/ctype_utf8.test: - Adding tests for utf8mb4 alias mysql-test/t/ctype_utf8mb4.test: New file mysys/charset-def.c: - Adding initialization of utf8mb4, utf16, utf32 built-int collations mysys/charset.c: - Adding initialization of utf8mb4, utf16, utf32 dynamic collations sql/field.cc: - Fixing "truncated" error with datetime functions: Force conversion in case of non-ascii character sets. sql/item.cc: - Adding superset/subset relation check for utf8mb4/utf8 sql/item_strfunc.cc: - Fixing a problem with CHAR(x USING utf32) sql/sql_string.cc: - Fixing problems with zero padding for UTF32 sql/sql_table.cc: - Fixing buffer size, to make utf32 comma fit. strings/ctype-mb.c: - Making handlers for multi-byte binary collations public strings/ctype-uca.c: - Adding definitions for utf8mb4, utf16, utf32 UCA collations strings/ctype-ucs2.c: - Adding functions which are shared between ucs2, utf16, utf32 - Ading utf16 implementation - Adding utf32 implementation strings/ctype-utf8.c: - Adding functions shared between utf8 and utf8mb4 - Adding implementation of utf8mb4
* | | | mergeVladislav Vaintroub2010-02-184-25579/+197012
|\ \ \ \ | |/ / /
| * | | WL#3090 Japanese Character Set adjustmentsAlexander Barkov2010-02-154-25579/+197012
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | added: @ mysql-test/include/ctype_utf8_table.inc Adding a share file to populate all utf8 values [U+0000..U+FFFF] modified: @ include/m_ctype.h Introducing MB2 and MY_PUT_MB2 macros @ mysql-test/r/ctype_cp932_binlog_stm.result @ mysql-test/r/ctype_eucjpms.result @ mysql-test/r/ctype_sjis.result @ mysql-test/r/ctype_ujis.result @ mysql-test/t/ctype_cp932_binlog_stm.test @ mysql-test/t/ctype_eucjpms.test @ mysql-test/t/ctype_sjis.test @ mysql-test/t/ctype_ujis.test Adding test @ strings/ctype-cp932.c @ strings/ctype-eucjpms.c @ strings/ctype-sjis.c @ strings/ctype-ujis.c Adding new functions using Big-Table approach.
* | | | mergeVladislav Vaintroub2010-02-062-7/+3
|\ \ \ \ | |/ / /
| * | | Auto-merge from mysql-next-mr.Alexander Nozdrin2010-01-251-1/+2
| |\ \ \
| * \ \ \ Auto-merge from mysql-next-mr.Alexander Nozdrin2010-01-219-29/+8684
| |\ \ \ \
| * \ \ \ \ Manual merge from mysql-trunk-merge.Alexander Nozdrin2010-01-192-7/+3
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: - configure.in - include/m_string.h - mysql-test/extra/rpl_tests/rpl_row_func003.test - mysql-test/r/mysqlbinlog.result - mysql-test/r/union.result - mysql-test/suite/binlog/r/binlog_killed_simulate.result - mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result - mysql-test/suite/binlog/r/binlog_unsafe.result - mysql-test/suite/binlog/t/binlog_unsafe.test - mysql-test/suite/rpl/r/rpl_loaddata_fatal.result - mysql-test/suite/rpl/r/rpl_loaddata_map.result - mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result - mysql-test/suite/rpl/r/rpl_stm_log.result - mysql-test/suite/rpl/t/rpl_optimize.test - mysql-test/t/mysqlbinlog.test - mysql-test/t/union.test - sql/rpl_utility.h - sql/sql_union.cc - strings/Makefile.am
| | * \ \ \ \ Manual merge from mysql-5.1-bugteam into mysql-trunk-merge.Alexey Kopytov2010-01-151-2/+2
| | |\ \ \ \ \ | | | | |_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Text conflict in .bzr-mysql/default.conf Text conflict in mysql-test/suite/rpl/r/rpl_loaddata_fatal.result Text conflict in mysql-test/suite/rpl/r/rpl_stm_log.result Text conflict in mysql-test/t/mysqlbinlog.test Text conflict in sql/sql_acl.cc Text conflict in sql/sql_servers.cc Text conflict in sql/sql_update.cc Text conflict in support-files/mysql.spec.sh
| | | * | | | manual merge 5.0-bugteam --> 5.1-bugteam (bug 49955)Gleb Shchepa2010-01-111-2/+2
| | | |\ \ \ \
| | | | * | | | Bug #49955: ld error message: undefined reference to `strmov_overlapp'Gleb Shchepa2010-01-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 32bit builds with the --enable-assembler flag (enabled by default) fail with an error message: undefined reference to `strmov_overlapp'. Since the fix for bug 48866 we use a home-grown strmov function instead of the ctpcpy function, but the source file for this function was missed in the Makefile.am. The strings/Makefile.am file has been modified to include strmov.c file into ASSEMBLER_x86 and ASSEMBLER_sparc32 sections. strings/Makefile.am: Bug #49955: ld error message: undefined reference to `strmov_overlapp' The strings/Makefile.am file has been modified to include strmov.c file into ASSEMBLER_x86 and ASSEMBLER_sparc32 sections.
| | * | | | | | Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.Alexey Kopytov2009-12-251-5/+1
| | |\ \ \ \ \ \ | | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mysql-test/collections/default.experimental
| | | * | | | | mergeGeorgi Kodinov2009-12-241-5/+1
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | Bug #48866: mysql.test fails under Fedora 12Georgi Kodinov2009-12-161-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | strmov() is not guaranteed to work correctly on overlapping source and destination buffers. On some OSes it may work, but Fedora 12 has a stpcpy() that's not working correctly on overlapping buffers. Fixed to use the overlap-safe version of strmov instead. Re-vitalized the overlap-safe version of strmov.