A user could not override system-wide settings in their ~/.my.cnf,
because the DEFAULT_SYSCONFDIR was being searched last. Also, in
some configurations (especially when the --sysconfdir compile-time
option is set to /etc or /etc/mysql), the system-wide my.cnf file
was read multiple times, causing confusion and potential problems.
Rearrange default directories to conform to the manual and logic.
Move --sysconfdir=<path> (DEFAULT_SYSCONFDIR) from the last default
directory to the middle of the list. $HOME/.my.cnf should be last,
so the user is able to override the system-wide settings.
Change init_default_directories() to remove duplicates from the
list.
include/my_sys.h:
Add array_append_string_unique(), from mf_arr_appstr.c
libmysql/Makefile.shared:
Add new mf_arr_appstr.lo object
mysys/CMakeLists.txt:
Add new mf_arr_appstr.c source.
mysys/Makefile.am:
Add new mf_arr_appstr.c source.
mysys/default.c:
Change order in which defaults files are added to default_directories,
in order to conform to the manual (and to common sense). This fixes
a particularly bad problem on Unix, where ~/.my.cnf was read before
/usr/local/etc/my.cnf.
Also, don't add duplicate entries; move the existing entry to the
end of the list instead.
Here is a comparison of the order of defaults files, BEFORE and AFTER
this patch.
On Windows:
BEFORE: C:\, GetWindowsDirectory(), GetSystemWindowsDirectory(),
$MYSQL_HOME, defaults-extra-file, INSTALLDIR
AFTER: GetSystemWindowsDirectory(), GetWindowsDirectory(), C:\,
INSTALLDIR, $MYSQL_HOME, defaults-extra-file
GetSystemWindowsDirectory() is moved before GetWindowsDirectory() because
the former is shared by all Terminal Services users, while the latter is
private for each user.
On Netware (no change):
BEFORE: sys:/etc/, $MYSQL_HOME, defaults-extra-file
AFTER: sys:/etc, $MYSQL_HOME, defaults-extra-file
On OS/2:
BEFORE: $ETC, /etc, $MYSQL_HOME, defaults-extra-file
AFTER: /etc, $ETC, $MYSQL_HOME, defaults-extra-file
On everything else (general Unix):
BEFORE: /etc, $MYSQL_HOME, defaults-extra-file, ~/, --sysconfdir
AFTER: /etc/, --sysconfdir, $MYSQL_HOME, defaults-extra-file, ~/
The BEFORE code added --sysconfdir on all systems, but only the
Unix build system actually defined a value for it.
mysys/mf_arr_appstr.c:
BitKeeper file /home/tsmith/m/bk/build/50-b20748/mysys/mf_arr_appstr.c
Removed place holder for 'manual.chm'
.del-manual.chm:
Delete: Docs/manual.chm
BitKeeper/deleted/.del-manual.chm:
Delete: Docs/manual.chm
Docs/Makefile.am:
Removed place holder for 'manual.chm'
Added manual.chm to EXTRA_DIST
Removed install of INSTALL-BINARY, handled
by install scripts.
ReadMe.txt, INSTALL-WIN-SOURCE, INSTALL-BINARY, INSTALL-SOURCE:
Updated links to version 5.0 of the manual
Docs/INSTALL-BINARY:
Updated links to version 5.0 of the manual
INSTALL-SOURCE:
Updated links to version 5.0 of the manual
INSTALL-WIN-SOURCE:
Updated links to version 5.0 of the manual
support-files/MacOSX/ReadMe.txt:
Updated links to version 5.0 of the manual
Docs/Makefile.am:
Added manual.chm to EXTRA_DIST
Removed install of INSTALL-BINARY, handled
by install scripts.
Let place holders for real documentation have text that
makes sense to the user (Bug#25205)
BitKeeper/deleted/.del-generate-text-files.pl:
Delete: Docs/Support/generate-text-files.pl
Docs/INSTALL-BINARY:
BitKeeper file /home/kent/bk/bug25205/mysql-4.0/Docs/INSTALL-BINARY
INSTALL-SOURCE:
BitKeeper file /home/kent/bk/bug25205/mysql-4.0/INSTALL-SOURCE
support-files/MacOSX/ReadMe.txt:
BitKeeper file /home/kent/bk/bug25205/mysql-4.0/support-files/MacOSX/ReadMe.txt
Docs/mysql.info:
More of a end-user text
Docs/Makefile.am:
Don't generate text files from the documentation
Fix uninitialized variable causing failures for some interpreted update
operations on gcc 4.2.1.
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Fix uninitialized variable causing failures for some interpreted update
operations on gcc 4.2.1.
Bug#29290 type_datetime.test failure in 5.1
mysql-test/t/type_datetime.test:
- If we are too close to midnight sleep till we reach
at least midnight + 1 second.
- Replace error numbers with error names.
Dropping users causes huge increase in memory usage because field values were
allocated on the server memory root for temporary usage but never deallocated.
This patch changes the target memory root to be that of the thread handler
instead since this root is cleared between each statement.
sql/sql_acl.cc:
Changed memory root from server life time memory to thread life time memory.
Ensure use of libedit "config.h" by adding "-I. -I$(srcdir)" to DEFS,
work around for problem with automake 1.10 (bug#24809)
cmd-line-utils/libedit/Makefile.am:
Ensure use of libedit "config.h" by adding "-I. -I$(srcdir)" to DEFS,
work around for problem with automake 1.10 (bug#24809)
into trift2.:/MySQL/M50/push-5.0
mysql-test/r/derived.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/type_datetime.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/field.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/type_date.result:
Null-merge 5.0.50 build clone:
The test for bug#31221 is already in the receiving tree.
mysql-test/t/type_date.test:
Null-merge 5.0.50 build clone:
The test for bug#31221 is already in the receiving tree.
BitKeeper/triggers/pre-commit.check-case.pl:
catch duplicate file names, ignoring capitalisation, mostly to avoid changesets where a deleted file foobar and a deleted file FooBar break a tree on case insensitive file systems
into loke.(none):/home/knielsen/devel/mysql-5.0-ndb
ndb/include/kernel/AttributeHeader.hpp:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
Auto merged
ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
Auto merged
ndb/src/ndbapi/NdbOperationDefine.cpp:
SCCS merged
Fix problem with AttributeHeader::init() seen with gcc 4.2.1.
Using the same object as both Uint32 and class AttributeHeader violates
strict aliasing rule.
ndb/include/kernel/AttributeHeader.hpp:
Fix problem with AttributeHeader::init() seen with gcc 4.2.1.
Using the same object as both Uint32 and class AttributeHeader violates
strict aliasing rule.
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Fix problem with AttributeHeader::init() seen with gcc 4.2.1.
Using the same object as both Uint32 and class AttributeHeader violates
strict aliasing rule.
ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
Fix problem with AttributeHeader::init() seen with gcc 4.2.1.
Using the same object as both Uint32 and class AttributeHeader violates
strict aliasing rule.
ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
Fix problem with AttributeHeader::init() seen with gcc 4.2.1.
Using the same object as both Uint32 and class AttributeHeader violates
strict aliasing rule.
ndb/src/ndbapi/NdbOperationDefine.cpp:
Fix problem with AttributeHeader::init() seen with gcc 4.2.1.
Using the same object as both Uint32 and class AttributeHeader violates
strict aliasing rule.
Inserting Data.
The problem was that under some circumstances Field class was not
properly initialized before calling create_length_to_internal_length()
function, which led to assert failure.
The fix is to do the proper initialization.
The user-visible problem was that under some circumstances
CREATE TABLE ... SELECT statement crashed the server or led
to wrong error message (wrong results).
mysql-test/r/select.result:
Update result file.
mysql-test/t/select.test:
Add a test case for BUG#30736: Row Size Too Large Error
Creating a Table and Inserting Data.
sql/sql_table.cc:
Move sql_field->decimals initialization before
sql_field->create_length_to_internal_length() call.
into mysql.com:/home/gluh/MySQL/Merge/5.0-opt
client/mysqldump.c:
Auto merged
include/config-win.h:
Auto merged
libmysql/libmysql.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/r/func_sapdb.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/field.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/type_datetime.result:
manual merge
mysql-test/r/type_decimal.result:
manual merge
mysql-test/t/type_datetime.test:
manual merge
mysql-test/t/type_decimal.test:
manual merge
sql/item.cc:
manual merge
The problem is that when copying the supplied username and
database, no bounds checking is performed on the fixed-length
buffer. A sufficiently large (> 512) user string can easily
cause stack corruption. Since this API can be used from PHP
and other programs, this is a serious problem.
The solution is to increase the buffer size to the accepted
size in similar functions and perform bounds checking when
copying the username and database.
libmysql/libmysql.c:
Increase the buffer size and perform bounds checking when copying
the supplied arguments.
tests/mysql_client_test.c:
Add test case for Bug#31669