Commit graph

16529 commits

Author SHA1 Message Date
davi@endora.local
529ed22389 Merge mysql.com:/Users/davi/mysql/bugs/34587-5.1
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-20 17:29:29 -03:00
davi@mysql.com/endora.local
b9c6b9eced Bug#34587 Creating a view inside a stored procedure leads to a server crash
The problem is that when a stored procedure is being parsed for
the first execution, the body is copied to a temporary buffer
which is disregarded sometime after the statement is parsed.
And during this parsing phase, the rule for CREATE VIEW was
holding a reference to the string being parsed for use during
the execution of the CREATE VIEW statement, leading to invalid
memory access later.

The solution is to allocate and copy the SELECT of a CREATE
VIEW statement using the thread memory root, which is set to
the permanent arena of the stored procedure.
2008-02-20 17:26:50 -03:00
davi@endora.local
d5847eb112 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-19 10:39:14 -03:00
davi@endora.local
84a0d7c507 Merge mysql.com:/Users/davi/mysql/bugs/23771-5.1
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-19 10:36:31 -03:00
kostja@dipika.(none)
d8e6308c42 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  dipika.(none):/opt/local/work/mysql-5.1-2pc-opt-merge-push
2008-02-19 14:53:22 +03:00
kostja@dipika.(none)
acf9b1f346 A fix and a test case for Bug#12713 "Error in a stored function called from
a SELECT doesn't cause ROLLBACK of statem".

The idea of the fix is to ensure that we always commit the current
statement at the end of dispatch_command(). In order to not issue
redundant disc syncs, an optimization of the two-phase commit
protocol is implemented to bypass the two phase commit if
the transaction is read-only.
2008-02-19 14:43:01 +03:00
anozdrin/alik@quad.
f4659b38af Merge quad.:/mnt/raid/alik/MySQL/devel/5.1
into  quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
2008-02-18 18:12:37 +03:00
anozdrin/alik@quad.
b25de63309 Add a test case for Bug#21704: Renaming column does not update
FK definition.
2008-02-15 14:14:09 +03:00
anozdrin/alik@quad.
6bf1306b13 A patch for Bug#18834: ALTER TABLE ADD INDEX on table with
two timestamp fields.
  
The actual problem here was that CREATE TABLE allowed zero
date as a default value for a TIMESTAMP column in NO_ZERO_DATE mode.
  
The thing is that for TIMESTAMP date type specific rule is applied:
  column_name TIMESTAMP == column_name TIMESTAMP DEFAULT 0
whever for any other date data type
  column_name TYPE == column_name TYPE DEFAULT NULL
  
The fix is to raise an error when we're in NO_ZERO_DATE mode and
there is TIMESTAMP column w/o default value.
2008-02-14 18:13:40 +03:00
mkindahl@dl145h.mysql.com
32853b9fa5 Removing non-deterministic tests from events_scheduling test. 2008-02-13 12:41:54 +01:00
anozdrin/alik@quad.
7e88f7718c Additional patch for Bug#31222: com_% global status counters
behave randomly with mysql_change_user.

The test case had to be moved into not_embedded_server.test file,
because SHOW GLOBAL STATUS does not work properly in embedded
server (see bug 34517).
2008-02-13 13:00:24 +03:00
anozdrin/alik@quad.
265dbd3056 Additional patch for Bug#32538. Fix result files of windows test cases. 2008-02-13 12:02:16 +03:00
anozdrin/alik@quad.
d36d243d3d Fix for Bug#32538: View definition picks up character set,
but not collation.

The problem here was that text literals in a view were always
dumped with character set introducer. That lead to loosing
collation information.

The fix is to dump character set introducer only if it was
in the original query. That is now possible because there 
is no problem any more of loss of character set of string
literals in views -- after WL#4052 the view is dumped 
in the original character set.
2008-02-12 22:09:16 +03:00
anozdrin/alik@quad.
d665fc3bd7 Fix for Bug#31222: com_% global status counters
behave randomly with mysql_change_user.
  
The problem was that global status variables were not updated
in THD::check_user(), so thread statistics were lost after
COM_CHANGE_USER.
  
