Commit graph

1523 commits

Author SHA1 Message Date
holyfoot@deer.(none)
053d90a234 WL#2645 (CHECK TABLE FOR UPGRADE)
necessary implementation in the server
mysql_upgrade script added
2006-02-17 10:52:32 +04:00
pem@mysql.com
cfba31dd46 Fixed BUG#16887: Cursor causes server segfault
The problem was a code generation bug: cpop instructions were not generated
  when using ITERATE back to an outer block from a context with a declared
  cursor; this would make it push a new cursor without popping in-between,
  eventually overrunning the cursor stack with a crash as the result.
  Fixed the calculation of how many cursors to pop (in sp_pcontext.cc:
  diff_cursors()), and also corrected diff_cursors() and diff_handlers()
  to when doing a "leave"; don't include the last context we're leaving
  (we are then jumping to the appropriate pop instructions).
2006-02-15 12:11:29 +01:00
andrey@lmy004.
d5d11a9c23 manual merge 2006-02-14 17:05:36 +01:00
andrey@lmy004.
815927e590 - final fixes for bug#16431 (Events: An event which alters itself disappears)
- fix for bug#16423 (Events: SHOW CREATE EVENT doesn't work)
- this Changeset commits makes CREATE/UPDATE/DELETE EVENT real DDL statements
  by committing the currently open transaction before they are executed.
- this Changeset also fixes a trailing space problem since the very early days
  of the internal cron
- adds sophisticated checking of whether mysql.event was tampered accidentally
  or with purpose by an user.
- adds a lot of inline function documentation - documents everything left
  uncodumented
- INTERVAL_XXXX to XXX in I_S.EVENTS.INTERVAL_FIELD

WL#1034 (Internal CRON)
2006-02-14 16:20:48 +01:00
serg@serg.mylan
b283fb79d0 MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)
remove explicit $<ulong_num>$ from sql_yacc.yy
2006-02-14 13:19:54 +01:00
bar@mysql.com
cc3623aecf Many files:
Backporting character_set_filesystem from 5.0 to 5.1.
2006-02-14 08:24:01 +04:00
bar@mysql.com
53a0372d87 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/home/bar/mysql-5.1-new.fscs
2006-02-13 11:53:56 +04:00
bar@mysql.com
611cbc2f4d renamedb.test, renamedb.result:
new file
Many files:
  WL#757 RENAME DATABASE
2006-02-13 11:49:28 +04:00
brian@zim.tangent.org
0a5a30bef3 This patch removes the remaining TYPE= code from MySQL. It cleans up a number of tests where it was being called still (and failing). Also I cleaned up all of the extra scripts so that they now work. 2006-02-12 13:26:30 -08:00
brian@zim.tangent.org
eeefb8ba7c Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  zim.tangent.org:/home/brian/raid/mysql-5.1-new
2006-02-11 17:26:32 -08:00
brian@zim.tangent.org
9485856f1a This patch is to further remove the RAID code. We removed support for people creating tables with RAID. This patch remove most of the source for this. 2006-02-11 17:21:01 -08:00
pem@mysql.com
6f170782b2 Fixed BUG#16896: Stored function: unused AGGREGATE-clause in CREATE FUNCTION
Check if AGGREGATE was given with a stored (non-UDF) function, and return
  error in that case.
  Also made udf_example/udf_test work again, by adding a missing *_init()
  function. (_init() functions required unless --allow_suspicious_udfs is
  given to the server, since March 2005 - it seems udf_example wasn't updated
  at the time.)
