Commit graph

21467 commits

Author SHA1 Message Date
kostja@bodhi.(none)
8b8b44151c Fix broken automatic dependency tracking of Automake in sql/:
The embedded library is still broken, but there the situation
with dependencies is even more broken.
2007-06-22 19:58:27 +04:00
thek@adventure.(none)
2da5b6268a Merge adventure.(none):/home/thek/Development/cpp/bug28846/my51-bug28846
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-06-22 15:39:34 +02:00
thek@adventure.(none)
0edfc7394d Bug #28846 Use of undocumented Prepared Statements crashes server
- Manual merge patch.
2007-06-22 15:38:23 +02:00
thek@adventure.(none)
3d7bc219f1 Merge adventure.(none):/home/thek/Development/cpp/bug28846/my50-bug28846
into  adventure.(none):/home/thek/Development/cpp/bug28846/my51-bug28846
2007-06-22 15:23:51 +02:00
thek@adventure.(none)
3e7c1b1cb1 Bug#28846 Use of undocumented Prepared Statements crashes server
ALTER VIEW is currently not supported as a prepared statement
and should be disabled as such as they otherwise could cause server crashes.

ALTER VIEW is currently not supported when called from stored
procedures or functions for related reasons and should also be disabled.

This patch disables these DDL statements and adjusts the appropriate test
cases accordingly.

Additional tests has been added to reflect on the fact that we do support
CREATE/ALTER/DROP TABLE for Prepared Statements (PS), Stored Procedures (SP)
and PS within SP.
2007-06-22 11:55:48 +02:00
kostja@bodhi.(none)
68632318dc Manual merge. 2007-06-19 15:02:08 +04:00
thek@adventure.(none)
a0b8394c23 Merge adventure.(none):/home/thek/Development/cpp/bug28211/my51-bug28211
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-06-19 09:13:17 +02:00
thek@adventure.(none)
2da91b2316 Bug#28211 RENAME DATABASE and query cache don't play nicely together
When all table blocks were removed from the query cache the client session
hung in a tight loop waiting on an impossible condition while consuming a lot
of CPU.

