optimiser bug patch.
mysql-test/r/distinct.result:
test results reverted
mysql-test/r/order_by.result:
test results reverted
sql/sql_select.cc:
found_constrain renamed to found_constraint
We don't perform full cartesian product in
case when JOIN BUFFER is used: it was taken
into account.
s->read_time may contain range index read time,
so to get full table scan time is necessary to
call s->table->file->scan_time().
into account to increase the cost of FULL SCAN
sql/sql_select.cc:
more accurate FULL SCAN cost estimation:
join buffer cache usage/not usage is taken
into account to increase the cost
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
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
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).
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)