Commit graph

367 commits

Author SHA1 Message Date
marko@hundin.mysql.fi
e00bf40360 InnoDB cleanup: fixing buffer overflows and quoting of quotes 2004-04-01 16:51:34 +03:00
monty@mysql.com
53c810cda4 merge fixes (use old code) 2004-03-18 00:16:04 +02:00
heikki@hundin.mysql.fi
43706715da ha_innodb.cc:
Add a comment that InnoDB always retrieves the row id, if the clustered index was internally generated by InnoDB. Then we know the 'ref' to the row.
2004-03-17 22:28:49 +02:00
heikki@hundin.mysql.fi
e8efe9c32a Many files:
Fix Bug #1942: do not retrieve all columns in a table if we only need the 'ref' of the row (usually, the PRIMARY KEY) to calculate an ORDER BY
2004-03-17 19:37:48 +02:00
monty@mysql.com
350b433569 merge with 4.0 2004-03-16 22:41:30 +02:00
acurtis@pcgem.rdg.cyberkinetica.com
0a27eef814 Cleanup ha_checktype() and redundant variables. 2004-03-02 10:08:50 +00:00
guilhem@mysql.com
bce65d4b76 Fix for BUG#3015
"(binlog, position) stored by InnoDB for a replication slave can be wrong".
This code contains conditional #if to distinguish between versions;
it should be merged into 4.1 and 5.0.
2004-03-01 15:15:58 +01:00
heikki@hundin.mysql.fi
b35e1f01bb ha_innodb.cc:
Add diagnostic code to analyze an assertion failure in ha_innodb.cc on line 2020 reported by a user (Bug #2903)
2004-02-24 17:38:47 +02:00
monty@mashka.mysql.fi
1ae05760ac Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mashka.mysql.fi:/home/my/mysql-4.1
2004-02-22 11:01:28 +02:00
heikki@hundin.mysql.fi
e17e1901f2 ha_innodb.cc, data0type.c, data0type.ic, data0type.h:
Change some inline functions to normal functions, so that they can be called in ha_innodb.cc; this removes the the remaining linking problems reported by Paul DuBois
2004-02-21 10:21:29 +02:00
monty@mashka.mysql.fi
494e43c1f5 merge with 4.0 to get security fixes and latest bug fixes 2004-02-20 17:43:02 +02:00
heikki@hundin.mysql.fi
af0d9a709c rem0cmp.c, data0type.c, data0type.ic, data0type.h, ha_innodb.cc:
Remove the now redundant flag DATA_NONLATIN1; better comments
2004-02-20 11:21:12 +02:00
heikki@hundin.mysql.fi
4bed5784dd Many files:
Multiple charset support for InnoDB; note that if you create tables and the default charset-collation is not latin1_swedish_ci, then you cannot use those tables if you downgrade to 4.0 again
2004-02-19 20:07:02 +02:00
heikki@hundin.mysql.fi
f5fedf54e4 ha_innodb.cc:
Make the drop InnoDB database operation aware of the setting FOREIGN_KEY_CHECKS=0; DROP DATABASE seems to work ok anyway, but that is because MySQL first calls DROP TABLE for each table which has an .frm file
2004-02-16 09:58:47 +02:00
monty@mysql.com
ce14578909 Merge with 4.0.18 2004-02-11 00:06:46 +01:00
heikki@hundin.mysql.fi
d9790a406c row0mysql.c:
Allow always DROPping of a table which is only referenced by FOREIGN KEY constraints from the same table
Many files:
  Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
2004-02-09 23:57:29 +02:00
heikki@hundin.mysql.fi
d7b9d5c9e8 ha_innodb.cc:
If AUTOCOMMIT=1, then we do not need to make a plain SELECT set shared locks even on the SERIALIZABLE isolation level, because we know the transaction is read-only: a read-only transaction can always be performed on the REPEATABLE READ level, and that does not endanger the serializability
2004-02-08 12:53:31 +02:00
heikki@hundin.mysql.fi
7533b0cfff dict0dict.c:
Remove redundant code; parse both the database name and the table name in a FOREIGN KEY constraint with quotes in mind
row0mysql.c, ha_innodb.cc, sql_table.cc:
  Return error message Cannot delete or update a parent row... if we try to drop a table which is referenced by a FOREIGN KEY constraint, and the user has not set foreign_key_checks=0
2004-02-02 00:10:45 +02:00
monty@mysql.com
c1dd070ba7 Some small portability fixes.
Added support for lower_case_table_names=2, which is to be used on case insensitive file systems.
This tells MySQL to preserve the used case of filenames and database names to make it esier to move files between cases sensitive can case insensitive file systems (like Windows and Linux)
2003-12-30 13:14:21 +02:00
guilhem@mysql.com
0fb8aec1af Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/mysql_src/mysql-5.0-new-binlog-format
2003-12-20 00:40:07 +01:00
guilhem@mysql.com
1333f636ae Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/mysql_src/mysql-5.0-new-binlog-format
2003-12-19 23:05:07 +01:00
sergefp@mysql.com
23b25675f2 Merge mysql.com:/home/psergey/mysql-5.0-latest-pull
into mysql.com:/dbdata/psergey/mysql-5.0-imerge-unique
2003-12-20 00:54:38 +03:00
konstantin@oak.local
d37da004f6 THD::lex now points to THD::main_lex like in 5.0
All tests pass (client_test included)
2003-12-19 20:52:13 +03:00
pem@mysql.com
99e0ae85c7 Merge 4.1 to 5.0. 2003-12-19 18:03:27 +01:00
monty@mysql.com
031390a9a4 Fixes after merge with 4.0
Cleaned up embedded library access and query cache handling
Changed min stack size to 128K (to allow longer MyISAM keys)
Fixed wrong priority for XOR (should be less than NEG to get -1^1 to work)
2003-12-19 16:25:50 +02:00
sergefp@mysql.com
67c6d5113c Precise read time estimates for index_merge/Unique 2003-12-18 06:08:00 +03:00
guilhem@gbichot2
66a32e8925 This will be pushed only after I fix the testsuite.
This is the main commit for Worklog tasks:
 * A more dynamic binlog format which allows small changes (1064)
 * Log session variables in Query_log_event (1063)
Below 5.0 means 5.0.0.
MySQL 5.0 is able to replicate FOREIGN_KEY_CHECKS, UNIQUE_KEY_CHECKS (for speed),
SQL_AUTO_IS_NULL, SQL_MODE. Not charsets (WL#1062), not some vars (I can only think
of SQL_SELECT_LIMIT, which deserves a special treatment). Note that this
works for queries, except LOAD DATA INFILE (for this it would have to wait
for Dmitri's push of WL#874, which in turns waits for the present push, so...
the deadlock must be broken!). Note that when Dmitri pushes WL#874 in 5.0.1,
5.0.0 won't be able to replicate a LOAD DATA INFILE from 5.0.1.
Apart from that, the new binlog format is designed so that it can tolerate
a little variation in the events (so that a 5.0.0 slave could replicate a
5.0.1 master, except for LOAD DATA INFILE unfortunately); that is, when I
later add replication of charsets it should break nothing. And when I later
add a UID to every event, it should break nothing.
The main change brought by this patch is a new type of event, Format_description_log_event,
which describes some lengthes in other event types. This event is needed for
the master/slave/mysqlbinlog to understand a 5.0 log. Thanks to this event,
we can later add more bytes to the header of every event without breaking compatibility.
Inside Query_log_event, we have some additional dynamic format, as every Query_log_event
can have a different number of status variables, stored as pairs (code, value); that's
how SQL_MODE and session variables and catalog are stored. Like this, we can later
add count of affected rows, charsets... and we can have options --don't-log-count-affected-rows
if we want.
MySQL 5.0 is able to run on 4.x relay logs, 4.x binlogs.
Upgrading a 4.x master to 5.0 is ok (no need to delete binlogs),
upgrading a 4.x slave to 5.0 is ok (no need to delete relay logs);
so both can be "hot" upgrades.
Upgrading a 3.23 master to 5.0 requires as much as upgrading it to 4.0.
3.23 and 4.x can't be slaves of 5.0.
So downgrading from 5.0 to 4.x may be complicated.
Log_event::log_pos is now the position of the end of the event, which is
more useful than the position of the beginning. We take care about compatibility
with <5.0 (in which log_pos is the beginning).
I added a short test for replication of SQL_MODE and some other variables.
TODO:
- after committing this, merge the latest 5.0 into it
- fix all tests
- update the manual with upgrade notes.
2003-12-18 01:09:05 +01:00
monty@mysql.com
e0cc6799ec Merge with 4.0.17 2003-12-17 17:35:34 +02:00
monty@mysql.com
f995a5f4aa Fix autoincrement for signed columns (Bug #1366)
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
Disable creation of symlinks if my_disable_symlink is set
Fixed searching of TEXT with end space. (Bug #1651)
Fixed caching bug in multi-table-update where same table was used twice. (Bug #1711)
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
Fixed timestamp.test
2003-12-12 22:26:58 +02:00
sergefp@mysql.com
60563049e9 Merge mysql.com:/home/psergey/mysql-5.0-latest-pull
into mysql.com:/home/psergey/mysql-5.0-imerge-unique
2003-12-09 23:41:25 +03:00
sergefp@mysql.com
24c180941f Two-sweeps read index_merge plus several small index_merge fixes and improvements 2003-12-09 23:40:02 +03:00
pem@mysql.com
6e717133c5 Merge 4.1 to 5.0 2003-12-01 16:14:40 +01:00
monty@mysql.com
ede8169d24 Added missing SSL library (Should be in source distribution)
Fixed compiler warnings (a lot of hidden variables detected by the Forte compiler)
Added a lot of 'version_xxx' strings to 'show variables'
Prevent copying of TMP_TABLE_PARAM (This caused core dump bug on Solaris)
Fixed problem with printing sub selects to debug log
2003-11-28 12:18:13 +02:00
monty@mysql.com
7c725b2486 Fixed compiler warnings from Intel compiler in Win64
Added option --max-record-length=# to myisamchk
Don't try repair twice if doing myisamchk --repair --force
Shared memory handler didn't clean up things on errors or shutdown
2003-11-23 14:36:41 +02:00
monty@mysql.com
c2e44ba772 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/my/mysql-4.1
2003-11-22 04:01:08 +02:00
monty@mysql.com
d87494c5ac Don't flush cur_log (relay log) on flush_relay_log_info becasue this crashes the server if cur_log is 'hot' and the io_thread has changed log file.
Updated project files for windows
Made rpl_change_master.test portable
Ensure that mutex are not freed if not initilized
2003-11-22 03:21:40 +02:00
heikki@hundin.mysql.fi
f8e9f31e93 os0file.c:
Fix the OS error 2 reported by Miguel and Mark in Windows crash recovery: a * had been forgotten from the path in directory scanning
ha_innodb.cc:
  Set default directory in fil0fil.c right if we are running the Embedded Server Library, where the default dir of the process is not necessarily the MySQL datadir
2003-11-21 17:01:35 +02:00
monty@mysql.com
7c6113a39f Merge key cache structures to one
Fixed compiler warnings (IRIX C compiler and VC++)
2003-11-20 22:06:25 +02:00
pem@mysql.com
337238b78a Merging 4.1->5.0 2003-10-22 16:10:22 +02:00
heikki@hundin.mysql.fi
91f5c5e337 thr0loc.c, srv0start.c, srv0srv.c, srv0srv.h, os0thread.h, ha_innodb.cc:
Backport from 4.1: reduce InnoDB memory consumption if buf pool < 8 MB
2003-10-17 23:44:34 +03:00
heikki@hundin.mysql.fi
d3827c1b22 row0purge.c, row0mysql.c, os0file.c, os0file.h, fil0fil.h, fil0fil.c:
IMPORT TABLESPACE must reset lsns if they are too high
ha_innodb.cc:
  DISCARD/IMPORT TABLESPACE must have a TL_WRITE lock on the table
2003-10-14 14:53:16 +03:00
heikki@hundin.mysql.fi
5ec87f2449 Many files:
ALTER TABLE ... DISCARD/IMPORT TABLESPACE
  Track crash in buf_LRU_block_remove_hashed_page + 1807 reported in MySQL-3.23.5x
2003-10-13 11:20:19 +03:00
heikki@hundin.mysql.fi
6112853cda Many files:
Multiple tablespaces for InnoDB
sql_table.cc:
  Tell explicitly that InnoDB should retrieve all columns in CHECKSUM TABLE
sql_update.cc, sql_select.cc, my_base.h:
  More descriptive flag name HA_EXTRA_RETRIEVE_ALL_COLS
2003-10-07 17:28:59 +03:00
pem@mysql.com
8d884c02bb Merging 4.1 -> 5.0 2003-09-24 11:29:38 +02:00
hf@deer.(none)
a2dbfaefa3 SCRUM
embedded library
hash_insert renamed to my_hash_insert to avoid name intersection
with another libraries
is there better idea?
2003-09-19 14:44:31 +05:00
monty@mashka.mysql.fi
c477002fd4 Fix results for mix_innodb_myisam_binlog
Optimize calls to current_thd
2003-09-12 05:54:12 +03:00
monty@mashka.mysql.fi
45aa92c574 After merge fixes.
Note that mix_innodb_myisam_binlog and union fails after this patch (Will be fixed shortly by maintaners of this code)
2003-09-11 19:06:23 +03:00
monty@narttu.mysql.fi
77a70a0a24 merge with 4.0.15 2003-08-29 13:44:35 +03:00
pem@mysql.com
7f158dd12a Merge 4.1 into 5.0 2003-08-26 11:51:09 +02:00
Sinisa@sinisa.nasamreza.org
fb774125e8 item_func.h:
Fix for a bug with LEAST() in WHERE clause
ha_innodb.cc:
  Fix for a configure bug
multi_update.result, multi_update.test:
  Fix for the update with NULL's in the result set
sql_update.cc:
  Fix for the update with NULL's in the result set
   Fix for the update with NULL's in the result set
   Fix for the update with NULL's in the result set
2003-08-20 15:33:21 +03:00