This patch also corrects an error which caused valid tables to sometimes be
removed from the query cache.
2007-06-18 17:46:29 +02:00
tomas@whalegate.ndb.mysql.com
6b8e7c9484 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-engines
2007-06-17 19:47:56 +02:00
tomas@whalegate.ndb.mysql.com
ff804bc546 Bug #28989 hpux11 ps_row warnings
- do not print 701 dictionary busy error
2007-06-17 19:47:20 +02:00
tomas@whalegate.ndb.mysql.com
830be6deac Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-engines
2007-06-17 17:21:27 +02:00
istruewing@chilla.local
938fc3d66e Merge chilla.local:/home/mydev/mysql-5.1-amain
into  chilla.local:/home/mydev/mysql-5.1-axmrg
2007-06-16 13:14:23 +02:00
tomas@whalegate.ndb.mysql.com
8d31148899 Bug #28949
- handler binlog's must be shutdoem before logger.cleanup_base
2007-06-16 11:16:02 +02:00
iggy@alf.
e0adab8ce7 Merge alf.:D:/src/mysql-5.1-maint
into  alf.:D:/src/mysql-5.1-maint_winemb
2007-06-15 14:45:44 -04:00
iggy@alf.
c15a2647a0 Embedded Server doesn't build on Windows.
- Add build configuration parameter EMBEDDED_ONLY which will configure 
the VS solution to produce only mysql embedded binary.
- Make necessary updates to successfully compile solution.
2007-06-15 14:32:16 -04:00
istruewing@chilla.local
875cac1ffb Merge chilla.local:/home/mydev/mysql-5.1-amain
into  chilla.local:/home/mydev/mysql-5.1-axmrg
2007-06-15 20:23:20 +02:00
malff/marcsql@weblab.(none)
7e36d37eb0 Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge
2007-06-15 11:36:31 -06:00
tsmith@maint1.mysql.com
a9ae34b56c Merge quadxeon:m/srv/quadxeon/local/bk/maint/jun14/50
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-15 18:56:11 +02:00
tsmith@maint1.mysql.com
9f4134267a Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-15 18:03:59 +02:00
tsmith@quadxeon.mysql.com
73035c274f Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun14/50
2007-06-15 17:59:04 +02:00
kostja@bodhi.(none)
9e6685dc74 Another attempt to fix the valgrind warning in SHOW PROCESSLIST
(event_bugs.test)
2007-06-15 12:40:30 +04:00
dkatz@damien-katzs-computer.local
3a1a561322 Merge damien-katzs-computer.local:/Users/dkatz/mysql51
into  damien-katzs-computer.local:/Users/dkatz/51_win
2007-06-14 20:48:11 -04:00
tsmith@maint1.mysql.com
664fa012c0 Merge quadxeon:m/srv/quadxeon/local/bk/maint/jun14/51
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-15 02:36:37 +02:00
tsmith@quadxeon.mysql.com
918090030b Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun14/51
2007-06-15 01:57:33 +02:00
malff/marcsql@weblab.(none)
b27172eb70 build warning 2007-06-14 17:43:19 -06:00
antony@ppcg5.local
21c233440d Merge ppcg5.local:/Users/antony/Work/p2-bug25800.6
into  ppcg5.local:/Users/antony/Work/p2-bug25800.6.merge
2007-06-14 16:04:52 -07:00
cmiller@zippy.cornsilk.net
85caa3540e Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-06-14 18:17:26 -04:00
malff/marcsql@weblab.(none)
4466377736 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-27857
2007-06-14 15:58:51 -06:00
tsmith@quadxeon.mysql.com
87fdad4ce8 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun14/50
2007-06-14 23:23:30 +02:00
cmiller@zippy.cornsilk.net
d37e579411 Bug#21723: Should be able to dump core after setuid() under Linux
In many cases, binaries can no longer dump core after calling setuid().

Where the PR_SET_DUMPABLE macro is set, use the prctl() system call 
to tell the kernel that it's allowed to dump the core of the server.
2007-06-14 14:24:59 -04:00
anozdrin/alik@ibm.
754e9788b8 Part of patch for BUG#11986: make sp_head::m_body_begin pointer
private and provide a setter for it. The setter will be used to
construct UTF-query in the following patches.
2007-06-14 22:14:52 +04:00
malff/marcsql@weblab.(none)
ef2bca44b0 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-27857
2007-06-14 12:00:14 -06:00
anozdrin/alik@ibm.
62e3e46275 This the 4-th patch in scope of CS patch (BUG#11986).
The patch contains the following changes:
  - Introduce auxilary functions to convenient work with character sets:
    - resolve_charset();
    - resolve_collation();
    - get_default_db_collation();
  - Introduce lex_string_set();
  - Refactor Table_trigger_list::process_triggers() &
    sp_head::execute_trigger() to be consistent with other code;
  - Move reusable code from add_table_for_trigger() into
    build_trn_path(), check_trn_exists() and load_table_name_for_trigger()
    to be used in the following patch.
  - Rename triggers_file_ext and trigname_file_ext into TRN_EXT and
    TRG_EXT respectively.
2007-06-14 19:23:55 +04:00
anozdrin/alik@ibm.
f8be48bb4f This is the 3-rd part of patch for BUG#11986:
remove redundant "body" from Event_parse_data (use sp_head::m_body).
2007-06-14 18:49:17 +04:00
anozdrin/alik@ibm.
1ff91214c6 The second cleanup patch in scope of BUG#11986.
1. Introduce parse_sql() as a high-level replacement for MYSQLparse().
parse_sql() is responsible to switch and restore "parser context"
(THD::m_lip for now).

2. Fix typo in sp.cc: THD::spcont should be reset *before* calling
the parser.
2007-06-14 18:35:59 +04:00
mskold/marty@linux.site
c487c38111 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
2007-06-14 16:10:11 +02:00
holyfoot/hf@hfmain.(none)
1e9373fd60 Merge bk@192.168.21.1:mysql-5.1
into  mysql.com:/d2/hf/mrg/mysql-5.1-opt
2007-06-14 16:42:43 +05:00
holyfoot/hf@hfmain.(none)
8ccc50b303 Merge bk@192.168.21.1:mysql-5.0
into  mysql.com:/d2/hf/mrg/mysql-5.0-opt
2007-06-14 16:41:10 +05:00
holyfoot/hf@hfmain.(none)
76e0a0768a Merge mysql.com:/d2/hf/mrg/mysql-5.0-opt
into  mysql.com:/d2/hf/mrg/mysql-5.1-opt
2007-06-14 16:35:20 +05:00
bar@mysql.com/bar.myoffice.izhnet.ru
6d2ffe7b8e Bug#26402 Server crashes with old-style named table
Problem: crash on attempt to open a table
  having "#mysql50#" prefix in db or table name.
  Fix: This prefix is reserved for "mysql_upgrade"
  to access 5.0 tables  whose file names are not encoded
  according to "5.1 tablename to filename encoded".
  Don't try open tables whose db name or table name
  has this prefix.
2007-06-14 16:28:33 +05:00
malff/marcsql@weblab.(none)
dd2bdfda8d Bug#27857 (Log tables supplies the wrong value for generating AUTO_INCREMENT
numbers)

