Commit graph

2027 commits

Author SHA1 Message Date
sergefp@mysql.com
bffd438de3 BUG#20975: Incorrect query result for NOT (subquery):
Add implementations of Item_func_{nop,not}_all::neg_transformer
2006-07-21 03:04:04 +04:00
kostja@bodhi.local
f22a4ce1a1 A fix and a test case for Bug#21002 "Derived table not selecting from a
"real" table fails in JOINs".

This is a regression caused by the fix for Bug 18444. 
This fix removed the assignment of empty_c_string to table->db performed 
in add_table_to_list, as neither me nor anyone else knew what it was 
there for. Now we know it and it's covered with tests: the only case 
when a table database name can be empty is when the table is a derived 
table. The fix puts the assignment back but makes it a bit more explicit.

Additionally, finally drop sp.result.orig which was checked in by mistake.
2006-07-19 22:33:19 +04:00
holyfoot/hf@mysql.com/deer.(none)
00f56da9af merging 2006-07-18 16:43:39 +05:00
holyfoot/hf@mysql.com/deer.(none)
bed7b69243 Merge mysql.com:/home/hf/work/mysql-4.1.mrg
into  mysql.com:/home/hf/work/mysql-5.0.mrg
2006-07-18 14:52:29 +05:00
holyfoot/hf@mysql.com/deer.(none)
eddaafb12b Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mysql-4.1.16017
2006-07-13 22:32:18 +05:00
kroki/tomash@moonlight.intranet
a3ea06db41 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug18630
2006-07-13 17:21:44 +04:00
kroki/tomash@moonlight.intranet
4272d1efc3 Bug#18630: Arguments of suid routine calculated in wrong security
context.

Routine arguments were evaluated in the security context of the routine
itself, not in the caller's context.

The bug is fixed the following way:

  - Item_func_sp::find_and_check_access() has been split into two
    functions: Item_func_sp::find_and_check_access() itself only
    finds the function and check that the caller have EXECUTE privilege
    on it.  New function set_routine_security_ctx() changes security
    context for SUID routines and checks that definer have EXECUTE
    privilege too.

  - new function sp_head::execute_trigger() is called from
    Table_triggers_list::process_triggers() instead of
    sp_head::execute_function(), and is effectively just as the
    sp_head::execute_function() is, with all non-trigger related code
    removed, and added trigger-specific security context switch.

  - call to Item_func_sp::find_and_check_access() stays outside
    of sp_head::execute_function(), and there is a code in
    sql_parse.cc before the call to sp_head::execute_procedure() that
    checks that the caller have EXECUTE privilege, but both
    sp_head::execute_function() and sp_head::execute_procedure() call
    set_routine_security_ctx() after evaluating their parameters,
    and restore the context after the body is executed.
2006-07-13 17:12:31 +04:00
kostja@bodhi.local
7bf73ac3e5 Merge bodhi.local:/opt/local/work/mysql-5.0-root
into  bodhi.local:/opt/local/work/mysql-5.0-runtime
2006-07-07 22:09:43 +04:00
dlenev@mysql.com
b429748fab Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg18437-3
2006-07-06 14:31:32 +04:00
konstantin@mysql.com
b99e11c8bd A fix and a test case for Bug#17843 "Certain stored procedures fail to
run at startup"

The server returned an error when trying to execute init-file with a 
stored procedure that could return multiple result sets to the client. 
A stored procedure can return multiple result sets if it contains 
PREPARE, SELECT, SHOW and similar statements.
   
The fix is to set client_capabilites|=CLIENT_MULTI_RESULTS in
sql_parse.cc:handle_bootstrap(). There is no "client" really, so 
nothing is ever sent. This makes init-file feature behave consistently: 
the prepared statements that can be called directly in the init-file 
can be used in a stored procedure too.

Re-committed the patch originally submitted by Per-Erik after review.
2006-07-04 23:46:15 +04:00
konstantin@mysql.com
1781eee60f auxilliary -> auxiliary 2006-07-04 01:13:04 +04:00
gluh@mysql.com
d2b378d57f Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/gluh/MySQL/Merge/5.0-kt
2006-07-03 13:19:18 +05:00
dlenev@mysql.com
d4450e6696 Fix for bug#18437 "Wrong values inserted with a before update trigger on
NDB table".

SQL-layer was not marking fields which were used in triggers as such. As
result these fields were not always properly retrieved/stored by handler
layer. So one might got wrong values or lost changes in triggers for NDB,
Federated and possibly InnoDB tables.
This fix solves the problem by marking fields used in triggers
appropriately.

Also this patch contains the following cleanup of ha_ndbcluster code:

We no longer rely on reading LEX::sql_command value in handler in order
to determine if we can enable optimization which allows us to handle REPLACE
statement in more efficient way by doing replaces directly in write_row()
method without reporting error to SQL-layer.
Instead we rely on SQL-layer informing us whether this optimization
applicable by calling handler::extra() method with
HA_EXTRA_WRITE_CAN_REPLACE flag.
As result we no longer apply this optimzation in cases when it should not
be used (e.g. if we have on delete triggers on table) and use in some
additional cases when it is applicable (e.g. for LOAD DATA REPLACE).

Finally this patch includes fix for bug#20728 "REPLACE does not work
correctly for NDB table with PK and unique index".
  
This was yet another problem which was caused by improper field mark-up.
During row replacement fields which weren't explicity used in REPLACE
statement were not marked as fields to be saved (updated) so they have
retained values from old row version. The fix is to mark all table
fields as set for REPLACE statement. Note that in 5.1 we already solve
this problem by notifying handler that it should save values from all
fields only in case when real replacement happens.
2006-07-02 01:51:10 +04:00
konstantin@mysql.com
1c4dffc8ca Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-runtime
2006-07-01 22:13:42 +04:00
konstantin@mysql.com
41fea3d763 Remove a couple of unused/barely used names. 2006-07-01 00:14:28 +04:00
evgen@moonbone.local
3cc6d95d18 Merge 2006-06-30 02:03:09 +04:00
gluh@eagle.intranet.mysql.r18.ru
9901efea1f Bug#15298 SHOW GRANTS FOR CURRENT_USER: Incorrect output in DEFINER context
user name is calculated on function execution stage instead of parse stage
2006-06-29 15:50:44 +05:00
gluh@mysql.com
e5dbc49bb0 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/gluh/MySQL/Merge/5.0-kt
2006-06-28 14:23:33 +05:00
svoj@may.pils.ru
ffd8ed1716 BUG#1662 - ALTER TABLE LIKE ignores DATA/INDEX DIRECTPORY
Produce a warning if DATA/INDEX DIRECTORY is specified in
ALTER TABLE statement.