2006-02-09 13:00:32 +01:00
konstantin@mysql.com
e1f807af26 Merge mysql.com:/home/kostja/mysql/mysql-5.0-root
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-09 13:35:59 +03:00
konstantin@mysql.com
d4c5516929 Merge mysql.com:/home/kostja/mysql/tmp_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-08 13:11:44 +03:00
jonas@perch.ndb.mysql.com
69b33265cf merge 2006-02-06 21:52:27 +01:00
pem@mysql.com
2d340a875c Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug16568/mysql-5.0
2006-02-06 14:09:14 +01:00
anozdrin@mysql.com
4d8a51ca9d Merge mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.0-rev-1.2004.2.1
into  mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.1-tree
2006-02-06 15:23:17 +03:00
konstantin@mysql.com
9f0bb47f87 Merge mysql.com:/home/kostja/mysql/tmp_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-02 23:27:06 +03:00
konstantin@mysql.com
065f8066d5 Merge mysql.com:/home/kostja/mysql/mysql-5.0-for_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-02 12:03:35 +03:00
anozdrin@mysql.com
0a1f7e921b Fix for BUG#9412: Triggers: should have trigger privilege.
Implement table-level TRIGGER privilege to control access to triggers.
Before this path global SUPER privilege was used for this purpose, that
was the big security problem.

In details, before this patch SUPER privilege was required:
  - for the user at CREATE TRIGGER time to create a new trigger;
  - for the user at DROP TRIGGER time to drop the existing trigger;
  - for the definer at trigger activation time to execute the trigger (if the
    definer loses SUPER privilege, all its triggers become unavailable);

This patch changes the behaviour in the following way:
  - TRIGGER privilege on the subject table for trigger is required:
    - for the user at CREATE TRIGGER time to create a new trigger;
    - for the user at DROP TRIGGER time to drop the existing trigger;
    - for the definer at trigger activation time to execute the trigger
      (if the definer loses TRIGGER privilege on the subject table, all its
      triggers on this table become unavailable).
  - SUPER privilege is still required:
    - for the user at CREATE TRIGGER time to explicitly set the trigger
      definer to the user other than CURRENT_USER().

When the server works with database of the previous version (w/o TRIGGER
privilege), or if the database is being upgraded from the previous versions,
TRIGGER privilege is granted to whose users, who have CREATE privilege.
2006-02-01 13:28:45 +03:00
dlenev@mysql.com
7715538018 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg16829
2006-01-31 15:51:55 +03:00
andrey@lmy004.
9d7d8767dd post-commit merge 2006-01-30 14:28:48 +01:00
andrey@lmy004.
d847ac54ca fix for bug#16642 (Events: No INFORMATION_SCHEMA.EVENTS table)
post-review change - use pointer instead of copy on the stack.
WL#1034 (Internal CRON)
 This patch adds INFORMATION_SCHEMA.EVENTS table with the following format:
  EVENT_CATALOG  - MYSQL_TYPE_STRING  (Always NULL)
  EVENT_SCHEMA   - MYSQL_TYPE_STRING  (the database)
  EVENT_NAME     - MYSQL_TYPE_STRING  (the name)
  DEFINER        - MYSQL_TYPE_STRING  (user@host)
  EVENT_BODY     - MYSQL_TYPE_STRING  (the body from mysql.event)
  EVENT_TYPE     - MYSQL_TYPE_STRING  ("ONE TIME" | "RECURRING")
  EXECUTE_AT     - MYSQL_TYPE_TIMESTAMP (set for "ONE TIME" otherwise NULL)
  INTERVAL_VALUE - MYSQL_TYPE_LONG    (set for RECURRING otherwise NULL)
  INTERVAL_FIELD - MYSQL_TYPE_STRING  (set for RECURRING otherwise NULL)
  SQL_MODE       - MYSQL_TYPE_STRING  (for now NULL)
  STARTS         - MYSQL_TYPE_TIMESTAMP (starts from mysql.event)
  ENDS           - MYSQL_TYPE_TIMESTAMP (ends from mysql.event)
  STATUS         - MYSQL_TYPE_STRING  (ENABLED | DISABLED)
  ON_COMPLETION  - MYSQL_TYPE_STRING  (NOT PRESERVE | PRESERVE)
  CREATED        - MYSQL_TYPE_TIMESTAMP
  LAST_ALTERED   - MYSQL_TYPE_TIMESTAMP
  LAST_EXECUTED  - MYSQL_TYPE_TIMESTAMP
  EVENT_COMMENT  - MYSQL_TYPE_STRING

  SQL_MODE is NULL for now, because the value is still not stored in mysql.event .