Before this patch, the code in the class Log_to_csv_event_handler, which is
used by the global LOGGER object to write to the tables mysql.slow_log and
mysql_general_log, was supporting only records of the format defined for
these tables in the database creation scripts.

Also before this patch, the server would allow, with certain limitations,
to perform ALTER TABLE on the LOG TABLES.

As implemented, the behavior of the server, with regards to LOG TABLES,
is inconsistent:
- either ALTER TABLES on LOG TABLES should be prohibited,
and the code writing to these tables can make assumptions on the record
format,
- or ALTER TABLE on LOG TABLES is permitted, in which case the code
writing a record to these tables should be more flexible and honor
new fields.

In particular, adding an AUTO_INCREMENT column to the logs,
does not work as expected (per the bug report).

Given that the ALTER TABLE on log tables statement has been explicitly
implemented to check that the log should be off to perform the operation,
and that current test cases already cover this, the user expectation is
already set that this is a "feature" and should be supported.

With this patch, the server will:
- populate AUTO INCREMENT columns if present,
- populate any additional column with it's default value
when writing a record to the LOG TABLES.

Tests are provided, that detail the precise sequence of statements
a SUPER user might want to perform to add more columns to the log tables.
2007-06-13 22:05:22 -06:00
dkatz@damien-katzs-computer.local
65e47d59db Bug #28897 UUID() returns non-unique values when query cache is enabled
Removed the ability to cache queries with UUID() and UUID_SHORT().
2007-06-13 17:25:16 -04:00
dkatz@damien-katzs-computer.local
471173c57c Bug #28953 Using events in a replication let the slave crash.
Fixed where the slave code would try to update the Lex->sphead which is NULL on an "alter table" commands.
2007-06-13 16:24:21 -04:00
dkatz@damien-katzs-computer.local
1481bfc87b Bug #28897 UUID() returns non-unique values when query cache is enabled
Removed the ability to cache queries containing "UUID()".
2007-06-13 14:23:25 -04:00
igor@olga.mysql.com
20ad515003 Fixed bug #28980: the result of ROUND(<decimal expr>,<int column>)
was erroneously converted to double, while the result of
ROUND(<decimal expr>, <int literal>) was preserved as decimal.
As a result of such a conversion the value of ROUND(D,A) could
differ from the value of ROUND(D,val(A)) if D was a decimal expression.

