by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
the normal case when BUILDLINK_DEPENDS.<pkg> isn't specified, it receives
a value only once due to the multiple inclusion protection in the
bulldlink3.mk files. In the case where a package includes several
buildlink3.mk files that each want a slightly different version of another
dependency, having BUILDLINK_DEPENDS.<pkg> be a list allows for the
strictest <pkg> dependency to be matched.
BUILDLINK_{CPPFLAGS,LDFLAGS}.<pkg> where we're adding search directories.
Using the former should do the right thing for pkgviews if we do binary
package upgrades of dependencies by inserting the right default view
directories into the search path as well.
set, the packages contain extra security fixes, which are not part
of 3.23.51 distribution
NOTE: this is the last 3.23.x version with bundled mit-pthreads package;
any further upgrade would need some additional efford to keep the package
usable on NetBSD 1.6.x and older
Highlights of changes:
* Add missing <row> tags for mysqldump XML output.
* SHOW VARIABLES LIKE 'xxx' is now case-insensitive
* InnoDB now allows foreign key constraints to be added through the
ALTER TABLE syntax.
* InnoDB tables can now be set to automatically grow in size (autoextend).
* Changed name of server variables Com_show_master_stat to
Com_show_master_status and Com_show_slave_stat to Com_show_slave_status.
* Changed handling of gethostbyname() to make the client library thread-safe
even if gethostbyname_r doesn't exist.
* If we get an overflow when inserting '+11111' for DECIMAL(5,0) UNSIGNED
columns, we will just drop the sign.
* many bugfixes
Full list of changes:
3.23.50:
* Fixed buffer overflow problem if someone specified a too long datadir
parameter to mysqld
* Add missing <row> tags for mysqldump XML output.
* Fixed problem with crash-me and gcc 3.0.4.
* Fixed that @@unknown_variable doesn't hang server.
* Added @@VERSION as a synonym for VERSION().
* SHOW VARIABLES LIKE 'xxx' is now case-insensitive.
* Fixed timeout for GET_LOCK() on HP-UX with DCE threads.
* Fixed memory allocation bug in the glibc library used to build Linux
binaries, which caused mysqld to die in 'free()'.
* Fixed SIGINT and SIGQUIT problems in mysql.
* Fixed bug in character table converts when used with big ( > 64K) strings.
* InnoDB now retains foreign key constraints through ALTER TABLE and
CREATE/DROP INDEX.
* InnoDB now allows foreign key constraints to be added through the
ALTER TABLE syntax.
* InnoDB tables can now be set to automatically grow in size (autoextend).
* Our Linux RPMS and binaries are now compiled with gcc 3.0.4, which should
make them a bit faster.
* Fixed some buffer overflow problems when reading startup parameters.
* Because of problems on shutdown we have now disabled named pipes on Windows
by default. One can enable named pipes by starting mysqld
with --enable-named-pipe.
* Fixed bug when using WHERE key_column = 'J' or key_column='j'.
* Fixed core-dump bug when using --log-bin with LOAD DATA INFILE without
an active database.
* Fixed bug in RENAME TABLE when used with lower_case_table_names=1 (default
on Windows).
* Fixed unlikely core-dump bug when using DROP TABLE on a table that was
in use by a thread that also used queries on only temporary tables.
* Fixed problem with SHOW CREATE TABLE and PRIMARY KEY when using 32 indexes.
* Fixed that one can use SET PASSWORD for the anonymous user.
* Fixed core dump bug when reading client groups from option files using
mysql_options().
* Memory leak (16 bytes per every corrupted table) closed.
* Fixed binary builds to use --enable-local-infile.
* Update source to work with new version of bison.
* Updated shell scripts to now agree with new POSIX standard.
* Fixed bug where DATE_FORMAT() returned empty string when used with GROUP BY.
3.23.51:
* Fix bug with closing tags missing slash for mysqldump XML output.
* Remove end space from ENUM values. (This fixed a problem with SHOW CREATE
TABLE.)
* Fixed bug in CONCAT_WS() that cut the result.
* Changed name of server variables Com_show_master_stat to
Com_show_master_status and Com_show_slave_stat to Com_show_slave_status.
* Changed handling of gethostbyname() to make the client library thread-safe
even if gethostbyname_r doesn't exist.
* Fixed core-dump problem when giving a wrong password string to GRANT.
* Fixed bug in DROP DATABASE with symlinked directory.
* Fixed optimisation problem with DATETIME and value outside DATETIME range.
* Removed Sleepycat's BDB doc files from the source tree, as they're not needed
(MySQL covers BDB in its own documentation).
* Fixed MIT-pthreads to compile with glibc 2.2 (needed for make dist).
* Fixed the FLOAT(X+1,X) is not converted to FLOAT(X+2,X). (This also affected
DECIMAL, DOUBLE and REAL types)
* Fixed the result from IF() is case in-sensitive if the second and third
arguments are case sensitive.
* Fixed core dump problem on OSF/1 in gethostbyname_r.
* Fixed that underflowed decimal fields are not zero filled.
* If we get an overflow when inserting '+11111' for DECIMAL(5,0) UNSIGNED
columns, we will just drop the sign.
* Fixed optimisation bug with ISNULL(expression_which_cannot_be_null) and
ISNULL(constant_expression).
* Fixed host lookup bug in the glibc library that we used with the 3.23.50
Linux-x86 binaries.
MYSQL_CHARSET is default charracter set of mysql, default is "latin1".
MYSQL_EXTRA_CHARSET is additional charsets to be compiled in mysql,
default is "all".
Fix PR pkg/22560 by myself, OKed by wiz@.
Makefiles simply need to use this value often, for better or for
worse.
(2) Create a new variable FIX_RPATH that lists variables that should
be cleansed of -R or -rpath values if ${_USE_RPATH} is "no". By
default, FIX_RPATH contains LIBS, X11_LDFLAGS, and LDFLAGS, and
additional variables may be appended from package Makefiles.
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
* Don't give warning for statement that is only a comment; This is
needed for mysqldump --disable-keys to work.
* Fixed unlikely caching bug when doing a join without keys. In this case
the last used field for a table always returned NULL.
* Added options to make LOAD DATA LOCAL INFILE more secure.
* Added --xml option to mysqldump for producing XML output.
* Changed to use autoconf 2.52 (from autoconf 2.13)
* Fixed bug in complicated join with const tables.
* Added internal safety checks for InnoDB.
* Some InnoDB variables was always shown in SHOW VARIABLES as OFF on
high-byte-first systems (like sparc).
* Fixed problem with one thread using an InnoDB table and another thread
doing an ALTER TABLE on the same table. Before that, mysqld could crash
with an assertion failure in row0row.c, line 474.
* Tuned the InnoDB SQL optimizer to favor more often index searches over
table scans. SELECT queries will now also generally run faster on all
platforms.
* If MySQL binlogging is used, InnoDB now prints after crash recovery the
latest MySQL binlog name and the offset InnoDB was able to recover to.
This is useful, for example, when resynchronizing a master and a slave
database in replication.
* Added better error messages to help in installation problems of
InnoDB tables.
* One can now recover also MySQL temporary tables which have become
orphaned inside the InnoDB tablespace.
* InnoDB now prevents a FOREIGN KEY declaration where the signedness is
not the same in the referencing and referenced integer columns.
* Calling SHOW CREATE TABLE or SHOW TABLE STATUS could cause memory
corruption and make mysqld to crash. Especially at risk was mysqldump,
because it calls frequently SHOW CREATE TABLE.
* If inserts to several tables containing an auto-inc column were wrapped
inside one LOCK TABLES, InnoDB asserted in lock0lock.c.
* In 3.23.47 we allowed several NULLS in a UNIQUE secondary index for an
InnoDB table. But CHECK TABLE was not relaxed: it reports the table as
corrupt. CHECK TABLE no longer complains in this situation.
* SHOW GRANTS now shows REFERENCES instead of REFERENCE.
Summary of changes:
- removal of USE_GTEXINFO
- addition of mk/texinfo.mk
- inclusion of this file in package Makefiles requiring it
- `install-info' substituted by `${INSTALL_INFO}' in PLISTs
- tuning of mk/bsd.pkg.mk:
removal of USE_GTEXINFO
INSTALL_INFO added to PLIST_SUBST
`${INSTALL_INFO}' replace `install-info' in target rules
print-PLIST target now generate `${INSTALL_INFO}' instead of `install-info'
- a couple of new patch files added for a handful of packages
- setting of the TEXINFO_OVERRIDE "switch" in packages Makefiles requiring it
- devel/cssc marked requiring texinfo 4.0
- a couple of packages Makefiles were tuned with respect of INFO_FILES and
makeinfo command usage
See -newly added by this commit- section 10.24 of Packages.txt for
further information.
The automatic truncation in gensolpkg doesn't work for packages which
have the same package name for the first 5-6 chars.
e.g. amanda-server and amanda-client would be named amanda and amanda.
Now, we add a SVR4_PKGNAME and use amacl for amanda-client and amase for
amanda-server.
All svr4 packages also have a vendor tag, so we have to reserve some chars
for this tag, which is normaly 3 or 4 chars. Thats why we can only use 6
or 5 chars for SVR4_PKGNAME. I used 5 for all the packages, to give the
vendor tag enough room.
All p5-* packages and a few other packages have now a SVR4_PKGNAME.
- mysqlbinlog moved from the mysql-server to the mysql-client package
- some pkgsrc patches are now part of the mysql distribution.
Changes in release 3.23.43
--------------------------
* Fixed a bug in INSERT DELAYED and FLUSH TABLES introduced in 3.23.42.
* Fixed unlikely bug, which returned not matching rows, in SELECT with
many tables and multi-column indexes and 'range' type.
* Fixed a unlikely core-dump bug when doing EXPLAIN SELECT when using
many tables and ORDER BY.
* Fixed bug in LOAD DATA FROM MASTER when using table with CHECKSUM=1.
* Added unique error message when one gets a DEADLOCK during a transaction
with BDB tables.
* Fixed problem with BDB tables and UNIQUE columns defined as NULL.
* Fixed problem with myisampack when using pre-space filled CHAR columns.
* Applied patch from Yuri Dario for OS2.
* Fixed bug in --safe-user-create
Changes in release 3.23.42
--------------------------
* Fixed problem when using LOCK TABLES and BDB tables.
* Fixed problem with REPAIR TABLE on MyISAM tables with row lengths between
65517 - 65520 bytes
* Fixed rare hang when doing mysqladmin shutdown when there was a lot of
activity in other threads.
* Fixed problem with INSERT DELAYED where delay thread could be hanging on
upgrading locks without any apparent reasons.
* Fixed problem with myisampack and BLOB.
* Fixes problem when one edited .MRG tables by hand. (Patch from Benjamin
Pflugmann).
* Enforce that all tables in a MERGE table come from the same database.
* Fixed bug with LOAD DATA INFILE and transactional tables.
* Fix bug when using INSERT DELAYED with wrong column definition.
* Fixed coredump during REPAIR of some particularly broken tables.
* Fixed bug in InnoDB and AUTO_INCREMENT columns.
* Fixed bug in InnoDB and RENAME TABLE columns.
* Fixed critical bug in InnoDB and BLOB columns. If one has used BLOB columns
larger than 8000 bytes in an InnoDB table, one must dump the table with
mysqldump, drop it and restore it from the dump.
* Applied large patch for OS/2 from Yuri Dario.
* Fixed problem with InnoDB when one could get the error Can't execute the
given command... even when one didn't have an active transaction.
* Applied some minor fixes that concern Gemini.
* Use real arithmetic operations even in integer context if not all arguments
are integers. (Fixes uncommon bug in some integer contexts).
* Don't force everything to lower cases on Windows. (To fix problem with
Windows and ALTER TABLE). Now --lower_case_names also works on Unix.
* Fixed that automatic rollback that is done when thread end doesn't lock
other threads.
Changes in release 3.23.41
--------------------------
* Added option --sql-mode=option[,option[,option]]. See section 4.1.1 mysqld
Command-line Options.
* Fixed possible problem with shutdown on Solaris where the `.pid' file
wasn't deleted.
* InnoDB now supports < 4 GB rows. The former limit was 8000 bytes.
* The doublewrite file flush method is used in InnoDB. It reduces the need
for Unix fsync calls to a fraction and improves performance on most Unix
flavors.
* You can now use the InnoDB Monitor to print a lot of InnoDB state
information, including locks, to the standard output; useful in
performance tuning.
* Several bugs which could cause hangs in InnoDB have been fixed.
* Split record_buffer to record_buffer and record_rnd_buffer. To make things
compatible to previous MySQL versions, if record_rnd_buffer is not set,
then it takes the value of record_buffer.
* Fixed optimizing bug in ORDER BY where some ORDER BY parts where wrongly
removed.
* Fixed overflow bug with ALTER TABLE and MERGE tables.
* Added prototypes for my_thread_init() and my_thread_end() to `mysql_com.h'
* Added option --safe-user-create to mysqld.
* Fixed bug in SELECT DISTINCT ... HAVING that casued error message Can't
find record in '#...
Changes in release 3.23.40
--------------------------
* Fixed problem with --low-priority-updates and INSERT's.
* Fixed bug in slave thread when under some rare circumstances it could get
22 bytes ahead on the offset in the master.
* Added slave_wait_timeout for replication.
* Fixed problem with UPDATE and BDB tables.
* Fixed hard bug in BDB tables when using key parts.
* Fixed problem when using the GRANT FILE ON database.* ...; Previously we
added the DROP privilege for the database.
* Fixed DELETE FROM table_name ... LIMIT 0 and UPDATE FROM table_name ...
LIMIT 0 acted as though the LIMIT clause was not present (they deleted or
updated all selected rows).
* CHECK TABLE now checks if an AUTO_INCREMENT column contains the value 0.
* Sending a SIGHUP to mysqld will now only flush the logs, not reset the
replication.
* Fixed parser to allow floats of type 1.0e1 (no sign after e).
* Option --force to myisamchk now also updates states.
* Added option --warnings to mysqld. Now mysqld only prints the error
Aborted connection if this option is used.
* Fixed problem with SHOW CREATE TABLE when you didn't have a PRIMARY KEY.
* Properly fixed the rename of innodb_unix_file_flush_method to
innodb_flush_method.
* Fixed bug when converting UNSIGNED BIGINT to DOUBLE. This caused a problem
when doing comparisons with BIGINT values outside of the signed range.
* Fixed bug in BDB tables when querying empty tables.
* Fixed a bug when using COUNT(DISTINCT) with LEFT JOIN and there wasn't any
matching rows.
* Removed all documentation referring to the GEMINI table type. GEMINI is not
released under an Open Source license.
Disable the mysql-test stuff entirely.
Sync mysql-client's patch-af with mysql-server's.
Changes in release 3.23.39
--------------------------
* If one dropped and added an `AUTO_INCREMENT' column, the
`AUTO_INCREMENT' sequence wasn't reset.
* `CREATE .. SELECT' now creates not unique indexes delayed.
* Fixed problem where `LOCK TABLES table_name READ' followed by
`FLUSH TABLES' put a exclusive lock on the table.
* `REAL' @variables with was represented with 2 digits when
converted to strings.
* Fixed problem that client 'hung' when `LOAD TABLE FROM MASTER'
failed.
* Running `myisamchk --fast --force' will no longer repair tables
that only had the open count wrong.
* Added functions to handle symbolic links to make life easier in
4.0.
* We are now using the `-lcma' thread library on HP-UX 10.20 to get
*MySQL* more stable on HP-UX.
* Fixed problem with `IF()' and number of decimals in the result.
* Fixed date-part extraction functions to work with dates where day
and/or month is 0.
* Extended argument length in option files from 256 to 512 chars.
* Fixed problem with shutdown when `INSERT DELAYED' was waiting for
a `LOCK TABLE'.
* Fixed coredump bug in InnoDB when tablespace was full.
* Fixed problem with `MERGE' tables and big tables (> 4G) when using
`ORDER BY'.
Changes in release 3.23.38
--------------------------
* Fixed a bug when `SELECT' from `MERGE' table sometimes results in
incorrectly ordered rows.
* Fixed a bug in `REPLACE()' when using the ujis character set.
* Applied Sleepycat BDB patches 3.2.9.1 and 3.2.9.2.
* Added option `--skip-stack-trace' to `mysqld'.
* `CREATE TEMPORARY' now works with `InnoDB' tables.
* `InnoDB' now promotes sub keys to whole keys.
* Added option `CONCURRENT' to `LOAD DATA'.
* Better error message when slave `max_allowed_packet' is too low to
read a very long log event from the master.
* Fixed bug when too many rows where removed when using `SELECT
DISTINCT ... HAVING'.
* `SHOW CREATE TABLE' now returns `TEMPORARY' for temporary tables.
* Added `Rows_examined' to slow query log.
* Fixed problems with function returning empty string when using
together with a group functions and a `WHERE' that didn't match
any rows.
* New program `mysqlcheck'.
* Added database name to output for administrative commands like
`CHECK', `REPAIR', `OPTIMIZE'.
* Lots of portability fixes for InnoDB.
* Changed optimizer so that queries like `SELECT * FROM
table_name,table_name2 ... ORDER BY key_part1 LIMIT #' will use
index on `key_part1' instead of `filesort'.
* Fixed bug when doing `LOCK TABLE to_table WRITE,...; INSERT INTO
to_table... SELECT ...' when `to_table' was empty.
* Fixed bug with `LOCK TABLE' and BDB tables.
Changes in release 3.23.37
--------------------------
* Fixed a bug when using `MATCH' in `HAVING' clause.
* Fixed a bug when using `HEAP' tables with `LIKE'.
* Added `--mysql-version' to `safe_mysqld'
* Changed `INNOBASE' to `InnoDB' (because the `INNOBASE' name was
already used). All `configure' options and `mysqld' start options
are now using `innodb' instead of `innobase'. This means that you
have to change any configuration files where you have used
`innobase' options before upgrading to this version!
* Fixed bug when using indexes on `CHAR(255) NULL' columns.
* Slave thread will now be started even if `master-host' is not set,
as long as `server-id' is set and valid `master.info' is present
* Partial updates (terminated with kill) are now logged with a
special error code to the binary log. Slave will refuse to execute
them if the error code indicates the update was terminated
abnormally, and will have to be recovered with `SET
SQL_SLAVE_SKIP_COUNTER=1; SLAVE START' after a manual sanity
check/correction of data integrity.
* Fixed bug that erroneously logged a drop of internal temporary
table on thread termination to the binary log - bug affected
replication.
* Fixed a bug in `REGEXP()' on 64-bit machines.
* `UPDATE' and `DELETE' with `WHERE unique_key_part IS NULL' didn't
update/delete all rows.
* Disabled `INSERT DELAYED' for tables that support transactions.
* Fixed bug when using date functions on `TEXT'/`BLOB' column with
wrong date format.
* UDFs now also work on Windows. (Patch by Ralph Mason)
* Fixed bug in `ALTER TABLE' and `LOAD DATA INFILE' that disabled
key-sorting. These commands should now be faster in most cases.
* Fixed performance bug where reopened tables (tables that had been
waiting for `FLUSH' or `REPAIR') would not use indexes for the
next query.
* Fixed problem with `ALTER TABLE' to Innobase tables on FreeBSD.
* Added `mysqld' variables `myisam_max_sort_file_size' and
`myisam_max_extra_sort_file_size'.
* Initialize signals early to avoid problem with signals in Innobase.
* Applied patch for the `tis620' character set to make comparisons
case-independent and to fix a bug in `LIKE' for this character set.
*NOTE*: All tables that uses the `tis620' character set must be
fixed with `myisamchk -r' or `REPAIR TABLE' !
* Added `--skip-safemalloc' option to `mysqld'.
Changes in release 3.23.36
--------------------------
* Fixed a bug that allowed you to use database names containing a `.'
character. This fixes a serious security issue when `mysqld' is
run as root.
* Fixed bug when thread creation failed (could happen when doing a
LOT of connections in a short time).
* Fixed some problems with `FLUSH TABLES' and `TEMPORARY' tables.
(Problem with freeing the key cache and error `Can't reopen
table...').
* Fixed a problem in Innobase with other character sets than `latin1'
and another problem when using many columns.
* Fixed bug that caused a core dump when using a very complex query
involving `DISTINCT' and summary functions.
* Added `SET TRANSACTION ISOLATION LEVEL ...'
* Added `SELECT ... FOR UPDATE'.
* Fixed bug where the number of affected rows was not returned when
`MySQL' was compiled without transaction support.
* Fixed a bug in `UPDATE' where keys weren't always used to find the
rows to be updated.
* Fixed a bug in `CONCAT_WS()' where it returned wrong results.
* Changed `CREATE ... INSERT' and `INSERT ... SELECT' to not allow
concurrent inserts as this could make the binary log hard to
repeat. (Concurrent inserts are enabled if you are not using the
binary or update log).
* Changed some macros to be able to use fast mutex with glibc 2.2.
included by both mysql-server/Makefile and mysql-client/Makefile.
* Remove some unnecessary patches from mysql-client.
* Remove build dependency on autoconf as we don't really need to use it.
* Improve detection of native readline library.
* Provide INSTALL/DEINSTALL scripts to perform initial database setup and
to remind the package administrator to remove unnecessary directories upon
package removal.
* Use complete path to chown in various installed scripts. Fixes pkg/12725.
* Install server manpages with the server package. Fixes pkg/12724.
API/ABI changes, (backward compatible) changes to the client-server
protocol and bug fixes.
The 3.23 release has several major features that are not present
in previous versions. We have added new table types: MyISAM, a new
ISAM library which is tuned for SQL and supports large files; BDB,
which uses the Berkeley DB library from Sleepycat Software to
implement transaction-safe tables; INNOBASE, which uses the Innobase
database backend to implement transaction-safe tables. The 3.23
release also includes support for database replication between a
master and many slaves, full-text indexing, and much more.
For a detailed list of changes see appendix E of the online
documentation at http://www.mysql.com/.
The replication code and BerkeleyDB code is still not as tested
and as the rest of the code, so we will probably need to do a couple
of future releases of 3.23 with small fixes for this part of the
code. As long as you don't use these features, you should be quite
safe with MySQL 3.23!
Note that the above doesn't mean that replication or Berkeley DB
doesn't work; We have done a lot of testing of all code, including
replication and BDB without finding any problems. It only means
that not as many users uses this code as the rest of the code and
because of this we are not yet 100 % confident in this code.