Ignoring of these options is documented in the symbolic links
section of the manual.
2006-06-27 22:22:43 +05:00
konstantin@mysql.com
5576ef27c6 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-17199
2006-06-27 03:34:12 +04:00
konstantin@mysql.com
4d25d2154c Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/opt/local/work/mysql-5.0-17199
2006-06-27 00:52:56 +04:00
konstantin@mysql.com
117b76a562 A fix and a test case for
Bug#19022 "Memory bug when switching db during trigger execution"
 Bug#17199 "Problem when view calls function from another database."
 Bug#18444 "Fully qualified stored function names don't work correctly in
            SELECT statements"

 Documentation note: this patch introduces a change in behaviour of prepared
 statements.

 This patch adds a few new invariants with regard to how THD::db should
 be used. These invariants should be preserved in future:

  - one should never refer to THD::db by pointer and always make a deep copy
    (strmake, strdup)
  - one should never compare two databases by pointer, but use strncmp or
    my_strncasecmp
  - TABLE_LIST object table->db should be always initialized in the parser or
    by creator of the object.

    For prepared statements it means that if the current database is changed
    after a statement is prepared, the database that was current at prepare
    remains active. This also means that you can not prepare a statement that
    implicitly refers to the current database if the latter is not set.
    This is not documented, and therefore needs documentation. This is NOT a
    change in behavior for almost all SQL statements except:
     - ALTER TABLE t1 RENAME t2 
     - OPTIMIZE TABLE t1
     - ANALYZE TABLE t1
     - TRUNCATE TABLE t1 --
     until this patch t1 or t2 could be evaluated at the first execution of
     prepared statement. 

     CURRENT_DATABASE() still works OK and is evaluated at every execution
     of prepared statement.

     Note, that in stored routines this is not an issue as the default
     database is the database of the stored procedure and "use" statement
     is prohibited in stored routines.

  This patch makes obsolete the use of check_db_used (it was never used in the
  old code too) and all other places that check for table->db and assign it
  from THD::db if it's NULL, except the parser.

 How this patch was created: THD::{db,db_length} were replaced with a
 LEX_STRING, THD::db. All the places that refer to THD::{db,db_length} were
 manually checked and:
  - if the place uses thd->db by pointer, it was fixed to make a deep copy
  - if a place compared two db pointers, it was fixed to compare them by value
    (via strcmp/my_strcasecmp, whatever was approproate)
 Then this intermediate patch was used to write a smaller patch that does the
 same thing but without a rename.

 TODO in 5.1:
   - remove check_db_used
   - deploy THD::set_db in mysql_change_db

 See also comments to individual files.
2006-06-27 00:47:52 +04:00
holyfoot@mysql.com
0a9a755419 merging 2006-06-26 22:32:02 +05:00
ingo@mysql.com
d011ac7202 Merge mysql.com:/home/mydev/mysql-5.0--main
into  mysql.com:/home/mydev/mysql-5.0-bug16986-main
2006-06-26 19:19:12 +02:00
holyfoot@mysql.com
bb347299b1 Merge mysql.com:/home/hf/work/mysql-4.1.20318
into mysql.com:/home/hf/work/mysql-4.1.clean
2006-06-26 22:17:42 +05:00
ingo@mysql.com
d27a15a81c Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.

The stress test suite revealed some deadlocks. Some were
related to the new condition variable (COND_global_read_lock)
and some were general problems with the global read lock.

It is now necessary to signal COND_global_read_lock whenever 
COND_refresh is signalled.

We need to wait for the release of a global read lock if one 
is set before every operation that requires a write lock.
But we must not wait if we have locked tables by LOCK TABLES.
After setting a global read lock a thread waits until all
write locks are released.
2006-06-26 19:14:35 +02:00
evgen@moonbone.local
e74c47fb04 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/tmp_merge-5.0-opt-mysql
2006-06-23 16:09:33 +04:00
gkodinov@mysql.com
bca6492927 Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean
into  mysql.com:/home/kgeorge/mysql/5.0/B18080
2006-06-21 13:06:32 +03:00
gkodinov@mysql.com
bee985af35 Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean
into  mysql.com:/home/kgeorge/mysql/5.0/B20482
2006-06-21 12:59:34 +03:00
gkodinov@mysql.com
75ca055493 Bug #20482: failure on Create join view with sources views/tables in different
schemas
The function check_one_table_access() called to check access to tables in 
SELECT/INSERT/UPDATE was doing additional checks/modifications that don't hold
in the context of setup_tables_and_check_access().
That's why the check_one_table() was split into two : the functionality needed by
setup_tables_and_check_access() into check_single_table_access() and the rest of 
the functionality stays in check_one_table_access() that is made to call the new
check_single_table_access() function.
2006-06-21 12:12:46 +03:00
dlenev@mysql.com
b75254e101 Fix for bug#19634 "Re-execution of multi-delete which involve trigger/stored
function crashes server".

Attempts to execute prepared multi-delete statement which involved trigger or
stored function caused server crashes (the same happened for such statements
included in stored procedures in cases when one tried to execute them more
than once).

The problem was caused by yet another incorrect usage of check_table_access()
routine (the latter assumes that table list which it gets as argument
corresponds to value LEX::query_tables_own_last). We solve this problem by
juggling with LEX::query_tables_own_last value when we call
check_table_access() for LEX::auxilliary_table_list (better solution is too
intrusive and should be done in 5.1).
2006-06-21 01:50:20 +04:00
holyfoot@deer.(none)
d8d42948b2 bug #20318 (ctype_ucs2_def test fails with embedded)
there was two problems about charsets in embedded server
1. mysys/charset.c - defined there default_charset_info variable is
modified by both server and client code (particularly when
--default-charset option is handled)
In embedded server we get two codelines modifying one variable.
I created separate default_client_charset_info for client code

2. mysql->charset and mysql->options.charset initialization isn't
properly done for embedded server - necessary calls added
2006-06-19 22:11:01 +05:00
gkodinov@mysql.com
5508df251f Bug #18080: INSERT ... SELECT ... JOIN results in ambiguous field list error
There was an incomplete reset of the name resolution context, that caused 
INSERT ... SELECT ... JOIN statements to resolve not by joint row type calculated
for the join.
Removed the redundant re-initialization of the context, because 
mysql_insert_select_prepare() now correctly saves/restores the context.
2006-06-19 17:34:12 +03:00
gkodinov@mysql.com
eb693dcc7b Bug #20363: Create view on just created view is now denied
There was a wrong determination of the DB name (witch is 
not always the one in TABLE_LIST because derived tables
may be calculated using temp tables that have their db name
set to "").
The fix determines the database name according to the type 
of table reference, and calls the function check_access() 
with the correct db name so the correct set of grants is found.
2006-06-12 18:15:08 +03:00
holyfoot@deer.(none)
bc35c50063 bug #16017 (memory leaks in embedded server)
There actually was 3 different problems -
hash_user_connections wasn't cleaned
one strdupped database name wasn't freed
and stmt->mem_root wasn't cleaned as it was
replased with mysql->field_alloc for result
For the last one - i made the library using stmt's
fields to store result if it's the case.
2006-06-01 17:06:42 +05:00
iggy@mysql.com
433c57d997 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/mnt/storeage/mysql-5.0-maint_bug18669
2006-05-30 08:22:12 -04:00
evgen@moonbone.local
1f30bf5a33 Fixed bug#19225: unchecked error results in server crash
In multi-table delete a table for delete can't be used for selecting in
subselects. Appropriate error was raised but wasn't checked which leads to a
crash at the execution phase.

The mysql_execute_command() now checks for errors before executing select
for multi-delete.
2006-05-29 00:32:59 +04:00
gkodinov@mysql.com
a21a2b5bcd BUG#18681: View privileges are broken
The check for view security was lacking several points :
1. Check with the right set of permissions : for each table ref that
participates in a view there were the right credentials to use in it's
security_ctx member, but these weren't used for checking the credentials.
This makes hard enforcing the SQL SECURITY DEFINER|INVOKER property
consistently.
2. Because of the above the security checking for views was just ruled out
in explicit ways in several places.
3. The security was checked only for the columns of the tables that are
brought into the query from a view. So if there is no column reference
outside of the view definition it was not detecting the lack of access to
the tables in the view in SQL SECURITY INVOKER mode.