Now the result of the ROUND function is never converted to 
double if the first argument is decimal.
2007-06-13 09:32:36 -07:00
malff/marcsql@weblab.(none)
daf0b9274f Fixed valgrind error, caused by incorrect pointer arithetic 2007-06-13 07:31:41 -06:00
antony@ppcg5.local
3bb1769bc0 Bug#25800
"Embedded server requires mysql.plugin"
  Embedded builds should not print any error when the mysql.plugin
  table does not exist. This is achieved by checking for the existance
  of the mysql.plugin table before attempting to open it and proceed
  silently if it does not exist.
2007-06-12 19:28:05 -07:00
malff/marcsql@weblab.(none)
a508260b85 Bug#25411 (trigger code truncated), PART II
Bug 28127 (Some valid identifiers names are not parsed correctly)
Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)

This patch is the second part of a major cleanup, required to fix
Bug 25411 (trigger code truncated).

The root cause of the issue stems from the function skip_rear_comments,
which was a work around to remove "extra" "*/" characters from the query
text, when parsing a query and reusing the text fragments to represent a
view, trigger, function or stored procedure.
The reason for this work around is that "special comments",
like /*!50002 XXX */, were not parsed properly, so that a query like:
  AAA /*!50002 BBB */ CCC
would be seen by the parser as "AAA BBB */ CCC" when the current version
is greater or equal to 5.0.2

The root cause of this stems from how special comments are parsed.
Special comments are really out-of-bound text that appear inside a query,
that affects how the parser behave.
In nature, /*!50002 XXX */ in MySQL is similar to the C concept
of preprocessing :
  #if VERSION >= 50002
  XXX
  #endif

Depending on the current VERSION of the server, either the special comment
should be expanded or it should be ignored, but in all cases the "text" of
the query should be re-written to strip the "/*!50002" and "*/" markers,
which does not belong to the SQL language itself.

Prior to this fix, these markers would leak into :
- the storage format for VIEW,
- the storage format for FUNCTION,
- the storage format for FUNCTION parameters, in mysql.proc (param_list),
- the storage format for PROCEDURE,
- the storage format for PROCEDURE parameters, in mysql.proc (param_list),
- the storage format for TRIGGER,
- the binary log used for replication.

In all cases, not only this cause format corruption, but also provide a vector
for dormant security issues, by allowing to tunnel code that will be activated
after an upgrade.

The proper solution is to deal with special comments strictly during parsing,
when accepting a query from the outside world.
Once a query is parsed and an object is created with a persistant
representation, this object should not arbitrarily mutate after an upgrade.
In short, special comments are a useful but limited feature for MYSQLdump,
when used at an *interface* level to facilitate import/export,
but bloating the server *internal* storage format is *not* the proper way
to deal with configuration management of the user logic.

With this fix:
- the Lex_input_stream class now acts as a comment pre-processor,
and either expands or ignore special comments on the fly.
- MYSQLlex and sql_yacc.yy have been cleaned up to strictly use the
public interface of Lex_input_stream. In particular, how the input stream
accepts or rejects a character is private to Lex_input_stream, and the
internal buffer pointers of that class are strictly private, and should not
be tempered with during parsing.

This caused many changes mostly in sql_lex.cc.

During the code cleanup in case MY_LEX_NUMBER_IDENT,
Bug 28127 (Some valid identifiers names are not parsed correctly)
was found and fixed.

By parsing special comments properly, and removing the function
'skip_rear_comments' [sic],
Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
has been fixed as well.
2007-06-12 15:23:58 -06:00
gkodinov/kgeorge@magare.gmz
72f395a559 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27816-5.1-opt
2007-06-12 19:24:48 +03:00
gkodinov/kgeorge@magare.gmz
eb1fb60975 5.0-opt -> 5.1-opt merge 2007-06-12 18:41:56 +03:00