The fix is to update global status variables with the thread ones
before preparing the thread for new user.
2008-02-12 20:59:09 +03:00
davi@mysql.com/endora.local
48ac77a95a Bug#23771 AFTER UPDATE trigger not invoked when there are no changes of the data
The problem is that AFTER UPDATE triggers will fire only if the
new data is different from the old data on the row. The trigger
should fire regardless of whether there are changes to the data.

The solution is to fire the trigger on UPDATE even if there are
no changes to the value (because the value is the same).
2008-02-12 09:44:27 -02:00
anozdrin/alik@quad.
fab537bc89 Fix create.test: use latin1 instead ucs2. 2008-02-08 20:06:05 +03:00
kostja@dipika.(none)
e9c887cc3d Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  dipika.(none):/opt/local/work/mysql-5.1-runtime
2008-02-08 18:55:07 +03:00
davi@endora.local
31b22496f4 Merge mysql.com:/Users/davi/mysql/mysql-5.0-runtime
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-08 10:21:58 -02:00
davi@mysql.com/endora.local
24b9abf36d Bug#33798 prepared statements improperly handle large unsigned ints
The unsignedness of large integer user variables was not being
properly preserved when feeded to prepared statements. This was
happening because the unsigned flags wasn't being updated when
converting the user variable is converted to a parameter.

The solution is to copy the unsigned flag when converting the
user variable to a parameter and take the unsigned flag into
account when converting the integer to a string.
2008-02-08 08:55:55 -02:00
malff@lambda.hsd1.co.comcast.net.
5d5bed0bcc test update 2008-02-07 12:00:48 -07:00
davi@endora.local
2e0ef9424d Merge mysql.com:/Users/davi/mysql/bugs/32633-5.1
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-07 16:14:39 -02:00
msvensson@pilot.mysql.com
04ca458fcb Merge pilot.mysql.com:/data/msvensson/mysql/bug31004/my50-bug31004
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.0-runtime
2008-02-07 12:42:49 +01:00
davi@mysql.com/endora.local
1c6768c487 Bug#32633 Can not create any routine if SQL_MODE=no_engine_substitution
The problem is that one can not create a stored routine if sql_mode
contains NO_ENGINE_SUBSTITUTION or PAD_CHAR_TO_FULL_LENGTH. Also when
a event is created, the mode is silently lost if sql_mode contains one
of the aforementioned.  This was happening because the table definitions
which stored sql_mode values weren't being updated to accept new values
of sql_mode.

The solution is to update, in a backwards compatible manner, the various
table definitions (columns) that store the sql_mode value to take into
account the new possible values. One incompatible change is that if a event
that is being created can't be stored to the mysql.event table, an error
will be raised.

The tests case also ensure that new SQL modes will be added to the mysql.proc
and mysql.event tables, otherwise the tests will fail.
2008-02-07 08:47:39 -02:00
davi@endora.local
8278d42586 Merge mysql.com:/Users/davi/mysql/bugs/21801-5.1
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-06 12:50:22 -02:00
davi@endora.local
6efa489780 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-06 11:22:18 -02:00
davi@mysql.com/endora.local
2af5e25c1d Bug#32710: SHOW INNODB STATUS requires SUPER
Changed "SHOW ENGINE ... STATUS" and "SHOW ENGINE ... MUTEX"
to require the PROCESS privilege, instead of SUPER.

Fixed by Damien Katz
2008-02-06 11:20:15 -02:00
anozdrin/alik@quad.
3b60dc73a4 Add a test case for Bug#21380: DEFAULT definition not always
transfered by CREATE TABLE/SELECT to the new table.
2008-02-06 14:55:19 +03:00
davi@mysql.com/endora.local
bd4e875448 Bug#34311 main.lock_multi.test fails
Re-enable the test case for Bug 30331.
2008-02-06 09:40:59 -02:00
anozdrin/alik@quad.
a951fb2cb8 Disabling test case.
Bug 34311: main.lock_multi.test fails.
2008-02-05 18:08:02 +03:00
thek@adventure.(none)
acff116139 Patch clean up.
Fixed interference between tests: Users were added but not properly removed.
This caused later tests to fail.
2008-02-04 19:55:36 +01:00
davi@mysql.com/endora.local
1540830756 Bug#21801 SQL exception handlers and warnings
The problem is that deprecated syntax warnings were not being
suppressed when the stored routine is being parsed for the first
execution. It's doesn't make sense to print out deprecated
syntax warnings when the routine is being executed because this
kind of warning only matters when the routine is being created.