The fix below tries to fix the above 3 points.
2006-05-26 11:47:53 +03:00
iggy@mysql.com
3cc64cef9a BUG#18669: Session COM_STATISTICS breaks mysqladmin status.
Changed COM_STATISTICS to display the global status, instead of thead status, for slow queries and table opens.
2006-05-24 09:34:36 -04:00
konstantin@mysql.com
85c6883146 Merge mysql.com:/opt/local/work/mysql-5.0-root
into  mysql.com:/opt/local/work/mysql-5.0-runtime-merge
2006-05-15 00:51:12 +04:00
dlenev@mysql.com
02d692eb3b Follow-up for the patch for bugs #12472/#15137 "CREATE TABLE ... SELECT ...
which explicitly or implicitly uses stored function gives 'Table not locked'
error"

Test case for these bugs crashed in --ps-protocol mode. The crash was caused
by incorrect usage of check_grant() routine from create_table_precheck()
routine. The former assumes that either number of tables to be inspected by
it is limited explicitly (i.e. is is not UINT_MAX) or table list used and
thd->lex->query_tables_own_last value correspond to each other.
create_table_precheck() was not fulfilling this condition and crash happened.
The fix simply sets number of tables to be inspected by check_grant() to 1.
2006-05-10 14:12:32 +04:00
kroki@mysql.com
3ad0cac41b Reapply fix for bug#16372 (Server crashes when test 'conc_sys' is running)
after merge.

Concurrent read and update of privilege structures (like simultaneous
run of SHOW GRANTS and ADD USER) could result in server crash.

Ensure that proper locking of ACL structures is done.

No test case is provided because this bug can't be reproduced
deterministically.
2006-05-06 11:25:59 +04:00
kroki@mysql.com
96f0aa3cfb Bug#15463: EXPLAIN SELECT..INTO hangs the client (QB, command line)
There were two distict bugs: parse error was returned for valid
statement and that error wasn't reported to the client.

The fix ensures that EXPLAIN SELECT..INTO is accepted by parser and any
other parse error will be reported to the client.
2006-05-03 18:02:43 +04:00
cmiller@zippy.(none)
1205ae8276 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.(none):/home/cmiller/work/mysql/mysql-5.0__bug17667
2006-05-01 22:50:36 -04:00
cmiller@zippy.(none)
85ffd9640e SECURITY FIX
Bug#17667: An attacker has the opportunity to bypass query logging.

This adds a new, local-only printf format specifier to our *printf functions
that allows us to print known-size buffers that must not be interpreted as 
NUL-terminated "strings."

It uses this format-specifier to print to the log, thus fixing this 
problem.
2006-05-01 22:10:50 -04:00
msvensson@neptunus.(none)
98a7bbe109 Merge bk-internal:/home/bk/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-04-27 17:30:56 +02:00
serg@sergbook.mysql.com
ed3f3fa0c7 after merge 2006-04-25 22:39:59 -07:00
serg@sergbook.mysql.com
ab2820e80f Merge sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0
2006-04-25 21:32:30 -07:00
serg@sergbook.mysql.com
54c97e6150 after merge fix 2006-04-25 17:12:06 -07:00
serg@sergbook.mysql.com
c97d923cfd merged 2006-04-25 14:06:04 -07:00
serg@sergbook.mysql.com
3144d5eb48 buffer overflow and information exposure bugs fixed
(reported by Stefano Di Paola)
2006-04-25 13:37:33 -07:00
igor@rurik.mysql.com
639e875032 Post merge fixes 2006-04-21 08:19:38 -07:00
igor@rurik.mysql.com
37ac782206 Merge rurik.mysql.com:/home/igor/dev/mysql-4.1-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-04-21 00:36:20 -07:00
igor@rurik.mysql.com
fc7514151f Fixed bug #18767.
The bug caused wrong result sets for union constructs of the form
(SELECT ... ORDER BY order_list1 [LIMIT n]) ORDER BY order_list2.
For such queries order lists were concatenated and limit clause was
completely neglected.
2006-04-20 22:15:38 -07:00
msvensson@neptunus.(none)
030de4f912 Merge 192.168.0.20:mysql/bug13310/my50-bug13310
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-04-18 10:55:57 +02:00
msvensson@shellback.(none)
13062cbad6 BUG#13310 incorrect user parsing by SP
- Strip surrounding ''s from username when a new user connects. There
   is no user 'a@', it should be a@
2006-04-18 10:46:17 +02:00
konstantin@mysql.com
6f51b4199f Merge mysql.com:/opt/local/work/mysql-5.0-root
into  mysql.com:/opt/local/work/mysql-5.0-runtime-merge
2006-04-14 00:07:04 +04:00
kroki@mysql.com
6222ca41a5 Bug#15933: max_used_connections is wrong after FLUSH STATUS if connections are cached
After FLUSH STATUS max_used_connections was reset to 0, and haven't
been updated while cached threads were reused, until the moment a new
thread was created.

The first suggested fix from original bug report was implemented:

  a) On flushing the status, set max_used_connections to
  threads_connected, not to 0.

  b) Check if it is necessary to increment max_used_connections when
  taking a thread from the cache as well as when creating new threads
2006-04-07 15:30:40 +04:00
svoj@april.(none)
209682e051 Fix for bug#14945 "Truncate table doesn't reset the auto_increment
counter".

When TRUNCATE TABLE was called within an stored procedure the
auto_increment counter was not reset to 0 even if straight
TRUNCATE for this table did this.

This fix makes TRUNCATE in stored procedures to be handled exactly
in the same way as straight TRUNCATE. We achieve this by rolling
back the fix for bug 8850, which is no longer needed since stored
procedures don't require prelocked mode anymore (and TRUNCATE is
not allowed in stored functions or triggers).
2006-04-06 15:19:01 +05:00
bell@book.local
1626c2d9e1 We should prohobit concurent read of inserting file in SP
because it can couse problem with Query cache (BUG#14767)
2006-03-15 19:15:52 +02:00
anozdrin@mysql.com
3b3cb95eb9 Additional fix for BUG#16777: Can not create trigger nor view
w/o definer if --skip-grant-tables specified.
  
The previous patch does not allow to specify empty host name in
DEFINER-clause explicitly.
2006-03-10 14:40:15 +03:00
brian@zim.(none)
eefd1207bb This patch does 1) fix my build breakage 2) Complete the removal of all symbols which could clash with another parser. 2006-03-09 16:44:08 -08:00
brian@zim.(none)
78abb2d117 Porting fix that allows others to include compiled code with different parsers.
Makes you wonder what I am up to, doesn't?
2006-03-09 10:09:52 -08:00
anozdrin@mysql.com
fbb5920399 Implementation of WL#2897: Complete definer support in the stored routines.
The idea is to add DEFINER-clause in CREATE PROCEDURE and CREATE FUNCTION
statements. Almost all support of definer in stored routines had been already
done before this patch.

NOTE: this patch changes behaviour of dumping stored routines in mysqldump.
Before this patch, mysqldump did not dump DEFINER-clause for stored routines
and this was documented behaviour. In order to get full information about stored
routines, one should have dumped mysql.proc table. This patch changes this
behaviour, so that DEFINER-clause is dumped.

Since DEFINER-clause is not supported in CREATE PROCEDURE | FUNCTION statements
before this patch, the clause is covered by additional version-specific comments.
2006-03-02 15:18:49 +03:00
anozdrin@mysql.com
302239f388 Fix for BUG#16777: Can not create trigger nor view w/o definer
if --skip-grant-tables specified.

The problem is that there is a check that prevents creating a definer
with empty host name.

