Commit graph

211 commits

Author SHA1 Message Date
dlenev@mysql.com
9a29c1f49e Fix after merging patch solving bug #10055 "Using stored function with
information_schema causes empty result set" with main tree.
2005-08-09 12:56:55 +04:00
sergefp@mysql.com
f595847ec0 Manual merge 2005-08-03 03:47:07 +00:00
sergefp@mysql.com
b6a6fe0849 Prelocking-free SPs, post-review fixes:
* Don't activate prelocking mode for evaluating procedure arguments when it is not necessary.
* Code structure simplification and cleanup.
* Cleanup in .test files
2005-08-03 03:37:32 +00:00
jimw@mysql.com
ea7df08c93 Fix crash in 'SHOW CREATE FUNCTION' introduced by Monty's last
cleanup.
2005-08-01 15:43:40 -07:00
sergefp@mysql.com
de02193bdd Added Non-prelocked SP execution: Now a PROCEDURE doesn't enter/leave prelocked mode for
its body, but lets each statement to get/release its own locks. This allows a broader set
of statements to be executed inside PROCEDUREs (but breaks replication)
This patch should fix BUG#8072, BUG#8766, BUG#9563, BUG#11126
2005-07-30 08:19:57 +00:00
bell@sanja.is.com.ua
b220fc47ef store/restore sql_mode which was in force during ctrigger creation (BUG#5891)
other sql_mode fixes
2005-07-28 22:39:11 +03:00
pem@mysql.com
7d7f34cf1c Fixed BUG#9538: SProc: Creation fails if we try to SET system variable
using @@var_name in proc
  Made sure we don't lose the tokenizer state when swapping lex in during SET
  parsing.
2005-07-15 17:24:19 +02:00
dlenev@mysql.com
75b8d4fa08 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg8406
2005-07-09 22:04:18 +04:00
dlenev@mysql.com
923fe817e0 Enable support of access to tables from triggers. Thus fix bug #8406 "Triggers
crash if referencing a table" and several other related bugs.
Fix for bug #11834 "Re-execution of prepared statement with dropped function
crashes server." which was spotted during work on previous bugs.

Also couple of nice cleanups:
- Replaced two separate hashes for stored routines used by statement with one.
- Now instead of doing one pass through all routines used in statement for
  caching them and then doing another pass for adding their tables to table
  list, we do only one pass during which do both things.
2005-07-09 21:51:59 +04:00
dlenev@mysql.com
8a924ac456 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg11394
2005-07-06 10:21:27 +04:00
sergefp@mysql.com
3d5d366c72 BUG#9814: post-review fixes: clear thd->net.no_send error after SP instruction
execution, not before.
2005-07-04 23:40:01 +00:00
sergefp@mysql.com
4a90f7d04f Fix for BUG#9814: Clear thd->net.no_send_error before each SP instruction
execution. Failure to do so caused the erroneous statements to send nothing
and hang the client.
2005-07-04 23:00:23 +00:00
dlenev@brandersnatch.localdomain
56ff9f1653 "Fix" for bug #11394 "Recursion in SP crash server" and bug #11600
"Stored procedures: crash with function calling itself".

Disallow recursive stored routines until we either make Item's and LEX
reentrant safe or will use spearate sp_head instances (and thus separate
LEX objects and Item trees) for each routine invocation.
2005-07-01 13:01:46 +04:00
bell@sanja.is.com.ua
d3905f3d0e Name resolution context added (BUG#6443) 2005-07-01 07:05:42 +03:00
pem@mysql.comhem.se
d8cb0cbc3f Fixing comment format in sp_head.cc. 2005-06-30 18:36:13 +02:00
pem@mysql.comhem.se
fda325b943 Fixed BUG#11529: crash server after use stored procedure
Make sure to cleanup the items for a cursor query after each open, otherwise
it's done too late, after the run-time mem_root is freed.
2005-06-30 18:07:06 +02:00
bell@sanja.is.com.ua
a01f9d5bcd fixed SP parameter execution 2005-06-29 11:50:29 +03:00
konstantin@mysql.com
f7fd222384 Fixed comments. 2005-06-28 22:49:14 +04:00
konstantin@mysql.com
4c4079430d - implement inheritance of sp_instr: public Query_arena.
We need every instruction to have its own arena, because we want to
  track instruction's state (INITIALIZED_FOR_SP -> EXECUTED). Because of 
  `if' statements and other conditional instructions used in stored 
  procedures, not every instruction of a stored procedure gets executed 
  during the first (or even subsequent) execution of the procedure. 
  So it's better if we track the execution state of every instruction 
  independently.
  All instructions of a given procedure now also share sp_head's 
  mem_root, but keep their own free_list.
  This simplifies juggling with free Item lists in sp_head::execute.
- free_items() moved to be a member of Query_arena. 
- logic of 'backup_arena' debug member of Query_arena has been
  changed to support
  multi-backups. Until now, TRUE 'backup_arena' meant that there is
  exactly one active backup of the THD arena. Now it means simply that
  the arena is used for backup, so that we can't accidentally overwrite an 
  existing backup. This allows doing multiple backups, e.g. in
  sp_head::execute and Cursor::fetch, when THD arena is already backed up
  but we want to set yet another arena (usually the 'permanent' arena,
  to save permanent transformations/optimizations of a parsed tree).
2005-06-23 20:22:08 +04:00
konstantin@mysql.com
dc7aa03ece Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-10736-new
2005-06-22 14:00:22 +04:00
konstantin@mysql.com
a1bec5666f Adjust to the changed Query_arena constructor:
main_mem_root is moved out of class Query_arena.
2005-06-22 11:59:13 +04:00
bell@sanja.is.com.ua
a05e50e29e fixed items cleunup for SP (BUG#10136) 2005-06-22 00:17:08 +03:00
konstantin@mysql.com
9eb671459a A preparatory patch to help adding JOIN::transform() and move one-time
query transformations to the PREPARE stage (prepared statements).
2005-06-21 21:15:21 +04:00
serg@serg.mylan
01b3c70926 renamed:
Item_buff -> Cached_item
  Item_arena -> Query_arena
  TEST_ASSERT -> YYERROR_UNLESS
2005-06-15 19:58:35 +02:00
pem@mysql.com
b42bf3cc55 Merge mysql.com:/usr/local/bk/mysql-5.0
into mysql.com:/home/pem/work/mysql-5.0
2005-06-10 16:56:34 +02:00
pem@mysql.comhem.se
46619fa0e3 Post review and additional fix for BUG#10968: Stored procedures: crash if long loop.
Fixed valgrind complaints. This fixes the memory leak problems for
  procedured, and partially for functions. There's still a leak involving
  results from functions that turned out to be too involved, so it will be
  fixed separately.
2005-06-10 16:14:01 +02:00
konstantin@mysql.com
95e620485c A fix and test case for Bug#10729 "mysql_stmt_attr_set
CURSOR_TYPE_READ_ONLY". The bug was that we (me) don't perform proper
cleanups of the prepared statement when done fetching from a cursor.
Another patch.
2005-06-09 18:17:45 +04:00
konstantin@mysql.com
ac2a9eb699 Manual merge. 2005-06-07 14:50:45 +04:00
konstantin@mysql.com
9f379d7f05 Patch two (the final one) for Bug#7306 "the server side preparedStatement
error for LIMIT placeholder".
The patch adds grammar support for LIMIT ?, ? and changes the
type of ST_SELECT_LEX::select_limit,offset_limit from ha_rows to Item*,
so that it can point to Item_param.
2005-06-07 14:11:36 +04:00
monty@mysql.com
db4dc60d5c Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
2005-06-06 14:36:21 +03:00
kent@mysql.com
b7696f414c sp_rcontext.cc, sp_pcontext.cc, sp_head.cc, sp_cache.cc, ha_federated.cc:
Include "mysql_priv.h" before testing USE_PRAGMA_IMPLEMENTATION
2005-06-05 16:20:22 +02:00
monty@mysql.com
4b7882dc73 merge 2005-06-05 17:19:50 +03:00
monty@mysql.com
25a2c4a71e Cleanup during review
Simple optimization for 2 argument usage to function of variable arguments
Fix stack overrun when using 1+1+1+1+1+1+1+....
Update crash-me results for 5.0
Don't call post_open if pre_open() fails (optimization)
2005-06-05 17:01:20 +03:00
pem@mysql.comhem.se
8c3b7accc7 Fixed BUG#10968: Stored procedures: crash if long loop
Free memory after all SP invokation.
2005-06-03 19:21:12 +02:00
pem@mysql.comhem.se
85f19d5da5 Fixed BUG#10961: Stored procedures: crash if select * from dual
Have to catch errors from SELECT when opening a cursor.
2005-06-01 12:18:41 +02:00
pem@mysql.comhem.se
063896a6e7 Post-review fixes of BUG#9937: Crash on call to stored procedure. 2005-05-31 12:06:15 +02:00
pem@mysql.com
e496b24304 Merge mysql.com:/usr/local/bk/mysql-5.0
into mysql.com:/home/pem/work/mysql-5.0
2005-05-30 11:06:31 +02:00
dlenev@mysql.com
eaa7f6ab88 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/dlenev/src/mysql-5.0-ttdf
2005-05-27 14:38:34 +04:00
dlenev@brandersnatch.localdomain
0ef3267251 Fix for trigger.test failure in --debug mode.
We can't have Item_trigger_field as aggregated object inside of
sp_instr_set_trigger_field class since in this case its destructor
will be called twice. So instead let us create this Item separately
and store pointer to it in instruction object.
2005-05-27 14:15:17 +04:00
msvensson@neptunus.(none)
3490108235 Add USE_PRAGMA_INTERFACE and USE_PRAGMA_IMPLEMENTATION to files not existsing in 4.1 2005-05-27 12:03:37 +02:00
pem@mysql.comhem.se
3eca4bf22e Fixed BUG#9937: Crash on call to stored procedure.
This only showed up on two known platforms, both ia64 (one HP-UX and one Linux wich icc).
For some reason, they only get half the stack size they are supposed to have, which
makes deep SP recursion overrun the stack before check_stack_overrun() is triggered.
Also made som minor fixes in the check_stack_overrun() definition, supporting variable
margins.
No test case added, but the reason for the bug report was a failed existing test case
on these machines, which now works.
2005-05-26 20:36:14 +02:00
pem@mysql.comhem.se
3c2c8bf9a2 Fixed on BUG#6048: Stored procedure causes operating system reboot
Memory leak in locally evalutated expressions during SP execution fixed by
  reusing allocated item slots when possible.
  Note: No test case added, since the test is a stress test that tries to make
  the machine to run out of memory.
  Second attempt, now tested with debug build, valgrind build, max (optimized)
  build, with and without --debug, --vagrind and --ps-protocol.
  Errors in trigger and view test with --debug in debug build where present
  before this patch, and likewise for valgrind warnings for view test in
  valgrind build with --ps-protocol.
2005-05-23 23:43:43 +02:00
jimw@mysql.com
ae52de495a Revert fix for Bug #6048: it introduced new problems. 2005-05-18 17:10:48 -07:00
pem@mysql.com
38c44af8b8 Merge mysql.com:/usr/local/bk/mysql-5.0
into mysql.com:/home/pem/work/mysql-5.0
2005-05-18 11:09:30 +02:00
pem@mysql.comhem.se
9472627b8a Fixed BUG#6048: Stored procedure causes operating system reboot.
Memory leak in locally evalutated expressions during SP execution fixed by
  reusing allocated item slots when possible.
  Note: No test case added, since the test is a stress test that tries to make
  the machine to run out of memory.
2005-05-18 11:07:57 +02:00
acurtis@xiphis.org
11a174302b Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0
into xiphis.org:/usr/home/antony/work2/p1-bug10246.1
2005-05-17 19:57:27 +01:00
acurtis@xiphis.org
8df5887ad5 Bug#10246 - Parser: bad syntax for GRANT EXECUTE
Rename some functions
  more fine-grained sp privileges
  make grant/revoke sp grammar less ambigious
2005-05-17 19:54:20 +01:00
serg@serg.mylan
56fa40e558 sql_yacc.yy:
missing semicolon added
sql_base.cc:
  bad merge fixed
sp_head.cc, view.test, view.result:
  Correct restoring view name in SP table locking BUG#9758
configure.in:
  restore -fno-implicit-templates -fno-exceptions -fno-rtti in configure
2005-05-17 17:08:43 +02:00
bell@book.sanja.is.com.ua
4c984c7cc6 merge 2005-05-09 02:06:18 +03:00
bell@book.sanja.is.com.ua
91dccaa36f Item::fix_field need correct pointer on item reference to chnge it if itis need, so support of correct item address added to SP commands (BUG#5963)
some optimisation of IF/NOT IF ptomised to Pem
2005-05-09 01:59:10 +03:00