head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.8 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.6 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.4 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.2 pkgsrc-2011Q2-base:1.2 pkgsrc-2010Q4:1.1.0.6 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.4 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.2; locks; strict; comment @# @; 1.2 date 2011.03.08.14.06.44; author taca; state dead; branches; next 1.1; 1.1 date 2010.08.13.14.25.35; author taca; state Exp; branches 1.1.2.1; next ; 1.1.2.1 date 2010.08.13.14.25.35; author tron; state dead; branches; next 1.1.2.2; 1.1.2.2 date 2010.08.19.16.42.18; author tron; state Exp; branches; next ; desc @@ 1.2 log @Update MySQL package to 5.1.56. Functionality added or changed: * mysqldump --xml now displays comments from column definitions. (Bug #13618) Bugs fixed: * InnoDB Storage Engine: InnoDB returned values for ¡Èrows examined¡É in the query plan that were higher than expected. NULL values were treated in an inconsistent way. The inaccurate statistics could trigger ¡Èfalse positives¡É in combination with the MAX_JOIN_SIZE setting, because the queries did not really examine as many rows as reported. (Bug #30423) * Partitioning: Trying to use the same column more than once in the partitioning key when partitioning a table by KEY caused mysqld to crash. Such duplication of key columns is now expressly disallowed, and fails with an appropriate error. (Bug #53354, Bug #57924) * Replication: When using the statement-based logging format, INSERT ON DUPLICATE KEY UPDATE and INSERT IGNORE statements affecting transactional tables that did not fail were not written to the binary log if they did not insert any rows. (With statement-based logging, all successful statements should be logged, whether they do or do not cause any rows to be changed.) (Bug #59338) * Replication: Formerly, STOP SLAVE stopped the slave I/O thread first and then stopped the slave SQL thread; thus, it was possible for the I/O thread to stop after replicating only part of a transaction which the SQL thread was executing, in wich case¡½if the transaction could not be rolled back safely¡½the SQL thread could hang. Now, STOP SLAVE stops the slave SQL thread first and then stops the I/O thread; this guarantees that the I/O thread can fetch any remaining events in the transaction that the SQL thread is executing, so that the SQL thread can finish the transaction if it cannot be rolled back safely. (Bug #58546) * A query of the following form returned an incorrect result, where the values for col_name in the result set were entirely replaced with NULL values: SELECT DISTINCT col_name ... ORDER BY col_name DESC; (Bug #59308, Bug #11766241) * DELETE or UPDATE statements could fail if they used DATE or DATETIME values with a year, month, or day part of zero. (Bug #59173) * The ESCAPE clause for the LIKE operator allows only expressions that evaluate to a constant at execution time, but aggregrate functions were not being rejected. (Bug #59149) * Memory leaks detected by Valgrind, some of which could cause incorrect query results, were corrected. (Bug #59110, Bug #11766075) mysqlslap failed to check for a NULL return from mysql_store_result() and crashed trying to process the result set. (Bug #59109) * In debug builds, SUBSTRING_INDEX(FORMAT(...), FORMAT(...)) could cause a server crash. (Bug #58371) * When mysqldadmin was run with the --sleep and --count options, it went into an infinite loop executing the specified command. (Bug #58221) * Some string manipulating SQL functions use a shared string object intended to contain an immutable empty string. This object was used by the SQL function SUBSTRING_INDEX() to return an empty string when one argument was of the wrong datatype. If the string object was then modified by the SQL function INSERT(), undefined behavior ensued. (Bug #58165, Bug #11765225) * Parsing nested regular expressions could lead to recursion resulting in a stack overflow crash. (Bug #58026, Bug #11765099) * The mysql client went into an infinite loop if the standard input was a directory. (Bug #57450) * The expression const1 BETWEEN const2 AND field was optimized incorrectly and produced incorrect results. (Bug #57030, Bug #11764215) * Some RPM installation scripts used a hardcoded value for the data directory, which could result in a failed installation for users who have a nonstandard data directory location. The same was true for other configuration values such as the PID file name. (Bug #56581, Bug #11763817) * On FreeBSD and OpenBSD, the server incorrectly checked the range of the system date, causing legal values to be rejected. (Bug #55755, Bug #11763089) * When using ExtractValue() or UpdateXML(), if the XML to be read contained an incomplete XML comment, MySQL read beyond the end of the XML string when processing, leading to a crash of the server. (Bug #44332) @ text @$NetBSD: patch-bb,v 1.1 2010/08/13 14:25:35 taca Exp $ * if long is int64_t and time_t is int32_t, "(time_t) MY_TIME_T_MAX" results -1 and server_start_time is always parsed as exceeding limit. So, use TIMESTAMP_MAX_VALUE which is INT_MAX32. * if time_t is int32_t, comparsion with TIMESTAMP_MAX_VALUE is always true here. So, limit the comparsion to other cases. --- sql/sql_class.h.orig 2010-07-09 12:34:57.000000000 +0000 +++ sql/sql_class.h @@@@ -2031,8 +2031,12 @@@@ public: } /*TODO: this will be obsolete when we have support for 64 bit my_time_t */ inline bool is_valid_time() - { - return (start_time < (time_t) MY_TIME_T_MAX); + { +#if defined(TIME_T_UNSIGNE) || (SIZEOF_TIME_T > 4) + return (start_time < TIMESTAMP_MAX_VALUE); +#else + return 1; +#endif } void set_time_after_lock() { utime_after_lock= my_micro_time(); } ulonglong current_utime() { return my_micro_time(); } @ 1.1 log @Fix some my_time_t (long) v.s. time_t problem introduced MySQL 5.1.49. This problem results mysqld to exit on start up. 5.1/i386 5.1/amd64 5.99.38/i386 5.99.38/amd64 my_time_t int32_t int64_t int32_t int64_t time_t int32_t int32_t int64_t int64_t I confirmed to mysqld running on these four case except 5.99.38/i386. Bump PKG_REVISION. @ text @d1 1 a1 1 $NetBSD$ @ 1.1.2.1 log @file patch-bb was added on branch pkgsrc-2010Q2 on 2010-08-19 16:42:18 +0000 @ text @d1 25 @ 1.1.2.2 log @Pullup ticket #3208 - requested by taca databases/mysql51-client: security update databases/mysql51-server: security update Revisions pulled up: - databases/mysql51-client/Makefile.common 1.10 - databases/mysql51-client/distinfo 1.6 - databases/mysql51-client/patches/patch-ap 1.2 - databases/mysql51-server/PLIST 1.7 - databases/mysql51-server/Makefile 1.6 - databases/mysql51-server/distinfo 1.8-1.9 - databases/mysql51-server/patches/patch-ae 1.2 - databases/mysql51-server/patches/patch-aj 1.2 - databases/mysql51-server/patches/patch-ak 1.2 - databases/mysql51-server/patches/patch-ay 1.3 - databases/mysql51-server/patches/patch-az 1.1 - databases/mysql51-server/patches/patch-ba 1.1 - databases/mysql51-server/patches/patch-bb 1.1 --- Module Name: pkgsrc Committed By: taca Date: Wed Aug 11 23:18:04 UTC 2010 Modified Files: pkgsrc/databases/mysql51-client: Makefile.common distinfo pkgsrc/databases/mysql51-client/patches: patch-ap pkgsrc/databases/mysql51-server: PLIST distinfo pkgsrc/databases/mysql51-server/patches: patch-aj patch-ak Removed Files: pkgsrc/databases/mysql51-server/patches: patch-ay Log Message: Update mysql51-client and mysql51-server to 5.1.49. Please refer http://dev.mysql.com/doc/refman/5.1/en/news-5-1-49.html for full changes. * InnoDB Plugin has been upgraded to version 1.0.10. This version is considered of General Availability (GA) quality. In this release, the InnoDB Plugin is included in source and binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), and generic Linux RPM packages. It also does not work for FreeBSD 6 and HP-UX or for Linux on generic ia64. Bugs fixed: * Security Fix: After changing the values of the innodb_file_format or innodb_file_per_table configuration parameters, DDL statements could cause a server crash. (Bug#55039) * Security Fix: Joins involving a table with with a unique SET column could cause a server crash. (Bug#54575) * Security Fix: Incorrect handling of NULL arguments could lead to a crash for IN() or CASE operations when NULL arguments were either passed explicitly as arguments (for IN()) or implicitly generated by the WITH ROLLUP modifier (for IN() and CASE). (Bug#54477) * Security Fix: A malformed argument to the BINLOG statement could result in Valgrind warnings or a server crash. (Bug#54393) * Security Fix: Use of TEMPORARY InnoDB tables with nullable columns could cause a server crash. (Bug#54044) * Security Fix: The server could crash if there were alternate reads from two indexes on a table using the HANDLER interface. (Bug#54007) * Security Fix: Using EXPLAIN with queries of the form SELECT ... UNION ... ORDER BY (SELECT ... WHERE ...) could cause a server crash. (Bug#52711) * Security Fix: LOAD DATA INFILE did not check for SQL errors and sent an OK packet even when errors were already reported. Also, an assert related to client-server protocol checking in debug servers sometimes was raised when it should not have been. (Bug#52512) --- Module Name: pkgsrc Committed By: taca Date: Fri Aug 13 14:25:35 UTC 2010 Modified Files: pkgsrc/databases/mysql51-server: Makefile distinfo pkgsrc/databases/mysql51-server/patches: patch-ae Added Files: pkgsrc/databases/mysql51-server/patches: patch-ay patch-az patch-ba patch-bb Log Message: Fix some my_time_t (long) v.s. time_t problem introduced MySQL 5.1.49. This problem results mysqld to exit on start up. 5.1/i386 5.1/amd64 5.99.38/i386 5.99.38/amd64 my_time_t int32_t int64_t int32_t int64_t time_t int32_t int32_t int64_t int64_t I confirmed to mysqld running on these four case except 5.99.38/i386. Bump PKG_REVISION. @ text @a0 25 $NetBSD: patch-bb,v 1.1 2010/08/13 14:25:35 taca Exp $ * if long is int64_t and time_t is int32_t, "(time_t) MY_TIME_T_MAX" results -1 and server_start_time is always parsed as exceeding limit. So, use TIMESTAMP_MAX_VALUE which is INT_MAX32. * if time_t is int32_t, comparsion with TIMESTAMP_MAX_VALUE is always true here. So, limit the comparsion to other cases. --- sql/sql_class.h.orig 2010-07-09 12:34:57.000000000 +0000 +++ sql/sql_class.h @@@@ -2031,8 +2031,12 @@@@ public: } /*TODO: this will be obsolete when we have support for 64 bit my_time_t */ inline bool is_valid_time() - { - return (start_time < (time_t) MY_TIME_T_MAX); + { +#if defined(TIME_T_UNSIGNE) || (SIZEOF_TIME_T > 4) + return (start_time < TIMESTAMP_MAX_VALUE); +#else + return 1; +#endif } void set_time_after_lock() { utime_after_lock= my_micro_time(); } ulonglong current_utime() { return my_micro_time(); } @