In --skip-grant-tables mode this check prevents the user from creating a
trigger/view without explicitly specifying its definer. This happens, because
in --skip-grant-tables mode CURRENT_USER is ''@''. According to Sanja this
check was implemented intentionally.

However, according to the MySQL manual it is possible to specify empty host
name (as well as empty user name). Moreover, the behaviour for stored routines
is different in this aspect -- we allow them to be created with implicit
definer.

Based on this, we believe it is OK to change the behaviour for views to be
similar with the behaviour for stored routines.
2006-03-02 14:17:13 +03:00
anozdrin@mysql.com
e03e522201 Fix for BUG#16266: Definer is not fully qualified error during replication.
The idea of the fix is to extend support of non-SUID triggers for backward
compatibility. Formerly non-SUID triggers were appeared when "new" server
is being started against "old" database. Now, they are also created when
"new" slave receives updates from "old" master.
2006-03-01 14:13:07 +03:00
monty@mysql.com
54274976e7 Fixed compiler warnings from gcc 4.0.2:
- Added empty constructors and virtual destructors to many classes and structs
- Removed some usage of the offsetof() macro to instead use C++ class pointers
2006-02-25 17:46:30 +02:00
monty@mysql.com
82b77cdd90 Fixes to embedded server to be able to run tests with it
(Needed for "list of pushes" web page and autopush)
2006-02-24 18:34:15 +02:00
konstantin@mysql.com
442c2ba8af A fix and a test case for Bug#13134 "Length of VARCHAR() utf8
column is increasing when table is recreated with PS/SP":
make use of create_field::char_length more consistent in the code.
Reinit create_field::length from create_field::char_length
for every execution of a prepared statement (actually fixes the 
bug).
2006-02-21 19:52:20 +03:00
pem@mysql.com
c289a3b60e Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug16303/mysql-5.0
2006-02-06 17:58:15 +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
5b1fdbec53 Fixed BUG#16303: erroneus stored procedures and functions should be droppable
Use a special lookup function for DROP, which doesn't attempt to parse the
  definition.
2006-01-26 13:29:46 +01:00
aelkin@mysql.com
2fbdc5483a BUG#15699 importing the fix from 5.0 2006-01-26 12:49:55 +02:00
aelkin@mysql.com
0fc8284de8 BUG#15699, failure to apply ignore rule for unexisting table.
Since replication rules execute after `mysql_multi_update_prepare' returns we
delay to `break' in case this functions returns non-zero (some tables are not found) 
for to examine if there is an ignore rule for a not-found table. By doing that
it is guaranteed do/ignore replication rules logically preceed opening table routine.
2006-01-23 18:03:09 +02:00
serg@serg.mylan
ae3d815b41 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2006-01-16 18:09:04 +01:00
anozdrin@mysql.com
e5d26fc446 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/alik/MySQL/devel/5.0-bug15110
2006-01-11 02:10:59 +03:00
anozdrin@mysql.com
b04b851ef9 Fix for BUG#15110: mysqldump --triggers: does not include DEFINER clause
There are two main idea of this fix:
  - introduce a common function for server and client to split user value
    (<user name>@<host name>) into user name and host name parts;
  - dump DEFINER clause in correct format in mysqldump.
2006-01-11 02:07:40 +03:00
jani@ua141d10.elisa.omakaista.fi
d9d6dfea3a Changed function prototype. 2006-01-10 19:19:56 +02:00
jani@ua141d10.elisa.omakaista.fi
df801decef Fixed refresh_status function. 2006-01-10 18:56:23 +02:00
serg@serg.mylan
8dc77f267b merged 2006-01-06 18:26:59 +01:00
monty@mysql.com
b0a5ea01ef Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2006-01-06 01:08:48 +02:00
monty@mysql.com
6e22e29de6 Review fixes of new pushed code
- Fixed tests
- Optimized new code
- Fixed some unlikely core dumps
- Better bug fixes for:
  - #14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  - #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null
2006-01-06 00:47:49 +02:00
serg@serg.mylan
30c09d6dc0 merged 2006-01-03 18:12:03 +01:00
serg@serg.mylan
14f94dc0ca many warnings (practically safe but annoying) corrected 2006-01-03 17:54:54 +01:00
ingo@mysql.com
ef52a59418 Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug5390
2005-12-27 10:31:00 +01:00
ingo@mysql.com
b0e84cb999 BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 5.0.
Extended the unique table check by a check of lock data.
Merge sub-tables cannot be detected by doing name checks only.
2005-12-20 16:35:05 +01:00
igor@rurik.mysql.com
ad53d72033 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-12-10 23:31:03 -08:00
dlenev@mysql.com
56faadcc42 Fix -ansi -pedantic compilation failure. Fix coding style. 2005-12-07 22:36:13 +03:00
ingo@mysql.com
5aa315e23a BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT, Version for 4.1.
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables() 
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.
2005-12-07 19:52:26 +01:00
konstantin@mysql.com
5517b5d419 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-root
2005-12-07 18:29:48 +03:00
konstantin@mysql.com
7bb7006d06 Fix -ansi -pedantic compilation failure. Fix coding style. 2005-12-07 18:15:02 +03:00
anozdrin@mysql.com
5b981a4844 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.0-sp-vars-merge-2
2005-12-07 17:17:42 +03:00
anozdrin@mysql.com
0ff8f60b45 Patch for WL#2894: Make stored routine variables work
according to the standard.

The idea is to use Field-classes to implement stored routines
variables. Also, we should provide facade to Item-hierarchy
by Item_field class (it is necessary, since SRVs take part
in expressions).

The patch fixes the following bugs:
  - BUG#8702: Stored Procedures: No Error/Warning shown for inappropriate data 
    type matching; 
 
  - BUG#8768: Functions: For any unsigned data type, -ve values can be passed 
    and returned; 
 
  - BUG#8769: Functions: For Int datatypes, out of range values can be passed 
    and returned; 
 
  - BUG#9078: STORED PROCDURE: Decimal digits are not displayed when we use 
    DECIMAL datatype; 
 
  - BUG#9572: Stored procedures: variable type declarations ignored; 
 
  - BUG#12903: upper function does not work inside a function; 
 
  - BUG#13705: parameters to stored procedures are not verified; 
 
  - BUG#13808: ENUM type stored procedure parameter accepts non-enumerated
    data; 
 
  - BUG#13909: Varchar Stored Procedure Parameter always BINARY string (ignores 
    CHARACTER SET); 
 
  - BUG#14161: Stored procedure cannot retrieve bigint unsigned;

  - BUG#14188: BINARY variables have no 0x00 padding;

  - BUG#15148: Stored procedure variables accept non-scalar values;
