Commit graph

134 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
marko@hundin.mysql.fi
7f2a007496 InnoDB: Remove ut_str_contains() and replace it with strchr() 2004-03-31 11:26:56 +03:00
marko@hundin.mysql.fi
9ed26f721d InnoDB: Replace ut_a(0) with ut_error 2004-03-13 22:48:00 +02:00
marko@hundin.mysql.fi
4573eb566c Allow UNIV_SYNC_DEBUG to be disabled while UNIV_DEBUG is enabled 2004-03-12 17:14:51 +02:00
marko@hundin.mysql.fi
5b5d749294 More consistent handling of magic numbers 2004-03-11 23:12:02 +02:00
marko@hundin.mysql.fi
a68a1ed0ca Remove unneeded module "com" 2004-03-11 12:55:28 +02:00
heikki@hundin.mysql.fi
86932a0b79 row0upd.c:
Fix bug: in a FOREIGN KEY, ON UPDATE CASCADE was not triggered if the update changed a string to another value identical in alphabetical ordering, e.g., abc -> aBc
2004-02-27 16:54:16 +02:00
marko@hundin.mysql.fi
234e9abf6a Many files:
Removed unused code
.del-os0trash.c~8cae5c1695501117:
  Delete: innobase/os/os0trash.c
dict0crea.c:
  Protect all sprintf(%s) with assertions
2004-02-20 16:34:09 +02:00
marko@hundin.mysql.fi
42b18e6fab Remove unnecessary files
.del-univoldmysql.i~9253a6f92058c565:
  Delete: innobase/include/univoldmysql.i
.del-univold.i~4b5ed652407f63f1:
  Delete: innobase/include/univold.i
.del-tsut.c~4a154913fc9cd5c0:
  Delete: innobase/ut/ts/tsut.c
.del-makefile~9b8356bbdb8bd94e:
  Delete: innobase/ut/ts/makefile
.del-tsttrxold.c~eb6fd6091405d54e:
  Delete: innobase/trx/ts/tsttrxold.c
.del-tstrx.c~5425c98548ec1e0d:
  Delete: innobase/trx/ts/tstrx.c
.del-makefile~16d63c17c8edf62a:
  Delete: innobase/trx/ts/makefile
.del-tsthr.c~b095667070d626a9:
  Delete: innobase/thr/ts/tsthr.c
.del-makefile~d5e4661188c1939d:
  Delete: innobase/thr/ts/makefile
.del-tssync.c~fed4676cd4eb8457:
  Delete: innobase/sync/ts/tssync.c
.del-makefile~f23368879649c806:
  Delete: innobase/sync/ts/makefile
.del-tssrv.c~b8a6f5ad9ae639c8:
  Delete: innobase/srv/ts/tssrv.c
.del-tsdbc.c~d36206bdccf338f:
  Delete: innobase/srv/ts/tsdbc.c
.del-makefile~da6e87ef29c12dca:
  Delete: innobase/srv/ts/makefile
.del-tstcur.c~a9d5cf73b020ec41:
  Delete: innobase/row/ts/tstcur.c
.del-makefile~2cdfe39689004e6:
  Delete: innobase/row/ts/makefile
.del-tsrem.c~bb4e1e2e8c2ee179:
  Delete: innobase/rem/ts/tsrem.c
.del-makefile~3e48a33b4970faef:
  Delete: innobase/rem/ts/makefile
.del-tspage.c~f5baf63f9924e43b:
  Delete: innobase/page/ts/tspage.c
.del-makefile~66de73bc499566f9:
  Delete: innobase/page/ts/makefile
.del-tsosaux.c~9ec97a83392a984c:
  Delete: innobase/os/ts/tsosaux.c
.del-tsos.c~f6057d3c171f5915:
  Delete: innobase/os/ts/tsos.c
.del-makefile~9a1d210afa6d666e:
  Delete: innobase/os/ts/makefile
.del-tsmtr.c~293250c7ebfe0d3:
  Delete: innobase/mtr/ts/tsmtr.c
.del-tsbuf.c~e8d15ee095194d2c:
  Delete: innobase/mtr/ts/tsbuf.c
.del-makefile~fdf4c2a4ddb23230:
  Delete: innobase/mtr/ts/makefile
.del-tsmem.c~cc483e2ab96e625c:
  Delete: innobase/mem/ts/tsmem.c
.del-makefile~6d58ab1de0ac572:
  Delete: innobase/mem/ts/makefile