Support will be added as a fix for another bug.

 This patch also adds SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
1. SHOW EVENTS shows always only the events on the same user,
   because the PK of mysql.event is (definer, db, name) several 
   users may have event with the same name -> no information disclosure.
2. SHOW FULL EVENTS - shows the events (in the current db as SHOW EVENTS)
   of all users. The user has to have PROCESS privilege, if not then
   SHOW FULL EVENTS behave like SHOW EVENTS.
3. If [FROM db] is specified then this db is considered.
4. Event names can be filtered with LIKE pattern.
  SHOW EVENTS returns table with the following columns, which are subset of
  the data which is returned by SELECT * FROM I_S.EVENTS
   Db
   Name
   Definer 
   Type
   Execute at
   Interval value
   Interval field 
   Starts 
   Ends
   Status
2006-01-30 13:15:23 +01:00
dlenev@mysql.com
737084b229 Fix for bug #16829 "Firing trigger with RETURN crashes the server"
We should disallow usage of RETURN statement in triggers and emit
error at parsing time (instead of crashing when trigger is fired).
2006-01-28 12:50:16 +03:00
andrey@lmy004.
8188f77c17 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16434
2006-01-27 01:07:34 +01:00
andrey@lmy004.
8e4578a5db Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16434
2006-01-26 22:10:12 +01:00
andrey@lmy004.
19cd9da7f1 fix for bug#16434 (Events: Illegal dates don't cause errors)
(post-review commit)
WL#1034 (Internal CRON)
2006-01-26 22:01:34 +01:00
andrey@lmy004.
d62d8ac9f7 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-bug16419
2006-01-26 21:26:19 +01:00
andrey@lmy004.
d4321d9b7c fix for bug#16419 (Events: can't use timestamp in the schedule)
WL #1034 (Internal CRON)
2006-01-26 21:21:21 +01:00
pem@mysql.com
ff4e2892b7 Fixed on BUG#16568: Continue handler with simple CASE not working correctly
After trying multiple inheritance (to messy and hard make it work) and
  sublassing jump_if_not (worked, but ugly), decided to on this solution
  instead:
  Inserting an abstract sp_instr_opt_meta class as parent for all instructions
  with destinations makes it possible to handle a continuation pointer for
  sp_instr_set_case_expr too.
  Note: No special test case; the fix is captured by the changed behaviour of
  bug14643_2, and bug14498_4 (formerly disabled), in sp.test.
2006-01-26 17:26:25 +01:00
pem@mysql.com
f60a763208 Fixed BUG#15737: Stored procedure optimizer bug with LEAVE
Second version.
  The problem was that the optimizer didn't work correctly with forwards jumps
  to "no-op" hpop and cpop instructions.
  Don't generate "no-op" instructions (hpop 0 and cpop 0), it isn't actually
  necessary.
2006-01-25 15:11:49 +01:00
anozdrin@mysql.com
378147a23d Fix for the following bugs:
- BUG#15166: Wrong update permissions required to execute triggers
  - BUG#15196: Wrong select permission required to execute triggers

