- 07 Mar, 2007 1 commit
-
-
tsmith@quadxeon.mysql.com authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg0306/51
-
- 06 Mar, 2007 15 commits
-
-
tsmith@siva.hindu.god authored
into siva.hindu.god:/home/tsmith/m/bk/maint/51
-
tsmith@siva.hindu.god authored
into siva.hindu.god:/home/tsmith/m/bk/maint/mar05/51
-
tsmith@siva.hindu.god authored
Wrap query_cache_init_query() call with #ifdef HAVE_QUERY_CACHE in THD::THD()
-
tsmith@siva.hindu.god authored
-
tsmith@quadxeon.mysql.com authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/autopush/mar05-51
-
malff/marcsql@weblab.(none) authored
into weblab.(none):/home/marcsql/TREE/mysql-5.1-8407-merge
-
malff/marcsql@weblab.(none) authored
-
kostja@bodhi.local authored
-
kaa@polly.local authored
into polly.local:/home/kaa/src/maint/mysql-5.1-maint
-
tsmith@siva.hindu.god authored
Add innodb_stats_on_metadata option, which enables gathering index statistics when processing metadata commands such as SHOW TABLE STATUS. Default behavior of the server does not change (this option is enabled by default).
-
kaa@polly.local authored
into polly.local:/tmp/maint/bug20293/my51-bug20293
-
malff/marcsql@weblab.(none) authored
into weblab.(none):/home/marcsql/TREE/mysql-5.1-8407-merge
-
kostja@bodhi.local authored
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
-
kostja@bodhi.local authored
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
-
malff/marcsql@weblab.(none) authored
Bug 18914 (Calling certain SPs from triggers fail) Bug 20713 (Functions will not not continue for SQLSTATE VALUE '42S02') Bug 21825 (Incorrect message error deleting records in a table with a trigger for inserting) Bug 22580 (DROP TABLE in nested stored procedure causes strange dependency error) Bug 25345 (Cursors from Functions) This fix resolves a long standing issue originally reported with bug 8407, which affect the behavior of Stored Procedures, Stored Functions and Trigger in many different ways, causing symptoms reported by all the bugs listed. In all cases, the root cause of the problem traces back to 8407 and how the server locks tables involved with sub statements. Prior to this fix, the implementation of stored routines would: - compute the transitive closure of all the tables referenced by a top level statement - open and lock all the tables involved - execute the top level statement "transitive closure of tables" means collecting: - all the tables, - all the stored functions, - all the views, - all the table triggers - all the stored procedures involved, and recursively inspect these objects definition to find more references to more objects, until the list of every object referenced does not grow any more. This mechanism is known as "pre-locking" tables before execution. The motivation for locking all the tables (possibly) used at once is to prevent dead locks. One problem with this approach is that, if the execution path the code really takes during runtime does not use a given table, and if the table is missing, the server would not execute the statement. This in particular has a major impact on triggers, since a missing table referenced by an update/delete trigger would prevent an insert trigger to run. Another problem is that stored routines might define SQL exception handlers to deal with missing tables, but the server implementation would never give user code a chance to execute this logic, since the routine is never executed when a missing table cause the pre-locking code to fail. With this fix, the internal implementation of the pre-locking code has been relaxed of some constraints, so that failure to open a table does not necessarily prevent execution of a stored routine. In particular, the pre-locking mechanism is now behaving as follows: 1) the first step, to compute the transitive closure of all the tables possibly referenced by a statement, is unchanged. 2) the next step, which is to open all the tables involved, only attempts to open the tables added by the pre-locking code, but silently fails without reporting any error or invoking any exception handler is the table is not present. This is achieved by trapping internal errors with Prelock_error_handler 3) the locking step only locks tables that were successfully opened. 4) when executing sub statements, the list of tables used by each statements is evaluated as before. The tables needed by the sub statement are expected to be already opened and locked. Statement referencing tables that were not opened in step 2) will fail to find the table in the open list, and only at this point will execution of the user code fail. 5) when a runtime exception is raised at 4), the instruction continuation destination (the next instruction to execute in case of SQL continue handlers) is evaluated. This is achieved with sp_instr::exec_open_and_lock_tables() 6) if a user exception handler is present in the stored routine, that handler is invoked as usual, so that ER_NO_SUCH_TABLE exceptions can be trapped by stored routines. If no handler exists, then the runtime execution will fail as expected. With all these changes, a side effect is that view security is impacted, in two different ways. First, a view defined as "select stored_function()", where the stored function references a table that may not exist, is considered valid. The rationale is that, because the stored function might trap exceptions during execution and still return a valid result, there is no way to decide when the view is created if a missing table really cause the view to be invalid. Secondly, testing for existence of tables is now done later during execution. View security, which consist of trapping errors and return a generic ER_VIEW_INVALID (to prevent disclosing information) was only implemented at very specific phases covering *opening* tables, but not covering the runtime execution. Because of this existing limitation, errors that were previously trapped and converted into ER_VIEW_INVALID are not trapped, causing table names to be reported to the user. This change is exposing an existing problem, which is independent and will be resolved separately.
-
- 05 Mar, 2007 6 commits
-
-
kostja@bodhi.local authored
into bodhi.local:/opt/local/work/mysql-5.0-runtime
-
ramil/ram@ramil.myoffice.izhnet.ru authored
into mysql.com:/home/ram/work/b26038/b26038.5.1
-
ramil/ram@ramil.myoffice.izhnet.ru authored
into mysql.com:/home/ram/work/b26038/b26038.5.1
-
tnurnberg@sin.mysql.com authored
into mysql.com:/home/tnurnberg/21103/51-21103
-
tnurnberg@mysql.com/sin.mysql.com authored
When comparing a DATE field with a DATETIME constant, we now compare as DATETIMEs, not as DATEs. Fix BDB queries to still work.
-
ramil/ram@ramil.myoffice.izhnet.ru authored
into mysql.com:/home/ram/work/b23616/b23616.5.1
-
- 02 Mar, 2007 15 commits
-
-
tnurnberg@sin.intern.azundris.com authored
into mysql.com:/home/tnurnberg/21103/51-21103
-
tnurnberg@sin.intern.azundris.com authored
into mysql.com:/home/tnurnberg/21103/51-21103
-
If we compare two items A and B, with B being (a constant) of a larger type, then A gets promoted to B's type for comparison if it's a constant, function, or CAST() column, but B gets demoted to A's type if A is a (not explicitly CAST()) column. This is counter-intuitive and not mandated by the standard. Disabling optimisation where it would be lossy so field value will properly get promoted and compared as binary string (rather than as integers).
-
kostja@bodhi.local authored
conflicts without proper analysis and documentation of the nature of the conflict.
-
kostja@bodhi.local authored
-
ramil/ram@ramil.myoffice.izhnet.ru authored
into mysql.com:/home/ram/work/b23616/b23616.5.1
-
Item_func_geometry_from_text::val_str() should set null_value in case of wrong data.
-
into mysql.com:/home/ram/work/b23616/b23616.5.0
-
rafal@quant.(none) authored
master info structure.
-
Kristofer.Pettersson@naruto. authored
- winsock2.h must be included before windows.h
-
malff/marcsql@weblab.(none) authored
into weblab.(none):/home/marcsql/TREE/mysql-5.0-26093
-
malff/marcsql@weblab.(none) authored
-
malff/marcsql@weblab.(none) authored
into weblab.(none):/home/marcsql/TREE/mysql-5.1-26093-merge
-
malff/marcsql@weblab.(none) authored
results) Before this fix, the function BENCHMARK() would fail to evaluate expressions like "(select avg(a) from t1)" in debug builds (with an assert), or would report a time of zero in non debug builds. The root cause is that evaluation of DECIMAL_RESULT expressions was not supported in Item_func_benchmark::val_int(). This has been fixed by this change.
-
malff/marcsql@weblab.(none) authored
-
- 01 Mar, 2007 3 commits
-
-
malff/marcsql@weblab.(none) authored
-
malff/marcsql@weblab.(none) authored
-
malff/marcsql@weblab.(none) authored
into weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge
-