The solution is to suppress deprecated syntax warnings when
parsing the stored routine for loading into the cache (might
mean that the routine is being executed for the first time).
2008-02-04 16:39:55 -02:00
mkindahl@dl145h.mysql.com
1e5fa89dde Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-02-01 17:57:22 +01:00
mkindahl@dl145h.mysql.com
e00096a1a7 Again blanking out some numbers in file names that is dependent
on the context.
2008-02-01 17:26:28 +01:00
thek@adventure.(none)
83428ce932 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2008-02-01 17:00:54 +01:00
mkindahl@dl145h.mysql.com
20a5cc259b Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-02-01 15:38:14 +01:00
mkindahl@dl145h.mysql.com
4f7ad14be0 Fixes to make tests pass in pushbuild. 2008-02-01 15:34:34 +01:00
thek@adventure.(none)
b77bb8ec84 * Manual merge fix. 2008-02-01 14:33:36 +01:00
thek@adventure.(none)
9fc16fbfc0 Merge adventure.(none):/home/thek/Development/cpp/bug33201/my50-bug33201
into  adventure.(none):/home/thek/Development/cpp/bug33201/my51-bug33201
2008-02-01 14:14:37 +01:00
thek@adventure.(none)
323e9a4c53 Bug#33201 Crash occurs when granting update privilege on one column of a view
When issuing a column level grant on a table which require pre-locking the 
server crashed.

The reason behind the crash was that data structures used by the lock api
wasn't properly reinitialized in the case of a column level grant.
2008-02-01 14:10:46 +01:00
mkindahl@dl145h.mysql.com
294571f083 Various fixes to make tests pass on Windows. 2008-02-01 13:18:27 +01:00
anozdrin/alik@quad.
1852fb971e Merge quad.:/mnt/raid/alik/MySQL/devel/5.1
into  quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
2008-02-01 13:55:39 +03:00
mkindahl@bk-internal.mysql.com
8b0091ff53 Deleting Berkeley DB test files since BDB is not distributed with 5.1.
.del-bdb_notembedded.test:
  Delete: mysql-test/t/bdb_notembedded.test
.del-strict_autoinc_4bdb.result:
  Delete: mysql-test/r/strict_autoinc_4bdb.result
.del-bdb_notembedded.result:
  Delete: mysql-test/r/bdb_notembedded.result
2008-02-01 11:47:56 +01:00
anozdrin/alik@quad.
9b4306b8eb Merge quad.:/mnt/raid/alik/MySQL/devel/5.0-rt
into  quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
2008-02-01 13:29:27 +03:00
mkindahl@dl145h.mysql.com
4c95b29614 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-31 17:46:50 +01:00
mkindahl@dl145h.mysql.com
7cfdd60045 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
2008-01-31 16:15:46 +01:00
mkindahl@dl145h.mysql.com
2d9c3b715d Fixes to make tests pass on pushbuild. 2008-01-31 15:53:47 +01:00
mkindahl@dl145h.mysql.com
6aacc6415a Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-31 12:32:48 +01:00
mkindahl@dl145h.mysql.com
10b194d272 Changes to fix tests in pushbuild. 2008-01-31 12:17:40 +01:00
mkindahl@dl145h.mysql.com
5367b13823 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-30 20:29:17 +01:00
kostja@dipika.(none)
b46ce80902 A fix and a test case for Bug#34166 Server crash in SHOW OPEN TABLES and
pre-locking.

The crash was caused by an implicit assumption in check_table_access() that
table_list parameter is always a part of lex->query_tables.

When iterating over the passed list of tables, check_table_access() used
to stop only when lex->query_tables_last_not_own was reached. 
In case of pre-locking, lex->query_tables_last_own is not NULL and points
to some element of lex->query_tables. When the parameter
of check_table_access() was not part of lex->query_tables, loop invariant
could never be violated and a crash would happen when the current table
pointer would point beyond the end of the provided list.

The fix is to change the signature of check_table_access() to also accept
a numeric limit of loop iterations, similarly to check_grant(), and 
supply this limit in all places when we want to check access of tables
that are outside lex->query_tables, or just want to check access to one table.
2008-01-30 18:27:41 +03:00