.del-tsmach.c~af65166bb53ddfe9:
  Delete: innobase/mach/ts/tsmach.c
.del-makefile~b8cbd25992ee51b:
  Delete: innobase/mach/ts/makefile
.del-tsha.c~13dd5ea03fda370c:
  Delete: innobase/ha/ts/tsha.c
.del-makefile~1bf12ce7b2dadfd5:
  Delete: innobase/ha/ts/makefile
.del-tsfsp.c~890ead1636f0eaba:
  Delete: innobase/fsp/ts/tsfsp.c
.del-makefile~a466e9eb27493a80:
  Delete: innobase/fsp/ts/makefile
.del-del.c~35c6283be580200:
  Delete: innobase/fsp/ts/del.c
.del-tsfil.c~e554b6f3c189c081:
  Delete: innobase/fil/ts/tsfil.c
.del-makefile~1df6f952a960fef4:
  Delete: innobase/fil/ts/makefile
.del-tsdyn.c~6f976764b53f3191:
  Delete: innobase/dyn/ts/tsdyn.c
.del-makefile~f64427335fafdc65:
  Delete: innobase/dyn/ts/makefile
.del-tsdict.c~5e82f7b8ac2b2e15:
  Delete: innobase/dict/ts/tsdict.c
.del-makefile~6356c424e9747647:
  Delete: innobase/dict/ts/makefile
.del-tscom.c~26aae2c5c4ca1dce:
  Delete: innobase/com/ts/tscom.c
.del-tscli.c~2f3e4b281141eac2:
  Delete: innobase/com/ts/tscli.c
.del-makefile~608fd39568db7238:
  Delete: innobase/com/ts/makefile
.del-tsos.c~1dadfc1ef69f2ba3:
  Delete: innobase/buf/ts/tsos.c
.del-tsbuf.c~b4c3feee158ef154:
  Delete: innobase/buf/ts/tsbuf.c
.del-makefile~598acb06bf1e466:
  Delete: innobase/buf/ts/makefile
.del-tscli.c~8d35740cc1f6f864:
  Delete: innobase/btr/ts/trash/tscli.c
.del-tssrv.c~ee30b746c485aec:
  Delete: innobase/btr/ts/tssrv.c
.del-tss.c~21ae628550141a68:
  Delete: innobase/btr/ts/tss.c
.del-tsrecv97.c~dbeb3bc494b241c1:
  Delete: innobase/btr/ts/tsrecv97.c
.del-tsrecv.c~3415f8a936a8d9fd:
  Delete: innobase/btr/ts/tsrecv.c
.del-tscli.c~77fc1962db99aa2e:
  Delete: innobase/btr/ts/tscli.c
.del-tsbtrold5.c~72a60e768c944904:
  Delete: innobase/btr/ts/trash/tsbtrold5.c
.del-tsbtrins.c~3e3bb3f95f058b46:
  Delete: innobase/btr/ts/tsbtrins.c
.del-TSIT.C~f53cce6fab8d325:
  Delete: innobase/btr/ts/trash/TSIT.C
.del-tsbtrfull.c~fbcbe41b64cc71b6:
  Delete: innobase/btr/ts/tsbtrfull.c
.del-tsbtr97.c~84dbb84ea9fa267c:
  Delete: innobase/btr/ts/tsbtr97.c
.del-makefile~491918b4162b927c:
  Delete: innobase/btr/ts/makefile
.del-isql.c~bc0b8cc213905175:
  Delete: innobase/btr/ts/isql.c
