MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
unknown c3da2d12f7 Fix for bug #5888 "Triggers with nonexistent columns cause packets
out of order". (final version)

Now instead of binding Item_trigger_field to TABLE objects during
trigger definition parsing at table open, we perform pass through
special list of all such objects in trigger. This allows easily check
all references to fields in old/new version of row in trigger during
execution of CREATE TRIGGER statement (this is more courtesy for users
since we can't check everything anyway).
We also report that such reference is bad by returning error from
Item_trigger_field::fix_fields() method (instead of setup_field())
This means that if trigger is broken we will bark during trigger
execution instead of trigger definition parsing at table open.
(i.e. now we allow to open tables with broken triggers).


mysql-test/r/trigger.result:
  Added test which attempts to create trigger for table referencing to
  field which does not exist in this table.
mysql-test/t/trigger.test:
  Added test which attempts to create trigger for table referencing to
  field which does not exist in this table.
sql/item.cc:
  Item_trigger_field::setup_field() now returns void. If any error
  will occur we will report it at fix_fields() stage.
sql/item.h:
  Item_trigger_field:
  - Added next_trg_field member for linking all such objects in trigger
    in one list.
  - Also setup_field() now returns void. If any error will occur we will
    report it at fix_fields() stage.
sql/mysql_priv.h:
  Added SQL_LIST::push_back() method which allows to add another SQL_LIST
  to the end of this SQL_LIST.
sql/sp_head.cc:
  sp_head::init()/reset_lex()/restore_lex():
   In order to fill global LEX::trg_table_fields (list of all 
   Item_trigger_field objects for trigger) we should init the same list
   in LEX of substatement before its parsing and merge it to global list
   after parsing.
sql/sp_head.h:
  sp_instr_trigger_field:
    Made trigger_field member public to be able to add it more easily to
    global list of all Item_trigger_field objects in trigger.
sql/sql_lex.cc:
  LEX::trg_table was removed.
sql/sql_lex.h:
  Now we are binding Item_trigger_field's to TABLE object by passing
  through specially constructed list of all such objects in this trigger
  instead of doing this during trigger definition parsing at table open.
  So we no longer need LEX::trg_table, we use LEX::trg_table_fields list
  instead.
sql/sql_parse.cc:
  mysql_execute_command():
    Since now we use trigger body for some checks in
    mysql_create_or_drop_trigger() we should destroy it only
    after calling this function.
sql/sql_trigger.cc:
  Now instead of binding Item_trigger_field to TABLE objects during
  trigger definition parsing at table open, we perform pass through
  special list of all such objects in trigger. This allows easily check
  all references to fields in old/new version of row in trigger during
  execution of CREATE TRIGGER statement (this is more courtesy for users
  since we can't check everything anyway).
  We also report that such reference is bad by returning error from
  Item_trigger_field::fix_fields() method (instead of setup_field())
  This means that if trigger is broken we will bark during trigger
  execution instead of trigger definition parsing at table open.
  (i.e. now we allow to open tables with broken triggers).
  
  Table_triggers_list::prepare_old_row_accessors() method was added to be
  able to reuse code creating Field objects referencing TABLE::record[1]
  buffer instead of TABLE::record[0].
sql/sql_trigger.h:
  Added Table_triggers_list::prepare_old_row_accessors() method to be
  able to reuse code creating Field objects referencing to TABLE::record[1]
  instead of record[0].
sql/sql_yacc.yy:
  Now instead of performing binding of Item_trigger_field objects
  to TABLE object during trigger definition parsing at table open,
  we perform this binding by passing through specially constructed
  list of all such items in trigger.
  We also check value returned from memory allocation functions.
2004-11-24 12:24:02 +03:00
bdb bdb bugfix: LTLIBOBJS didn't take --disable-shared into account 2004-08-23 13:55:40 +02:00
BitKeeper Added --disable-log-bin option to the mysqlbinlog (WL1787) 2004-11-19 18:35:36 +03:00
BUILD use distclean in BUILD/compile* scripts to make sure .deps dirs go 2004-11-23 15:11:49 +01:00
Build-tools merge with 4.0 2004-11-12 11:17:53 +02:00
client Merge kite-hub.kitebird.com:/src/extern/MySQL/bk/mysql-4.1 2004-11-20 15:22:57 -06:00
cmd-line-utils Fixed a bug in vis.c 2004-10-22 19:21:54 +03:00
dbug don't fail if dbug manual cannot be built 2004-11-17 12:28:44 +01:00
Docs Merge kite-hub.kitebird.com:/src/extern/MySQL/bk/mysql-4.1 2004-11-12 14:44:14 -06:00
extra merged 2004-11-22 21:33:15 +01:00
heap Bug #6748 heap_rfirst() doesn't work (and never did!) 2004-11-22 14:53:18 +01:00
include Merge bk-internal:/home/bk/mysql-5.0 2004-11-22 22:58:34 +01:00
innobase Merge bk-internal:/home/bk/mysql-5.0 2004-11-22 22:58:34 +01:00
isam Merge with 4.0 2004-09-01 04:12:09 +03:00
libmysql merged 2004-11-20 18:36:41 +01:00
libmysql_r manually merged 2004-08-18 19:57:55 +02:00
libmysqld merge 2004-11-12 15:36:31 +02:00
man - added mysqlman.1.in to the source distribution (generic fallback 2004-07-20 18:24:36 +02:00
merge Fix skipp -> skip once and for all. 2004-06-03 11:52:54 -05:00
myisam Merge serg.mylan:/usr/home/serg/Abk/mysql-4.1 2004-11-23 15:50:29 +01:00
myisammrg bug#5389 merge.test fails on qnx - uninitalized variable in myrg_open() 2004-09-06 22:20:40 +02:00
mysql-test Fix for bug #5888 "Triggers with nonexistent columns cause packets 2004-11-24 12:24:02 +03:00
mysys merged 2004-11-22 21:33:15 +01:00
ndb Merge serg.mylan:/usr/home/serg/Abk/mysql-4.1 2004-11-23 15:50:29 +01:00
netware merge with 4.1 2004-10-29 19:26:52 +03:00
NEW-RPMS Import changeset 2000-07-31 21:29:14 +02:00
os2 - Updated OS/2 port with files provided by Yuri Dario <mc6530@mclink.it> 2002-07-15 18:26:11 +02:00
pstack fixed bug #1661 Compiling --pstack fails with binutils 2.13.90 2004-02-16 18:09:23 +04:00
regex Fix compiler warnings (detected by Intel's C++ compiler) 2004-10-22 18:44:51 +03:00
scripts Merge with 4.1 2004-11-12 19:58:24 +02:00
server-tools work around for compiler bug (5.0.2 build fails on octane2) 2004-11-19 19:46:16 +03:00
sql Fix for bug #5888 "Triggers with nonexistent columns cause packets 2004-11-24 12:24:02 +03:00
sql-bench Merge with 4.1 2004-09-06 15:14:10 +03:00
sql-common merged 2004-11-20 18:36:41 +01:00
SSL Added missing SSL library (Should be in source distribution) 2003-11-28 12:18:13 +02:00
strings merged 2004-11-22 21:33:15 +01:00
support-files Added possibility to use [GNR...] optional argument for 2004-10-09 13:57:27 +03:00
tests More test cases are added 2004-11-23 17:41:39 +03:00
tools Merge with 4.0 2004-09-01 04:12:09 +03:00
VC++Files merged 2004-11-22 21:33:15 +01:00
vio Don't close already closed files in vio (not critical) 2004-07-12 07:38:46 +03:00
zlib WL#1518 "make bundled zlib usable for unix builds", post review fixes: 2004-07-27 10:05:55 -07:00
.bzrignore - renamed mysqladmin.c -> mysqladmin.cpp to fix the Windows builds 2004-11-22 17:08:06 +01:00
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
acinclude.m4 acinclude.m4: 2004-11-19 17:18:46 +00:00
config.guess - updated config.guess, config.sub and ltmain.sh with versions from libtool 2004-02-06 00:58:15 +01:00
config.sub - updated config.guess, config.sub and ltmain.sh with versions from libtool 2004-02-06 00:58:15 +01:00
configure.in merged 2004-11-20 18:36:41 +01:00
depcomp - Applied required modifications for automake 1.5 2002-10-01 21:57:10 +02:00
install-sh install-sh: copy not move like any reasonably modern install does 2004-07-30 18:53:54 +02:00
ltconfig libtool tweaks 2004-02-17 21:46:40 +01:00
ltmain.sh Merge with 4.0 for 4.1 release 2004-10-06 19:14:33 +03:00
Makefile.am Merge 2004-11-16 00:04:12 +01:00
missing - Applied required modifications for automake 1.5 2002-10-01 21:57:10 +02:00
mkinstalldirs Import changeset 2000-07-31 21:29:14 +02:00
README Removed URL (website is not actively maintained anymore) 2002-04-24 08:28:50 +02:00

This is a release of MySQL, a GPL (free) SQL database server (more
licence information in the PUBLIC file and in the reference manual).

Please read the "Upgrading from..." section in the manual first, if you are
migrating from older versions of MySQL!

The latest information about MySQL can be found at:
http://www.mysql.com

To see what it can do take a look at the features section in the
manual.

For installation instructions see the Installation chapter in the
manual.

For future plans see the TODO appendix in the manual.

New features/bug fixes history is in the news appendix in the manual.

For the currently known bugs/misfeatures (known errors) see the bugs
appendix in the manual.

For examples of SQL and benchmarking information see the bench
directory.

The manual mentioned above can be found in the Docs directory. The
manual is available in the following formats: as plain ASCII text in
Docs/manual.txt, in HTML format in Docs/manual_toc.html, as GNU Info in
Docs/mysql.info and as PostScript in Docs/manual.ps.

MySQL is brought to you by the MySQL team at MySQL AB

For a list of developers and other contributors, see the Credits appendix
in the manual.

************************************************************

IMPORTANT:

Send bug (error) reports, questions and comments to the mailing list
at mysql@lists.mysql.com

Please use the 'mysqlbug' script when posting bug reports or questions
about MySQL. mysqlbug will gather some information about your system
and start your editor with a form in which you can describe your
problem. Bug reports might be silently ignored by the MySQL
maintainers if there is not a good reason included in the report as to
why mysqlbug has not been used. A report that says 'MySQL does not
work for me. Why?' is not considered a valid bug report.

The mysqlbug script can be found in the 'scripts' directory of the
distribution, that is '<where-you-installed-mysql>/scripts'.