2005-12-07 17:01:17 +03:00
serg@serg.mylan
e4821e3e9d merged 2005-12-07 08:50:14 +01:00
serg@serg.mylan
1aa775aa44 Merge 2005-12-06 18:21:46 +01:00
ingo@mysql.com
2ecd3a6164 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug5390
2005-12-06 17:48:31 +01:00
timour@mysql.com
6d6b617a2e Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-2486
2005-12-06 18:04:26 +02:00
pem@mysql.com
a0ed1d5aba Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/bug14233/mysql-5.0
2005-12-06 13:34:18 +01:00
serg@serg.mylan
6b5320d617 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-12-05 18:18:56 +01:00
jani@a193-229-222-105.elisa-laajakaista.fi
c6d933c629 Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
2005-12-04 20:57:34 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
d88d8081da Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
2005-12-04 15:34:47 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
669a12fdb0 A set of Netware related patches. 2005-12-04 15:02:06 +02:00
monty@mysql.com
88eee63d8c Set thread_stack after return from end_thread()
Fixes core dump when reusing thread when running debug binary
2005-12-03 18:13:06 +02:00
serg@serg.mylan
9c0a8bbd17 this has nothing to do with the bug#13012.
it's about mysql_admin_commands not being reexecution-safe
(and CHECK still isn't)
2005-12-03 15:02:09 +01:00
igor@rurik.mysql.com
09e6597015 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-12-02 20:42:36 -08:00
ingo@mysql.com
76861ac6ad BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables() 
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.
2005-11-29 19:17:39 +01:00
timour@mysql.com
cc7d1268c4 WL#2486 - Natural/using join according to SQL:2003.
Post-review fixes according to Monty's review.
2005-11-28 21:57:50 +02:00
jimw@mysql.com
9df4951acb Merge mysql.com:/home/jimw/my/mysql-5.0-14956
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2005-11-28 10:51:54 -08:00
pem@mysql.com
eb5bf2ec33 Fixed BUG#14233: Crash after tampering with the mysql.proc table
Post-review version. Some minor review fixes, but also changed the way
  some errors are handled: Don't return specific parse errors; instead
  always use the more general "table corrupt" error (amended accordingly).
2005-11-25 17:09:26 +01:00
igor@rurik.mysql.com
9b9f8cab4c Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-11-23 21:44:21 -08:00
monty@mysql.com
f5804869e3 Don't use PATH_MAX for FN_REFLEN as this uses too much stack space
Larger stack size neaded for open table on x86 64 bit
Fix failing test cases
Deleted symlink from bk
2005-11-24 02:36:28 +02:00
jimw@mysql.com
86beb208aa Fix result of ROW_COUNT() after 'EXECUTE prepstmt'. (Bug #14956) 2005-11-23 14:57:26 -08:00
konstantin@mysql.com
b1d951d462 Always initialize THD::thread_stack: it's used in
check_stack_overrun().
2005-11-23 21:18:10 +03:00
igor@rurik.mysql.com
7b1b69a6e7 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-11-22 23:00:57 -08:00
bell@sanja.is.com.ua
83d692da88 postmerge fix 2005-11-23 02:49:44 +02:00
bell@sanja.is.com.ua
db8f03ebe8 Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug7-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.0
2005-11-23 01:28:32 +02:00
bell@sanja.is.com.ua
7bd691f11e Recursion support made for SP (BUG#10100). 2005-11-23 01:11:19 +02:00
pem@mysql.com
d71d1242ff Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/show-sp-code/mysql-5.0
2005-11-22 13:24:53 +01:00
bell@sanja.is.com.ua
7f162c7899 Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug1-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.0
2005-11-21 21:15:48 +02:00
bell@sanja.is.com.ua
806f9e24ff Inefficient usage of String::append() fixed.
Bad examples of usage of a string with its length fixed.
The incorrect length in the trigger file configuration descriptor
  fixed (BUG#14090).
A hook for unknown keys added to the parser to support old .TRG files.
2005-11-20 20:47:07 +02:00
dlenev@mysql.com
d1eb512948 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13825
2005-11-19 15:11:57 +03:00
dlenev@mysql.com
574e711209 Fix for bug #13825 "Triggers: crash if release savepoint" and for general
handling of savepoints in stored routines.

Fixed ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint()
functions to properly handle savepoints inside of stored functions and
triggers.
Also now when we invoke stored function or trigger we create new savepoint
level. We destroy it at the end of function/trigger execution and return back
to old savepoint level.
2005-11-19 15:09:23 +03:00
pem@mysql.com
3a832faafe Post-review fixes, mainly fixing all print() methods for sp_instr* classes.
Also added mysql-test files:
 include/is_debug_build.inc
 r/is_debug_build.require
 r/sp-code.result
 t/sp-code.test
2005-11-18 16:30:27 +01:00
pem@mysql.com
c518a2405f Background:
Since long, the compiled code of stored routines has been printed in the trace file
when starting mysqld with the "--debug" flag. (At creation time only, and only in
debug builds of course.) This has been helpful when debugging stored procedure
execution, but it's a bit awkward to use. Also, the printing of some of the
instructions is a bit terse, in particular for sp_instr_stmt where only the command
code was printed.

This improves the printout of several of the instructions, and adds the debugging-
only commands "show procedure code <name>" and "show function code <name>".
(In non-debug builds they are not available.)
2005-11-17 11:11:48 +01:00
igor@rurik.mysql.com
dc32369fb0 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-11-16 20:09:35 -08:00
konstantin@mysql.com
9e1f155864 A fix and a test case for Bug#14077 "Failure to replicate a stored
function with a cursor". Enable execution of SELECT queries in SP on slave.
2005-11-17 03:15:10 +03:00
igor@rurik.mysql.com
aaf066bc86 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-11-15 23:01:29 -08:00
SergeyV@selena.
43bbd352e3 Merge svlasenko@bk-internal.mysql.com:/home/bk/mysql-5.0
into  selena.:H:/MYSQL/src/#14569-mysql-5.0
2005-11-14 17:42:14 +03:00
igor@rurik.mysql.com
d903d10f80 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-11-13 17:56:20 -08:00
SergeyV@selena.
dbb29d11ee Fixes bug #14569. When no db is selected as current and we do create procedure db.sp()...
we changing current db temporarily and restore it when sp is created. however thd->db
in this case becomes empty string rather than NULL and so all checks of thd->db == NULL 
will be false. So if after this we'll issue create procedure sp2()... without specifying
db it will succeed and create sp with db=NULL, which causes mysqldto crash on 
show procedure status statement.

This patch fixes the problem.
2005-11-11 21:01:48 +03:00
SergeyV@selena.
d2042caca6 Fixes bug #14569. In addition to check current db of not being NULL value
it is added a check of not being empty value. When modifying SP with Admin 
application on win32 it does not pass curent database so sp is stored with
db=null which causes a crash later on show procedure status;
2005-11-11 19:06:18 +03:00
anozdrin@mysql.com
f23f49ed57 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/alik/MySQL/devel/5.0-wl2818
2005-11-10 22:48:00 +03:00
anozdrin@mysql.com
491e4f89f5 WL#2818 (Add creator to the trigger definition for privilege
checks on trigger activation)
2005-11-10 22:25:03 +03:00
guilhem@mysql.com
ff46e54932 WL#2971 "change log-bin-trust-routine-creators=0 to apply only to functions".
Indeed now that stored procedures CALL is not binlogged, but instead the invoked substatements are,
the restrictions applied by log-bin-trust-routine-creators=0 are superfluous for procedures.
They still need to apply to functions where function calls are written to the binlog (for example as "DO myfunc(3)").
We rename the variable to log-bin-trust-function-creators but allow the old name until some future version (and issue a warning if old name is used).
2005-11-10 17:50:51 +01:00
igor@rurik.mysql.com
8e8a2d79cc Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-11-04 17:54:47 -08:00
guilhem@mysql.com
cb1d21eeba sql_parse.cc:
SCCS merged
2005-11-04 10:54:51 +01:00
bell@sanja.is.com.ua
efbdd24c96 found problem removed 2005-11-02 15:17:57 +02:00
bell@sanja.is.com.ua
c54d129224 postreview fixes 2005-10-31 22:14:27 +02:00
igor@rurik.mysql.com
6a1c8d48f6 Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-10-29 09:41:18 -07:00
igor@rurik.mysql.com
30a7c28603 Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-10-27 21:37:52 -07:00
bell@sanja.is.com.ua
c399932a72 fixe of typos, comments & layout 2005-10-28 00:56:44 +03:00
bell@sanja.is.com.ua
6143c6543e Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-owner7-5.0
2005-10-28 00:24:13 +03:00
bell@sanja.is.com.ua
1b164c7b83 support of view underlying tables and SP functions security check added (BUG#9505) (WL#2787) 2005-10-28 00:18:23 +03:00
hf@deer.(none)
8cd0241439 Merge deer.(none):/home/hf/work/mysql-5.0.13667
into deer.(none):/home/hf/work/mysql-5.0.12267
2005-10-25 21:09:37 +05:00
igor@rurik.mysql.com
a236acce10 Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2005-10-22 19:35:37 -07:00
gluh@eagle.intranet.mysql.r18.ru
e8d52711ad fix for bug#14089 FROM list subquery always fails when
information_schema is current database
  skip the check of I_S tables if table is derived table
2005-10-21 13:14:54 +05:00
guilhem@mysql.com
0cf057ee33 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/mysql_src/mysql-5.0
2005-10-20 10:14:25 +02:00
konstantin@mysql.com
bee76b78a2 A fix and a test case for Bug#13587 "Server crash when SP is created
without database"
2005-10-19 14:46:32 +04:00
guilhem@mysql.com
b386fef15f Fix for BUG#4544 "read_only also affects temporary tables":
the READ_ONLY global variable now allows statements which are to update only temporary tables
(note: if a statement, after parse stage, looks like it will update a non-temp table, it will be rejected,
even if at execution it would have turned out that 0 rows would be updated; for example
UPDATE my_non_tem_table SET a=1 WHERE 1 = 0; will be rejected).
2005-10-17 10:52:34 +02:00
igor@rurik.mysql.com
c136e9c43b Fixed bug #12762:
allowed set functions aggregated in outer subqueries, allowed nested set functions.
2005-10-15 14:32:37 -07:00
elliot@mysql.com
a93780b23d BUG#13343 CREATE|etc TRIGGER|VIEW|USER don't commit the transaction (inconsistency)
Updated more DDL statements to cause implicit commit.
2005-10-13 05:12:17 -04:00
gluh@eagle.intranet.mysql.r18.ru
4b2a0f0c70 after merge fix 2005-10-12 13:18:46 +05:00
gluh@mysql.com
d19c85199f 4.1->5.0 merge 2005-10-12 11:54:12 +05:00
monty@mysql.com
5513ab69b7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-12 00:59:52 +03:00
monty@mysql.com
f5fdf3e87a Reviewing new pushed code
- CHAR() now returns binary string as default
- CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
- Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
  (Some old systems returns ETIME and it's safer to test for both values
   than to try to write a wrapper for each old system)
- Fixed new introduced bug in NOT BETWEEN X and X
- Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
- Use octet2hex() for all conversion of string to hex
- Simplify and optimize code
2005-10-12 00:58:22 +03:00
hf@deer.(none)
40bd22ef69 Fix for bug #13667 (Inconsistency for decimal(m,d) specification. 2005-10-11 21:18:04 +05:00
lars@mysql.com
5456afc603 Added missing HAVE_REPLICATION define 2005-10-10 21:42:14 +02:00
lars@mysql.com
af951aa662 After merge fixes 2005-10-10 19:38:58 +02:00
lars@mysql.com
cd0e0a9933 Added missing HAVE_REPLICATION define 2005-10-10 19:23:13 +02:00
lars@mysql.com
57f36732ca Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1
into  mysql.com:/users/lthalmann/bk/mysql-5.0
2005-10-10 17:50:19 +02:00
lars@mysql.com
998380521f BUG#12618: Removing fake locking 2005-10-10 15:10:14 +02:00
serg@serg.mylan
ba169f81e3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-10-08 16:59:41 +02:00
serg@serg.mylan
510d5c3583 Merge serg.mylan:/usr/home/serg/Abk/mysql-4.1
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-10-08 16:56:10 +02:00
serg@serg.mylan
e91712d9bb pthread_handler_decl() changed to be ctags-friendly
(and contain extern "C" when necessary)
2005-10-08 16:39:55 +02:00
serg@serg.mylan
ae293f9ac5 Bug #10942 "deadlock with FLUSH TABLES WITH READ LOCK + STOP SLAVE"
don't allow STOP SLAVE if global read lock is in taken
2005-10-08 14:46:04 +02:00
monty@mysql.com
17d7ba931d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-08 03:37:23 +03:00
gluh@eagle.intranet.mysql.r18.ru
b2b8d8b276 Fix for bug#13202 SELECT * INTO OUTFILE ... FROM information_schema.schemata now fails
allow select into outfile from I_S tables
  it is enough to add FILE_ACL for I_S tables only to 'check_table_access' function
  as we use 'any_db' for 'check_access' function in places where FILE_ACL is required
2005-10-07 14:16:44 +05:00
monty@mysql.com
78e828d32f Review of code pushed since last 5.0 pull:
Ensure that ccache is also used for C programs
mysql: Ensure that 'delimiter' works the same way in batch mode as in normal mode
mysqldump: Change to use ;; (instead of //) as a stored procedure/trigger delimiter
Fixed test cases by adding missing DROP's and rename views to be of type 'v#'
Removed MY_UNIX_PATH from fn_format()
Removed current_db_used from TABLE_LIST
Removed usage of 'current_thd' in Item_splocal
Removed some compiler warnings
A bit faster longlong2str code
2005-10-06 17:54:43 +03:00
serg@serg.mylan
2356401750 Bug#12935 Local and XA transactions not mutually exclusive 2005-10-05 19:58:16 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
26b3ef7f44 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0-icc
2005-09-30 13:56:32 +03:00
serg@serg.mylan
8c813c0a16 duplicate error message removed 2005-09-30 12:01:39 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
43b544a968 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0-icc
2005-09-30 12:36:23 +03:00
dlenev@mysql.com
6f7928c293 Fix for bug #13546 "Build errors with --with-embedded-server
--with-embedded-privilege-control options". One more (hopefully last) build
failure which was introduced during work on WL#2787 "Add view definer/owner
to the view definition..."
2005-09-28 18:43:46 +04:00
hf@deer.(none)
6890eae9e5 Merging 2005-09-26 13:15:01 +05:00
jani@a193-229-222-105.elisa-laajakaista.fi
acf218b708 Several fixes revelaled by Intel compiler. 2005-09-23 16:47:08 +03:00
serg@serg.mylan
306aa15391 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0-merged
2005-09-21 17:42:44 +02:00
serg@serg.mylan
3b41e3362b aftermerge fix 2005-09-21 17:38:26 +02:00
jonas@perch.ndb.mysql.com
f35c49f748 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-push
2005-09-21 13:22:59 +02:00
serg@serg.mylan
23f35495ac merged 2005-09-21 12:37:51 +02:00
bell@sanja.is.com.ua
506c6eb922 postmerge fixes 2005-09-21 08:29:47 +03:00
bell@sanja.is.com.ua
c1b185f5ff WL#2787 (Add view definer/owner to the view definition (.frm) to check privileges on used tables and stored routines when using a VIEW.)
Part 2 postreview fixes.
2005-09-20 21:20:38 +03:00
jonas@perch.ndb.mysql.com
2119a88abe Merge perch.ndb.mysql.com:/home/jonas/src/mysql-4.1
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
2005-09-20 10:46:33 +02:00
jonas@perch.ndb.mysql.com
8983e39070 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1
into  perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-push
2005-09-20 09:50:10 +02:00
jonas@perch.ndb.mysql.com
668a192ce5 ndb - imlp. show engine ndb status;
that dump free list allocation per connection
2005-09-19 15:35:07 +02:00
bell@sanja.is.com.ua
aec371f910 WL#2787 (part 2, ver 3 (merged)) changed securety context switching 2005-09-15 22:29:07 +03:00
elliot@mysql.com
86882cc8f9 Merge mysql.com:/home/emurphy/src/work/mysql-5.0-bug-12870
into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.0
2005-09-14 14:44:48 -04:00
elliot@mysql.com
8e7e17166c BUG#12870 (CREATE PROCEDURE followed by ROLLBACK is not replicated)
Fixed by making CREATE/ALTER/DROP PROCEDURE cause implicit commit.
2005-09-14 14:42:39 -04:00
sasha@asksasha.com
a9a612f1b6 Merge spachev@bk-internal.mysql.com:/home/bk/mysql-4.1
into  asksasha.com:/reiser-data/mysql-dev/mysql-4.1-bug11139
2005-09-14 06:37:52 -06:00
sasha@asksasha.com
00eae49b5c fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
present): the problem originally was that the tables in auxilliary_tables did not have 
the correct real_name, which caused problems in the second call to tables_ok(). 
The fix corrects the real_name problem, and also sets the updating flag properly, 
which makes the second call to tables_ok() unnecessary.
2005-09-14 06:31:38 -06:00
bell@sanja.is.com.ua
9388f7277c Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-owner2-5.0
2005-09-14 12:26:09 +03:00
bell@sanja.is.com.ua
914b961d01 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-owner2-5.0
2005-09-14 11:07:04 +03:00
bell@sanja.is.com.ua
71ffbbf81b part 1 (ver 2, postreview fix) of WL#2787
view definer information syntax/storage/replication
fixed SOURCE field of .frm
2005-09-14 10:53:09 +03:00
gluh@mysql.com
2184915127 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/gluh/MySQL/Bugs/5.0.cml
2005-09-14 12:11:19 +05:00
gluh@eagle.intranet.mysql.r18.ru
f66e51e735 formatting typo fix 2005-09-14 12:10:07 +05:00
gluh@eagle.intranet.mysql.r18.ru
cc395fc0c2 Bug#9683 INFORMATION_SCH: Creation of temporary table allowed in
Information_schema DB 
Bug#9846 Inappropriate error displayed while
         dropping table from 'INFORMATION_SCHEMA'
Bug#10734 Grant of privileges other than 'select' and 
         'create view' should fail on schema 
Bug#10708 SP's can use INFORMATION_SCHEMA as ROUTINE_SCHEMA

 cumulative fix for bugs above(after review, 2nd version)
 added privilege check for information schema db & tables
2005-09-13 16:07:38 +05:00
timour@mysql.com
dc935404c3 Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-2486
2005-09-13 13:51:25 +03:00
timour@mysql.com
54db60c080 Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-bug-12943
2005-09-12 19:05:55 +03:00
timour@mysql.com
9d862db743 Fix for BUG#6808.
The problem was in that add_table_to_list was testing for duplicate tables
in a list of tables that included the created view.
2005-09-12 17:01:17 +03:00
lars@mysql.com
f8594113cf Merge mysql.com:/users/lthalmann/bk/mysql-4.1-one_shot
into  mysql.com:/users/lthalmann/bk/mysql-5.0
2005-09-11 01:23:08 +02:00
lars@mysql.com
eff11c53a6 Removed redundant reset_one_shot_variables calls 2005-09-11 00:57:31 +02:00
timour@mysql.com
7d24bdac22 Fix for BUG#12943.
The problem was that in the first production in rule 'join_table', that
processes simple cross joins, the parser was processing the second join operand
before the first one due to unspecified priorities of JOINs. As a result in the
case of cross joins the parser constructed a tree with incorrect nesting:
the expression "t1 join t2 join t3 on some_cond" was interpreted as
"t1 join (t2 join t3 on some_cond)" instead of
"(t1 join t2) join t3 on some_cond".
Because of this incorrect nesting the method make_join_on_context picked an
incorrect table as the first table of the name resolution context.

The solution assignes correct priorities to the related production.
2005-09-10 15:01:54 +03:00
konstantin@mysql.com
dd02830957 Comment why lex->result is ignored if EXPLAIN 2005-09-09 16:23:12 +04:00
sergefp@mysql.com
e5b4252481 Fix for BUG#12637: Make SPs+user variables replication work:
* Allocate thd->user_var_events elements on appropriate mem_root
* If several SP statements are binlogged as a single statement, collect all user var
  accesses they make (grep for StoredRoutinesBinlogging for details)
2005-09-07 19:39:47 +04:00
eric@mysql.com
81948e621a Merge eherman@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/Users/eric/bktmp/mysql-4.1
2005-09-06 11:38:52 -07:00
bar@mysql.com
51d0e0bc30 Merge mysql.com:/usr/home/bar/mysql-4.1.b9948
into  mysql.com:/usr/home/bar/mysql-5.0
2005-09-06 14:35:36 +05:00
bar@mysql.com
6a5f00702d Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/bar/mysql-4.1.b9948
2005-09-05 20:05:32 +05:00
bar@mysql.com
0eafb9572a mysqld.cc, mysql_priv.h, sql_parse.cc:
bug#9948
  changed client-charset behavior in 4.1.x libmysql, which issue BC prob
  after review fixes
2005-09-05 20:00:11 +05:00
hf@deer.(none)
7ed01976df Error message changed for buf #12694 as PeterG suggested 2005-09-04 17:45:02 +05:00
eric@mysql.com
5a8af4cb9e Backport of JimW's localhost patch to 4.1 tree.
Handle systems like default FC4 where 127.0.0.1 doesn't always map to 'localhost' first. 
(Bug #11822)
2005-09-02 17:07:05 -07:00
konstantin@mysql.com
aac74557db Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kostja/mysql/mysql-5.0-dsql3
2005-09-03 03:25:59 +04:00
konstantin@mysql.com
38486e83c1 Implement WL#2661 "Prepared Statements: Dynamic SQL in Stored Procedures".
The idea of the patch is to separate statement processing logic,
such as parsing, validation of the parsed tree, execution and cleanup, 
from global query processing logic, such as logging, resetting
priorities of a thread, resetting stored procedure cache, resetting
thread count of errors and warnings.
This makes PREPARE and EXECUTE behave similarly to the rest of SQL
statements and allows their use in stored procedures.
This patch contains a change in behaviour:
until recently for each SQL prepared statement command, 2 queries
were written to the general log, e.g.
[Query]   prepare stmt from @stmt_text;
[Prepare] select * from t1 <-- contents of @stmt_text
The chagne was necessary to prevent [Prepare] commands from being written
to the general log when executing a stored procedure with Dynamic SQL.
We should consider whether the old behavior is preferrable and probably
restore it.
This patch refixes Bug#7115, Bug#10975 (partially), Bug#10605 (various bugs
in Dynamic SQL reported before it was disabled).
2005-09-03 03:13:18 +04:00
bell@sanja.is.com.ua
8553349638 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-09-02 17:06:15 +03:00
konstantin@mysql.com
a3ddcdf8fb Rename:
- current_arena to stmt_arena: the thread may have more than one
'current' arenas: one for runtime data, and one for the parsed 
tree of a statement. Only one of them is active at any moment.
- set_item_arena -> set_query_arena, because Item_arena was renamed to 
Query_arena a while ago
- set_n_backup_item_arena -> set_n_backup_active_arena;
the active arena is the arena thd->mem_root and thd->free_list
are currently pointing at.
- restore_backup_item_arena -> restore_active_arena (with the same
rationale)
- change_arena_if_needed -> activate_stmt_arena_if_needed; this
method sets thd->stmt_arena active if it's not done yet.
2005-09-02 17:21:19 +04:00
bell@sanja.is.com.ua
d67c683404 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-09-02 15:56:14 +03:00
lars@mysql.com
198350d630 Merge mysql.com:/users/lthalmann/bk/mysql-4.1
into  mysql.com:/users/lthalmann/bk/mysql-5.0
2005-09-02 11:01:00 +02:00
bell@sanja.is.com.ua
2434c8af4b Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-09-02 09:51:32 +03:00
lars@mysql.com
9d8f51fe3a Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1
into  mysql.com:/users/lthalmann/bk/mysql-4.1-bug12542
2005-09-02 01:37:16 +02:00
bell@sanja.is.com.ua
dd7ab17059 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-09-01 22:42:37 +03:00
dlenev@mysql.com
d23732962f Merge mysql.com:/home/dlenev/src/mysql-4.1-bg12423
into  mysql.com:/home/dlenev/src/mysql-5.0-merges
2005-09-01 23:25:29 +04:00
lars@mysql.com
9dd14fc381 BUG#12542: Added comments 2005-09-01 17:58:00 +02:00
dlenev@mysql.com
0683c122b6 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/dlenev/src/mysql-4.1-bg12423
2005-09-01 17:01:25 +04:00
dlenev@mysql.com
da2af0bb6d Fix for bug #12423 "Deadlock when doing FLUSH PRIVILEGES and GRANT in
multi-threaded environment".

To avoid deadlocks between several simultaneously run account management 
commands (particularly between FLUSH PRIVILEGES/SET PASSWORD and GRANT
commands) we should always take table and internal locks during their
execution in the same order. In other words we should first open and lock
privilege tables and only then obtain acl_cache::lock/LOCK_grant locks.
2005-09-01 16:52:59 +04:00
msvensson@neptunus.(none)
68778715ae Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/bug11286/my50-bug11286
2005-09-01 14:47:06 +02:00
msvensson@neptunus.(none)
8c0f7f82d9 Bug #11286 yassl incompatible with "load data infile"
- Make sure that mysqltest always uses ssl when connecting to the server.
 - Pass a i32-bit int variable as argument to FIONREAD ioctl.
2005-09-01 11:46:43 +02:00
lars@mysql.com
7fd89c85b7 BUG#12542: All set statements should be executed by slave thd
rpl_replicate_do.result:
  New test case
sql_parse.cc:
  All SET statements should be executed by slave thd
rpl_replicate_do.test:
  New test case
2005-08-31 18:08:45 +02:00
bar@mysql.com
f2ea1ac8b8 bug#9948 changed client-charset behavior in 4.1.x libmysql, which issue BC prob
sql_parse.cc:
mysqld.cc:

  Added --skip-client-character-set-handshake.
  When this option is activated, client side character set
  (which is sent in handshake) is ignored, and server side
  default-character-set value is used for character_set_client
  and character_set_results, thus reprodicing 4.0 behaviour.
2005-08-31 13:03:24 +05:00
ingo@mysql.com
3e06800b7f Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-5000
2005-08-30 12:35:37 +02:00
osku@127.(none)
0848d8c366 Bug #11946: Review fixes. 2005-08-30 12:39:20 +03:00
ingo@mysql.com
4368e9957d After merge fix. 2005-08-29 18:41:39 +02:00
ingo@mysql.com
5d41d5e0f4 Merge mysql.com:/home/mydev/mysql-4.1-4100
into  mysql.com:/home/mydev/mysql-5.0-5000
2005-08-29 18:18:30 +02:00
ingo@mysql.com
674f8dfa7c Bug#11493 - Alter table rename to default database does not work without db name qualifying
Supplied the default database name for ALTER TABLE ... RENAME 
for the new table instead of the old tables db like we do for 
other ALTERs.
2005-08-29 16:54:33 +02:00
sergefp@mysql.com
ad9bfc251c Slightly amended Monty's SP replication code cleanup patch 2005-08-27 02:33:06 +04:00
hf@deer.(none)
aa991c6f21 Fix for bug #12694 (float(1,2) field error) 2005-08-25 19:21:47 +05:00
sergefp@mysql.com
95c3afc5d9 Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs.
"Interleaved SPs execution is now binlogged properly, "SELECT spfunc()" is binlogged too.
The known remaining issue is binlogging/replication of "a routine is deleted while it is executed" scenario.
2005-08-25 17:34:34 +04:00
dlenev@mysql.com
2a880905c4 Correction of fix for bug #12280 "Triggers: crash if flush tables".
We should not assume that "thd" argument of reload_acl_and_cache() is
non-zero. Failure to do so will cause server to crash when one sends
SIGHUP to it.
2005-08-24 23:44:42 +04:00
lars@mysql.com
f98f46c471 BUG#12532: Fixes after review 2005-08-24 01:45:15 +02:00
bell@sanja.is.com.ua
144c847da6 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-08-23 23:17:36 +03:00
monty@mishka.local
d62295e44e Cleanup during review of new pushed code 2005-08-22 01:13:37 +03:00
monty@mishka.local
ba2ace25a9 Merge mishka.local:/tmp/skr99/mysql-5.0
into  mishka.local:/home/my/mysql-5.0
2005-08-21 13:05:15 +03:00
monty@mishka.local
1c1f26d5e2 Fixes during review of new pushed code
Fixed new bug when running a SP without a default database
2005-08-20 11:00:00 +03:00
timour@mysql.com
f5fc1543aa WL#2486 - natural and using join according to SQL:2003
- Corrected problem with N-way nested natural joins in PS mode.
- Code cleanup
- More asserts to check consistency of name resolution contexts
- Fixed potential memory leak of name resolution contexts
2005-08-19 15:22:30 +03:00
monty@mysql.com
c726451abb Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-08-18 03:41:11 +03:00
monty@mysql.com
3eaa953529 Cleanups and optimization during review of new code 2005-08-18 03:12:42 +03:00
jimw@mysql.com
2d34276417 Merge mysql.com:/home/jimw/my/mysql-5.0-12318
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2005-08-15 12:39:36 -07:00
jimw@mysql.com
a3eaf4eec2 Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2005-08-15 12:37:45 -07:00
monty@mysql.com
c10f05552f Don't clear warnings for functions or triggers
Fixed failing test
2005-08-15 20:08:58 +03:00
monty@mysql.com
1a6f16edd9 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-08-15 18:35:48 +03:00
monty@mysql.com
df32f7d621 Save and clear run context before executing a stored function or trigger and restore it afterwards.
This allows us to use statement replication with functions and triggers
The following things are fixed with this patch:
- NOW() and automatic timestamps takes the value from the main event for functions and triggers (which allows these to replicate with statement level logging)
- No side effects for triggers or functions with auto-increment values(), last_insert_id(), rand() or found_rows()
- Triggers can't return result sets

Fixes bugs:
#12480: NOW() is not constant in a trigger
#12481: Using NOW() in a stored function breaks statement based replication
#12482: Triggers has side effects with auto_increment values
#11587: trigger causes lost connection error
2005-08-15 18:15:12 +03:00
sanja@hasky.mysql.fi
1006063ef1 Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  hasky.mysql.fi:/home/sanja/work-merge-5.0
2005-08-13 11:16:26 +03:00
sanja@hasky.mysql.fi
16d279bb12 Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  hasky.mysql.fi:/home/sanja/work-merge-5.0
2005-08-13 08:19:34 +03:00