Commit graph

188 commits

Author SHA1 Message Date
dlenev@mysql.com
263b33e12d Fix for bug #4131 "TIMESTAMP columns missing minutes and seconds when
using GROUP BY"
Now we are setting Field_timestamp::field_length to 19 in open_table()
if we are in new mode (and we are restoring it back when we are coming
back to normal mode). This also should solve potential problems with
some of LOAD DATA INFILE and SELECT * INTO in this mode.
2004-09-27 00:50:00 +04:00
monty@mysql.com
f574cd4e8f Code style fixes.
Initialize LOG_error_log before get_options to not use an uninitalized mutex in case of an error from handle_options()
2004-08-28 00:49:54 +03:00
rburnett@build.mysql.com
358900236a Bug #4792 lower_case_table_names does not resolve db.tbl.column in SELECT list
sql_base.cc:
  Added code to lowercase database name in insert_fields when lower_case_table_names=1. This fixes bug# 4792
2004-08-25 15:12:31 +02:00
ingo@mysql.com
18cd61d0d0 bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Redesigned the handler close functions so that they are usable
at different places where waiting for closing tables is done.
2004-06-24 15:06:56 +02:00
serg@serg.mylan
2e1ded2fe1 backport wild_compare fix from 4.1 - bug#3924 2004-05-29 17:52:20 +02:00
serg@serg.mylan
4fcff3d2f1 don't rely on readdir() returning . and .. first 2004-05-04 14:36:23 +02:00
guilhem@mysql.com
d89f148de6 The automatic DROP TEMPORARY TABLE is now DROP TEMPORARY TABLE IF EXISTS,
this is better in this case:
- imagine user1 has created a temp table
- imagine user2 does FLUSH TABLES WITH READ LOCK, then takes a backup,
then RESET MASTER then UNLOCK TABLES, like mysqldump --first-slave
- then in the binlog you will finally have the DROP TEMPORARY TABLE,
but not the CREATE TEMPORARY TABLE, so when you later restore with
mysqlbinlog|mysql, mysql will complain that table does not exist.
Replication was already protected of this (it processes DROP TEMPORARY
TABLE as if there was a IF EXISTS), now I add it directly to the query
for mysqlbinlog|mysql to work.
2004-03-20 15:49:17 +01:00
monty@mysql.com
e27960a44e Ensure that install_test_db.sh script works with both 'make install' and 'make_binary_distribution' layouts
Abort if we can't allocate memory for table cache
Fix bug with multi-update-tables and BDB tables.
2004-03-12 01:10:22 +02:00
monty@mysql.com
4ee44751d9 Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) 2004-03-10 13:46:11 +02:00
guilhem@mysql.com
9beae2895f Fix for BUG#3063 "Don't mark an auto DROP TEMP TABLE as 'killed' in the binlog";
even if the thread was killed, we write the DROP with error_code=0.
This will remove unneeded stops on slave, and will lose nothing:
if a real update was killed, this real update will be logged with the
nonzero error code and will cause the stop on slave.
2004-03-04 15:44:24 +01:00
guilhem@mysql.com
5afaf4eaaa Complement to
ChangeSet 1.1616.23.1
Fix for BUG#1858 "SQL-Thread stops working when using optimize table".
A test for this.
2004-02-22 11:22:51 +01:00
monty@mysql.com
268521a61d Give error if locked table is used twice in query. This fixes strange error message when doing LOCK TABLES t1 WRITE; INSERT TABLE t1 SELECT * from t1 (Bug #2296) 2004-02-03 09:46:48 +01:00
guilhem@mysql.com
e71325caf9 Fix for BUG#2477 "Slave stop with error after master reboot if use HEAP tables":
when we open the HEAP table for the first time since server restart,
in hp_open(), we set a flag to propagate this info to the handler level
which then writes a DELETE FROM this_heap_table to the binlog.
It is not a perfect solution for the bug, because between the server start and 
the first open of the table, the slave still had old data in his table so
a SELECT on the slave may show wrong content. But if there is a --init-file
to populate the HEAP table on master as startup, then this is a safe fix
(I'll put a note about init-file in the HEAP section of the manual).
2004-01-30 00:05:34 +01:00
guilhem@mysql.com
e56c8c61d8 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2003-12-16 11:12:40 +01:00
guilhem@mysql.com
db2d812d1b Fix for BUG#2083
"EE_ error codes (EE_DELETE, EE_WRITE) end up in the binlog, making slave stop".
The problem was that during execution of the command on the master, an error
can occur (for example, not space left on device, then mysqld waits and when
there is space it completes successfully: so finally it worked but the error
EE_WRITE remains in thd->net.last_errno and thd->net.last_error).
To know if finally the command succeeded, we test the 'error' variable in
every place, and if it shows no failure we reset thd->net.last_err* using
the function THD::clear_error() which is backported from 4.1.
A new test to see if now only real errors get to the binlog (note: the test
uses "rm").

Also a bit of memory free/alloc saving in log_event.cc (do not free the whole
mem_root after every query in the slave SQL thread: we can keep the initial
block of it; which will be freed when the thread terminates).
2003-12-16 11:10:50 +01:00
monty@mysql.com
d47deebb58 Extend max_allowed_packet to 2G in mysql and mysqldump (Bug #2105)
Don't dump data for MRG_ISAM or MRG_MYISAM tables. (Bug #1846)
Ensure that 'lower_case_table_names' is always set on case insensitive file systems. (Bug #1812)
One can now configure MySQL as windows service as a normal user. (Bug #1802)
Database names is now compared with lower case in ON clause when lower_case_table_names is set. (Bug #1736)
IGNORE ... LINES option didn't work when used with fixed length rows. (Bug #1704)
Change INSERT DELAYED ... SELECT... to INSERT .... SELECT (Bug #1983)
Safety fix for service 'mysql start' (Bug #1815)
2003-12-14 06:39:52 +02:00
monty@mysql.com
7e92336b1d Fixed a possible memory leak on MacOSX when using the shared libmysql.so library (Bug #2061)
mysql_server_init() now returns error code if something went wrong (Bug #2062)
Don't use my_fopen() when reading symlink information as this may cause problems when a lot of files are opened.
Free thread keys with pthread_key_delete() instead of relying on automatic free. (Bug #2062)
Fixed bug in UNION statement with alias '*'. (Bug #1249)
Fixed a bug in DELETE ... ORDER BY ... LIMIT where the rows where not deleted in the proper order. (Bug #1024).
FOUND_ROWS() could return incorrect number of rows after a query with an impossible WHERE condition.
HOW DATABASES doesn't anymore show .sym files (on windows) that doesn't point to a valid directory. (Bug #1385)
2003-12-11 06:24:08 +02:00
serg@serg.mylan
16e5b4f0ba bug #1945. item(expression)->name=0, crash in find_item_in_list 2003-11-28 12:36:45 +01:00
guilhem@mysql.com
59d0872aa0 Fix for BUG#1686
"If 2 master threads with same-name temp table, slave makes bad binlog"
and (two birds with one stone) for
BUG#1240 "slave of slave breaks when STOP SLAVE was issud on parent slave
and temp tables".

Here is the design change:
in a slave running with --log-slave-updates, events are now logged with the
thread id they had on the master. So no more id conflicts between master threads,
but introduces id conflicts between one master thread and one normal 
client thread connected to the slave. This is solved by storing the server id
in the temp table's name.

New test which requires mysql-test-run to be run with --manager,
otherwise it will be skipped.

Undoing a Monty's change (hum, a chill runs down my spine ;) which was
"Cleanup temporary tables when slave ends" in ChangeSet 1.1572.1.1.
2003-10-29 14:23:35 +01:00
guilhem@mysql.com
9d7014c07b Fix for BUG#1345 "SQL Syntax Error in binarylog with DROP TABLES":
it's just backquoting the db's and table's names
when writing DROP TEMPORARY TABLE to the binlog when a connection ends.
A testcase for this.
2003-09-28 18:31:49 +02:00
monty@mashka.mysql.fi
7655f05dc2 LEFT JOIN optimization: Change LEFT JOIN to normal join if possible 2003-06-26 05:38:19 +03:00
monty@narttu.mysql.fi
13530887cb Fix for UNION and LEFT JOIN (Bug #386)
Fixed wrong logging of Access denied error (Bug #398)
2003-05-13 18:58:26 +03:00
monty@mashka.mysql.fi
b3bab6aa73 merge with 3.23 2003-05-08 00:41:46 +03:00
monty@mashka.mysql.fi
8a28428c0a Better grant test for SELECT * 2003-05-08 00:34:23 +03:00
monty@mashka.mysql.fi
5d5d5b08ac Merge to get security patch 2003-05-08 00:12:46 +03:00
monty@mashka.mysql.fi
71ce598fa2 Security patch to remove wrong error when one had a global update/delete privilige and a database specific SELECT privilege. 2003-05-07 23:59:24 +03:00
monty@narttu.mysql.fi
7410b6cbdf Fix problem where key_read was not cleaned up properly, which caused assert in innodb test. 2003-05-03 16:21:43 +03:00
Sinisa@sinisa.nasamreza.org
0ed1cbbd48 Porting back security fix from 4.0.
All tests plus grant.pl test passed.
2003-04-29 18:24:33 +03:00
monty@mashka.mysql.fi
51eed4b48c Fix for openssl on Solaris
Fix for grant bug with SELECT *
2003-04-28 10:32:56 +03:00
serg@serg.mysql.com
f590fa7ce2 merged 2003-03-13 17:57:24 +01:00
monty@mashka.mysql.fi
6c81552dd3 Better fix for GRANT bug 2003-03-13 16:43:43 +02:00
serg@serg.mysql.com
026ec1d37c merged 2003-03-13 13:44:03 +01:00
Sinisa@sinisa.nasamreza.org
d87036511b Fix for a bug with column privileges ... 2003-03-12 17:08:48 +02:00
monty@narttu.mysql.fi
2a7dfa172c Fixed bug in LOCK TABLE + DROP TABLE when other thread was waiting for a table that was locked bug not droped 2003-03-04 12:22:35 +02:00
monty@mashka.mysql.fi
689578a099 Fixes for Netware
Call pthread_mutex_destroy() on not used mutex.
Changed comments in .h and .c files from // -> /* */
Added detection of mutex on which one didn't call pthread_mutex_destroy()
Fixed bug in create_tmp_field() which causes a memory overrun in queries that uses "ORDER BY constant_expression"
Added optimisation for ORDER BY NULL
2003-01-28 08:38:28 +02:00
monty@mashka.mysql.fi
710ffb2d89 Fix when using auto_increment and last_insert_id() in the same insert statement. 2003-01-28 06:48:26 +02:00
monty@mashka.mysql.fi
3c08da957e Don't count NULL values in cardinalty for MyISAM tables.
Free row buffer cache after each query for MyISAM tables.
Added table join option FORCE INDEX
Fixed core dump bug when connecting with hostname that could not be resolved.
2003-01-09 02:19:14 +02:00
monty@hundin.mysql.fi
8830eb4aa9 Change of internal key_field=NULL handling to avoid error messages.
Optimized SELECT DISTINCT ... ORDER BY ... LIMIT
Fixed reference to uninitalized variable
2002-12-03 13:08:25 +02:00
monty@mashka.mysql.fi
6603d75213 New multi-table-update code
New (simpler) internal timestamp handling.
More debuging to heap tables.
Small cleanups to multi-table-delete
false -> 0 and true -> 1  (We should use TRUE and FALSE)
2002-11-29 16:40:18 +02:00
monty@mashka.mysql.fi
1a96948e81 Small improvement to alloc_root
Add support for LIMIT # OFFSET #
Changed lock handling:  Now all locks should be stored in TABLE_LIST instead of passed to functions.
Don't call query_cache_invalidate() twice in some cases
mysql_change_user() now clears states to be equal to close + connect.
Fixed a bug with multi-table-update and multi-table-delete when used with LOCK TABLES
Fixed a bug with replicate-do and UPDATE
2002-11-16 20:19:10 +02:00
serg@serg.mysql.com
9b0aca768d removed redundant line 2002-11-13 15:57:29 +01:00
Sinisa@sinisa.nasamreza.org
c92bbccbc1 Merge 2002-11-12 16:27:52 +02:00
Sinisa@sinisa.nasamreza.org
9ef50038f8 IGNORE_INDEX fix for 4.0 2002-11-12 16:22:26 +02:00
monty@mashka.mysql.fi
97bb57f765 Extended WEEK() to be able to handle ISO weeks.
unlink socket file if mysqld dies on startup
Some optimization of AND expressions
2002-11-12 12:42:42 +02:00
monty@mashka.mysql.fi
876f3f4d30 Fixed that NULL and 0 returns 0 instead of NULL
This is coded to not cause a speed impact on top level AND expressions where we don't care if an AND expression returns 0 or NULL
2002-11-11 15:57:35 +02:00
serg@serg.mysql.com
65f276f10c merged 2002-11-09 19:27:28 +01:00
serg@serg.mysql.com
6b8bf756b1 IGNORE/USE INDEX now work with HA_EXTRA_KEYREAD 2002-11-09 19:15:46 +01:00
monty@hundin.mysql.fi
aa4e165808 Portability fix extern "C" static -> extern "C" 2002-11-07 12:49:02 +02:00
monty@butch.
890b39bb68 merge 2002-11-07 12:49:01 +02:00
monty@hundin.mysql.fi
65badfff1a Put temporary files in binlog cache when using BEGIN/COMMIT
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
New variables @@rand_seed1 and @@rand_seed2 (used by replication)
DROP TEMPORARY TABLE
2002-11-07 04:02:37 +02:00