to estimate correctly cost of full table scan we should take into
account rows read and skipped on each iteration.
mysql-test/r/distinct.result:
Fixed test suite: now full scan is used
less often
mysql-test/r/join_outer.result:
Fixed test suite: now full scan is used
less often
mysql-test/r/select_safe.result:
Fixed test suite: now full scan is used
less often
removed server options
BitKeeper/deleted/.del-query_cache-master.opt~c4daeaa5e40881:
Delete: mysql-test/t/query_cache-master.opt
mysql-test/r/query_cache.result:
test for BUG#988
mysql-test/t/query_cache.test:
test for BUG#988
removed server options
sql/sql_cache.cc:
fixed moving query block with pointers to same table in it
their newer DES_ versions.
Provided macros for backward compatibility.
include/my_global.h:
Added macros for DES_ OpenSSL functions for compatibility with pre 0.9.7
sql/des_key_file.cc:
Replaced deprecated OpenSSL des_ calls and types with newer
sql/item_strfunc.cc:
Replaced deprecated OpenSSL des_ calls and types with newer
sql/mysql_priv.h:
Replaced deprecated OpenSSL des_ types with newer
SSL/cacert.pem:
Regenerated expired CA certificate
SSL/client-cert.pem:
Signed client certificate after regenerating CA certificate
SSL/server-cert.pem:
Signed server certificate after regenerating CA certificate
DO NOT COPY THIS CODE TO 4.0. The bugfix is better in 4.0,
but here in 3.23 we don't want to add a new error code so
we just use ER_EMPTY_QUERY. Bug was:
"If a query was ignored on the slave (because of
@code{replicate-ignore-table} and other similar rules), the slave
still checked if the query got the same error code (0, no error) as on
the master. So if the master had an error on the query (for example,
``Duplicate entry'' in a multiple-row insert), then the slave stopped
and warned that the error codes didn't match. (Bug #797)"
sql/slave.cc:
Ignore ER_EMPTY_QUERY as it is also a marker for "query was ignored because
of replicate-*-table rules".
sql/sql_parse.cc:
In a slave thread, mark an ignored query (because of replicate-*-table rules)
as empty. The caller, exec_event(), will understand this error code as "ignorable
query, don't compare the error codes on master and slave".
fault). Fix is just initializing "host" (and "user") with 0, not a string.
client/mysqlbinlog.cc:
command-line arguments should be initialized like in mysqldump.cc to not cause
segfault.
- removed "-traditional-cpp" from the darwin6 compile flags, as it broke
compilation with gcc-3.3 on Mac OS X and does not seem to be required
in general.
- make sure to link libmysqld/examples/mysqltest.c with a C++ compiler,
as the embedded server library (libmysqld.a) includes C++ code. This
broke compilation with non-gcc compilers.
configure.in:
- removed "-traditional-cpp" from the darwin6 compile flags, as it broke
compilation with gcc-3.3 and does not seem to be required in general.
libmysqld/examples/Makefile.am:
- make sure to link mysqltest.c with a C++ compiler, as the embedded server
library (libmysqld.a) includes C++ code.
Fix bug: if a primary key contains more than one column, then MySQL seems to do fetch next even for a unique search condition: this in turn caused unnecessary locking which did not agree what the InnoDB manual promised
innobase/row/row0sel.c:
Fix bug: if a primary key contains more than one column, then MySQL seems to do fetch next even for a unique search condition: this in turn caused unnecessary locking which did not agree what the InnoDB manual promised
Now LOAD DATA FROM MASTER does not drop the database, instead it only tries to
create it, and drops/creates table-by-table.
* replicate_wild_ignore_table='db1.%' is now considered as "ignore the 'db1'
database as a whole", as it already works for CREATE DATABASE and DROP DATABASE.
mysql-test/r/rpl000009.result:
result update
mysql-test/t/rpl000009.test:
test that LOAD DATA FROM MASTER does not drop databases,
but rather table by table, thus preserving non-replicated tables.
Test that LOAD DATA FROM MASTER reports the error when a table could not
be dropped (system's "permission denied" for example).
Test that LOAD TABLE FROM MASTER reports the error when the table already exists.
sql/repl_failsafe.cc:
* replicate_wild_ignore_table='db1.%' is now considered as "ignore the 'db1'
database as a whole", as it already works for CREATE DATABASE and DROP DATABASE.
* If a db matches replicate_*_db rules, we don't drop/recreate it because this
could drop some tables in this db which could be slave-specific. Instead,
we do a CREATE DATABASE IF EXISTS, and we will drop each table which has
an equivalent on the master, table-by-table.
sql/slave.cc:
New argument to drop the table in create_table_from_dump()
(LOAD TABLE/DATA FROM MASTER are the only places where this function is used).
This is needed because LOAD DATA FROM MASTER does not drop the database anymore.
The behaviour when the table exists is unchanged: LOAD DATA silently replaces
the table, LOAD TABLE gives error.
sql/slave.h:
new argument to drop the table in fetch_master_table
sql/sql_parse.cc:
do not drop the table in LOAD TABLE FROM MASTER (this behaviour is already
true; but changes in LOAD DATA FROM MASTER made the argument needed).
to be able to compile on HP-UX 10.20 (which does not have in_add_t).
extra/resolveip.c:
- backport compatibility fix from 4.0 to be able to compile on HP-UX 10.20
(which does not have in_add_t).
use the local machine's IP address instead of the host name when
building the initial grant tables if "skip-name-resolve" has been
specified in my.cnf. This can be helpful on FreeBSD to avoid
thread-safety problems with the FreeBSD resolver libraries.
(Thanks to Jeremy Zawodny for the patch)
scripts/mysql_install_db.sh:
- Added option "--skip-name-resolve" to use the local machine's IP address
instead of the host name when building the initial grant tables if
"skip-name-resolve" has been specified in my.cnf (Thanks to Jeremy
Zawodny for the patch)
Fix bug in SHOW GRANTS when there is a column privilege but no table privilege
include/mysql.h:
Make server_inited external
libmysqld/libmysqld.c:
Remove reference to (wrong) external variable
mysql-test/r/grant.result:
Fixed up grant test to not user 'user1' or 'user2'
Check for bug in SHOW GRANTS when there is a column privilege but no table privilege
mysql-test/r/mix_innodb_myisam_binlog.result:
Change to use tables t1 and t2
mysql-test/t/grant.test:
Fixed up grant test to not user 'user1' or 'user2'
Check for bug in SHOW GRANTS when there is a column privilege but no table privilege
mysql-test/t/mix_innodb_myisam_binlog.test:
Change to use tables t1 and t2
sql/sql_acl.cc:
Fix bug in SHOW GRANTS when there is a column privilege but no table privilege
sql/sql_parse.cc:
Use HAVE_REPLICATION instead of EMBEDDED_LIBRARY
i fixed this in 4.1 in slightly different way
libmysqld/lib_sql.cc:
Initialization's flag was made global
libmysqld/libmysqld.c:
Check for mysql_server_init call added
just to make it compatible with the manual
(fixed bug #1056)
client/mysqldump.c:
added space after first '--' in the long '----....' comment line
just to make it compatible with the manual
(fixed bug #1056)
myisam/mi_locking.c:
Added DBUG info
myisam/mi_open.c:
Added DBUG info
myisam/mi_update.c:
More comments
Fixed rare bug in MYISAM introduced in 4.0.3 where the index file header
was not updated directly after an UPDATE of split dynamic rows.
mysql-test/r/myisam.result:
Added test case for MyISAM UPDATE bug
mysql-test/t/myisam.test:
Added test case for MyISAM UPDATE bug