The idea of the fix is to check necessary privileges
in Item_trigger_field::fix_fields(), instead of having "special variables"
technique. To achieve this, we should pass to an Item_trigger_field instance
a flag, which will indicate the usage/access type of this trigger variable.
2006-01-24 20:15:12 +03:00
andrey@lmy004.
8519423890 fix for bug#16404 (Events: keyword is ENABLED rather than ENABLE)
WL#1034 (Internal CRON)
2006-01-24 16:04:35 +01:00
andrey@lmy004.
a6494fbe31 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into lmy004.:/work/mysql-5.1-tt-copy-works
2006-01-23 16:13:46 +01:00
andrey@lmy004.
91ff153dcb Merge 2006-01-23 13:07:31 +01:00
andrey@lmy004.
6df1ec2c76 Merge 2006-01-23 11:06:12 +01:00
jonas@perch.ndb.mysql.com
87202d31db bug#13556 - (ndb) - incorrect parsing in tablespace code
end_ptr to my_strtoll10 is in/out parameter
2006-01-23 09:31:03 +01:00
andrey@lmy004.
b9a0a5dd57 fix for bug#16548 (Events: can't alter clause for preserve)
WL #1034 (Internal CRON)
2006-01-20 16:12:44 +01:00
pem@mysql.com
a07bbd78da Post-review fixes (BUG#15658). 2006-01-19 16:13:04 +01:00
pem@mysql.com
3a753667dd Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug15658/mysql-5.0
2006-01-19 11:48:07 +01:00
andrey@lmy004.
0322cb1df8 - fix bug #16435 (Weekly events execute every second) (WL#1034 Internal CRON)
Before the interval expression was considered to be in seconds, now it is
just a number and the type of interval is considered.

- this changeset introduces also fix for bug#16432 (Events: error re interval
  misrepresents the facts)
  the code of event_timed::set_interval() was refactored anyway so it is meaningful to
  fix the bug in the same changeset.
2006-01-18 20:41:22 +01:00
bar@mysql.com
4e4b37a8ef loaddata.result, loaddata.test:
Adding test case.
sql_yacc.yy:
  Adding TEXT_STRING_filesystem, which
  converts from character_set_client to
  character_set_conversion.
  Replacing TEXT_STRING_sys to TEXT_STRING_filesystem
  in LOAD DATA and SELECT INTO OUTFILE contexts.
sql_class.h, sql_class.cc:
  Adding character_set_filesystem variable,
  and charset_is_character_set_filesystem
  flag (to avoid conversion when it's not necessary).
set_var.h, set_var.cc:
  Adding sys_var_character_set_filesystem
mysqld.cc:
  Adding --character-set-filesystem startup option.
2006-01-18 12:55:38 +04:00
mikron@c-1e0be253.1238-1-64736c10.cust.bredbandsbolaget.se
e802a94284 WL #2604: Partition Management
Optimised version of ADD/DROP/REORGANIZE partitions for
non-NDB storage engines.
New syntax to handle REBUILD/OPTIMIZE/ANALYZE/CHECK/REPAIR partitions
Quite a few bug fixes
2006-01-17 08:40:00 +01:00
pem@mysql.com
559a243686 Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug14498/mysql-5.0
2006-01-16 15:37:25 +01:00
evgen@moonbone.local
7f0aa55e36 Manually merged 2006-01-16 16:57:15 +03:00
anozdrin@mysql.com
4e1ccbe244 Merge mysql.com:/home/alik/MySQL/devel/5.0-bug15103
into  mysql.com:/home/alik/MySQL/devel/5.1-tree
2006-01-13 19:46:39 +03:00
evgen@moonbone.local
02570c20bf Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/15538-bug-5.0-mysql
2006-01-13 14:30:20 +03:00
anozdrin@mysql.com
dae00c191f Fix for BUG#15103: SHOW TRIGGERS: small output alignment problem. 2006-01-12 03:02:52 +03:00
evgen@moonbone.local
41ef34356c Fixed bug #15538: unchecked table absence caused server crash.
Absence of table in left part of LEFT/RIGHT join wasn't checked before
name resolution which resulted in NULL dereferencing and server crash.

Modified rules: 
"table_ref LEFT opt_outer JOIN_SYM table_ref" and "table_ref RIGHT opt_outer 
JOIN_SYM table_ref"
NULL check is moved before push_new_name_resolution_context()
2006-01-11 23:39:09 +03:00
pem@mysql.com
0cc1acd51c Fixing BUG#15658: Server crashes after creating function as empty string
Empty strings (and names with trailing spaces) should not be allowed.
2006-01-11 15:11:05 +01:00