2004-02-19 11:32:07 +02: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
d2d1e6f726 row0mysql.c:
Fix crash in InnoDB RENAME TABLE if 'databasename/tablename' is shorter than 5 characters (Bug #2689); reported by Sergey Petrunia
2004-02-09 18:56:39 +02:00
heikki@hundin.mysql.fi
836e0b057a Many files:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
sync0sync.c:
  UNIV_SYNC_DEBUG caused assertion in the creation of the doublewrite buffer, if we do not allow thousands of latches per thread
2004-02-09 01:32:00 +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
heikki@hundin.mysql.fi
9b04e7b9bb data0data.ic, data0data.h, row0sel.c:
Fix bug #2483 with InnoDB, UNIQUE secondary index, and NULL values in that unique index; with the IS NULL predicate, InnoDB returned only the first matching row, though there can be many
2004-01-27 20:10:04 +02:00
heikki@hundin.mysql.fi
15e64c3591 row0ins.c:
Fix bug: FOREIGN KEY ... ON UPDATE/DELETE NO ACTION must check the foreign key constraint, not ignore it. Peter Gulutzan said that NO ACTION should check the constraint as deferred, at the end of the SQL statement, while RESTRICT should check it immediately. Since we do not have defered constraints in InnoDB, this bug fix makes InnoDB to check NO ACTION constraints immediately, like it checks RESTRICT constraints.
2004-01-14 16:21:54 +02:00
heikki@hundin.mysql.fi
6d9aca5069 btr0cur.c, row0umod.c:
Fix bug: if one updated a secondary index column so that its alphabetical value did not change (e.g., abc -> aBc) and rolled back the update, InnoDB failed to return the value in the secondary index to its original value
row0upd.h:
  Correct typing error
sync0sync.ic:
  Remove inadvertently pushed sync debug code
2003-12-13 01:31:59 +02:00
heikki@hundin.mysql.fi
75a662fb3c row0upd.h, row0upd.c:
Remove wrong debug assertion and comment
2003-12-12 08:09:25 +02:00
heikki@hundin.mysql.fi
d3d9b727eb Many files:
Fix assertion failure on line 713 of row0upd.c if there is a column prefix index and the last characters in the prefix are spaces: do not assume that the length of alphabetically equal strings is the same; fix a buglet which could cause InnoDB to think that a secondary index record was not locked though it had been updated in a way which did not alpahabetically change its value, e.g., abc -> aBc
2003-12-12 07:51:21 +02:00
heikki@hundin.mysql.fi
de6cc5f018 row0sel.c:
If innodb_force_recovery >= 5, do not try to fetch an old version of a clustered index record: this reduces crashes when dumping tables from a corrupt database
2003-10-28 15:55:18 +02:00
heikki@hundin.mysql.fi
216c0a90cd row0mysql.c:
Remove unintentional changes in previous push
2003-10-06 10:50:12 +03:00
heikki@hundin.mysql.fi
da57c25159 row0mysql.c:
Fix bug: if one used the rename trick of ibman section 15.1 to recover a temp table, InnoDB asserted because it tried to lock the data dictionary twice
2003-10-06 10:46:22 +03:00
heikki@hundin.mysql.fi
3b7140aed0 row0sel.c:
Fix buglets in previous push
2003-09-12 01:35:32 +03:00
heikki@hundin.mysql.fi
be05042bae 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
2003-09-12 00:31:43 +03:00
heikki@hundin.mysql.fi
7be1beb2d3 row0mysql.c:
Fix performance bug: if there were thousands of tables, DROP TABLE could take as much as a second CPU time
2003-07-06 18:01:51 +03:00
heikki@hundin.mysql.fi
2a1f87ff72 Many files:
Remove potential starvation of a full log buffer flush: only flush up to the lsn which was the largest at the time when we requested the full log buffer flush
os0sync.h, os0sync.c:
  Fix a bug in os_event on Unix: even though we signaled the event, some threads could continue waiting if the event became nonsignaled quickly again; this made group commit less efficient than it should be
2003-07-03 21:25:55 +03:00
heikki@hundin.mysql.fi
b8cc47797a row0vers.c:
Add forgotten mutex_enter()
2003-06-18 03:53:18 +03:00
heikki@hundin.mysql.fi
6d4fe0280f row0vers.c:
Add forgotten mtr_commit()
2003-06-18 03:49:34 +03:00
heikki@hundin.mysql.fi
d970e339dd row0sel.c, row0ins.c:
Fix error in previous push
2003-06-18 03:38:09 +03:00
heikki@hundin.mysql.fi
01eb3d1e62 row0vers.c, row0sel.c, row0ins.c:
Fix bug: InnoDB could print that it cannot find a clustered index record if an update undo, purge, and a consistent read coincided, in rare cases it might also have returned a wrong row in a query
2003-06-18 02:18:19 +03:00
heikki@hundin.mysql.fi
29796e6240 row0mysql.c, dict0dict.ic:
Cleanup
ha_innodb.cc, data0type.h:
  Make sure non-latin1 users can downgrade from 4.0.14 to an earlier version if they have not created DATA_BLOB column prefix indexes
2003-06-16 00:39:46 +03:00
heikki@hundin.mysql.fi
4da7f485b7 Many files:
Merge InnoDB-4.0.14: SAVEPOINT now implemented; InnoDB now accepts also column prefix keys; crashing bug in ON UPDATE CASCADE fixed; page checksum formula fixed
2003-06-15 01:04:28 +03:00
heikki@hundin.mysql.fi
4ac8d7b963 row0ins.c:
Disable UNIQU KEY error reporting in SHOW INNODB STATUS until we know if it slows down REPLACE significantly
2003-05-22 00:05:33 +03:00
heikki@hundin.mysql.fi
aa92b8ecd1 row0ins.c, dict0dict.c, dict0dict.h, srv0srv.c:
Let SHOW INNODB STATUS print detailed info of the latest unique key violation, note that REPLACE and INSERT IGNORE mask the error from the user
2003-05-04 23:24:23 +03:00
heikki@hundin.mysql.fi
35fd869e51 Many files:
Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
2003-05-03 02:29:40 +03:00
heikki@hundin.mysql.fi
32a987834f row0mysql.c:
Give sensible advice to the user if InnoDB notices index corruption
2003-04-23 02:51:25 +03:00
heikki@hundin.mysql.fi
f787cb1434 row0sel.c:
Do not allow InnoDB to cache result set in HANDLER because user can use PREV and NEXT and scroll the cursor
2003-04-17 02:51:50 +03:00
heikki@hundin.mysql.fi
3a77f47a04 ha_innodb.cc, row0sel.c, row0mysql.c, row0mysql.h:
Allow HANDLER PREV and NEXT also after positioning the cursor with a unique search on the primary key
2003-04-17 02:28:40 +03:00
heikki@hundin.mysql.fi
5112674d70 row0ins.c:
Better fix for the ON DELETE SET NULL problem
2003-04-16 23:05:22 +03:00
heikki@hundin.mysql.fi
609c8d9c62 row0ins.c:
Fix bug: we did not allow ON DELETE SET NULL to modify the same table where the delete was made; we can allow it because that cannot produce infinite loops cascaded operations
2003-04-16 22:50:12 +03:00
heikki@hundin.mysql.fi
c60ca95e06 row0sel.c:
Fix crash in HANDLER PREV or NEXT if the cursor was positioned using a unique search condition on the primary key: in that case InnoDB does NOT store the cursor position for later fetch prev or next
2003-04-16 21:36:42 +03:00
heikki@hundin.mysql.fi
f841b4ae23 Many files:
Merge InnoDB-4.0.13; DROP FOREIGN KEY now works
2003-04-16 16:45:01 +03:00
lenz@mysql.com
dbe145f015 - Fixed bug in "make DESTDIR=<dir> install" - the InnoDB static
libraries always ended up in "dir..", even though they were not supposed
   to be installed anyway (they are only required at link time). Fixed it by
   replacing libs_LIBRARIES with noinst_LIBRARIES for all InnoDB Makefile.am 
   files and by removing "libsdir = " from innobase/include/Makefile.i .
2003-04-10 20:03:52 +02:00
monty@narttu.mysql.fi
c2fa342d53 Merge with 3.23 to get fix for halloween problem on Update of InnoDB tables 2003-03-18 03:19:20 +02:00
heikki@hundin.mysql.fi
852b1b3dc5 row0mysql.c:
Test if merging from 3.23 to 4.0 succeeds
2003-03-16 14:40:41 +02:00
heikki@hundin.mysql.fi
008e1d29a3 row0sel.c:
Fix bug number 154: GROUP BY and DISTINCT could treat NULL values inequal
2003-03-15 20:05:55 +02:00
heikki@hundin.mysql.fi
c4370278a0 row0sel.c:
Fix bug number 154: GROUP BY and DISTINCT could treat NULL values inequal
2003-03-15 20:05:03 +02:00
heikki@hundin.mysql.fi
61ccb631bb row0sel.c:
Print a warning if MySQL uses a partial-field key value prefix in a search; that would not work if the search flag would happen to be HA_READ_PREFIX_LAST
2003-02-19 19:38:38 +02:00
heikki@hundin.mysql.fi
91ba134512 btr0btr.h, btr0btr.c, row0purge.c:
Backport from 4.0: fix the BLOB hang if the index tree is of height 1
2003-01-16 01:21:13 +02:00
heikki@hundin.mysql.fi
7424bf2ea9 btr0cur.h, btr0btr.h, btr0btr.c, btr0cur.c, row0purge.c:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
2003-01-13 15:52:39 +02:00
heikki@hundin.mysql.fi
843e1d8e9c Many files:
Merge InnoDB-4.0.7. Support for ON UPDATE CASCADE
sql_select.cc:
  Remove superfluous prints to .err log when a locking SELECT fails to a deadlock or a lock wait timeout
2002-12-22 01:54:29 +02:00