An error occurred fetching the project authors.
- 08 Aug, 2006 1 commit
-
-
evgen@sunlight.local authored
Correct memory leak fix
-
- 21 Jul, 2006 1 commit
-
-
timour/timka@lamia.home authored
The problem was that store_top_level_join_columns() incorrectly assumed that the left/right neighbor of a nested join table reference can be only at the same level in the join tree. The fix checks if the current nested join table reference has no immediate left/right neighbor, and if so chooses the left/right neighbors of the nearest upper level, where these references are != NULL.
-
- 09 Jul, 2006 1 commit
-
-
closing temp tables through end_thread had a flaw in binlog-off branch of close_temporary_tables where next table to close was reset via table->next for (table= thd->temporary_tables; table; table= table->next) which was wrong since the current table instance got destoyed at close_temporary(table, 1); The fix adapts binlog-on branch method to engage the loop's internal 'next' variable which holds table->next prior table's destoying.
-
- 26 Jun, 2006 1 commit
-
-
ingo@mysql.com authored
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.
-
- 21 Jun, 2006 1 commit
-
-
gkodinov@mysql.com authored
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.
-
- 08 Jun, 2006 1 commit
-
-
gkodinov@mysql.com authored
query Problem: There was a wrong context assigned to the columns that were added in insert_fields() when expanding a '*'. When this is done in a prepared statement it causes fix_fields() to fail to find the table that these columns reference. Actually the right context is set in setup_natural_join_row_types() called at the end of setup_tables(). However when executed in a context of a prepared statement setup_tables() resets the context, but setup_natural_join_row_types() was not setting it to the correct value assuming it has already done so. Solution: The top-most, left-most NATURAL/USING join must be set as a first_name_resolution_table in context even when operating on prepared statements.
-
- 01 Jun, 2006 1 commit
-
-
igor@rurik.mysql.com authored
-
- 30 May, 2006 1 commit
-
-
igor@rurik.mysql.com authored
refers to a column name.
-
- 28 May, 2006 1 commit
-
-
igor@rurik.mysql.com authored
refers to a column name. Added a new error message ER_INDEX_DOES_NOT_EXIST.
-
- 26 May, 2006 1 commit
-
-
gkodinov@mysql.com authored
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.
-
- 24 May, 2006 1 commit
-
-
monty@mysql.com authored
Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait() The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads. This fixes: Bug#16986: Deadlock condition with MyISAM tables Bug#20048: FLUSH TABLES WITH READ LOCK causes a deadlock
-
- 15 May, 2006 1 commit
-
-
aelkin@mysql.com authored
specific to 5.0 version of the patch is motivated by the fact that a wrapper over MYSQLLOG::write can not help in 5.0 where query's charset is embedded into event instance in the constructor.
-
- 14 May, 2006 1 commit
-
-
aelkin@mysql.com authored
manual merge to account 5.0 specific names of TABLE class
-
- 12 May, 2006 1 commit
-
-
aelkin@mysql.com authored
A pattern to generate binlog for DROPped temp table in close_temporary_tables was buggy: could not deal with a grave-accent-in-name table. The fix exploits `append_identifier()' for quoting and duplicating accents.
-
- 09 May, 2006 2 commits
-
-
aelkin@mysql.com authored
Binlog lacks encoding info about DROPped temporary table. Idea of the fix is to switch temporary to system_charset_info when a temporary table is DROPped for binlog. Since that is the server, that automatically, but not the client, who generates the query the binlog should be updated on the server's encoding for the coming DROP. The `write_binlog_with_system_charset()' is introduced to replace similar problematic places in the code.
-
dlenev@mysql.com authored
or implicitly uses stored function gives "Table not locked" error' CREATE TABLE ... SELECT ... statement which was explicitly or implicitly (through view) using stored function gave "Table not locked" error. The actual bug resides in the current locking scheme of CREATE TABLE SELECT code, which first opens and locks tables of the SELECT statement itself, and then, having SELECT tables locked, creates the .FRM, opens the .FRM and acquires lock on it. This scheme opens a possibility for a deadlock, which was present and ignored since version 3.23 or earlier. This scheme also conflicts with the invariant of the prelocking algorithm -- no table can be open and locked while there are tables locked in prelocked mode. The patch makes an exception for this invariant when doing CREATE TABLE ... SELECT, thus extending the possibility of a deadlock to the prelocked mode. We can't supply a better fix in 5.0.
-
- 23 Apr, 2006 4 commits
-
-
aelkin@mysql.com authored
The fix refines the algorithm of generating DROPs for binlog. Temp tables with common pseudo_thread_id are clustered into one query. Consequently one replication event per pseudo_thread_id is generated.
-
aelkin@mysql.com authored
accounting non-ai32 in tmpkeyval. This changeset is supposed to be specifically for 4.1. Another changeset is going to push into 5.
-
aelkin@mysql.com authored
-
aelkin@mysql.com authored
Backporting a changeset made for 5.0. Comments from there: The fix refines the algorithm of generating DROPs for binlog. Temp tables with common pseudo_thread_id are clustered into one query. Consequently one replication event per pseudo_thread_id is generated.
-
- 19 Apr, 2006 3 commits
-
-
tnurnberg@mysql.com authored
fixlet corrects return to DBUG_RETURN to restore the balance.
-
tnurnberg@mysql.com authored
-
tnurnberg@mysql.com authored
fixlet corrects return to DBUG_RETURN to restore the balance.
-
- 02 Mar, 2006 1 commit
-
-
timour@mysql.com authored
The cause of this bug was a design flaw due to which the list of natural join columns was incorrectly computed and stored for nested joins that are not natural joins, but are operands (possibly indirect) of nested joins. The patch corrects the flaw in a such a way, that the result columns of a table reference are materialized only if it is a leaf table (that is, only if it is a view, stored table, or natural/using join).
-
- 25 Feb, 2006 1 commit
-
-
monty@mysql.com authored
- Added empty constructors and virtual destructors to many classes and structs - Removed some usage of the offsetof() macro to instead use C++ class pointers
-
- 24 Feb, 2006 1 commit
-
-
monty@mysql.com authored
(Needed for "list of pushes" web page and autopush)
-
- 23 Feb, 2006 1 commit
-
-
konstantin@mysql.com authored
-
- 16 Feb, 2006 1 commit
-
-
dlenev@mysql.com authored
trigger starts trigger". In short, the deadlock/crash happened when execution of statement, which used stored functions or activated triggers, coincided with alteration of the tables used by these functions or triggers (in highly concurrent environment). Bug was caused by the incorrect handling of tables from prelocked set in open_tables() functions in situations when refresh happened. This fix replaces old smart but not very robust way of handling tables after refresh (which was closing only old tables), with new one which simply closes all tables opened so far and restarts open_tables(). Also fixed handling of temporary tables in close_tables_for_reopen(). No test case present since bug manifests itself only in concurrent environment.
-
- 03 Feb, 2006 1 commit
-
-
svoj@april.(none) authored
Fixed that fulltext query + union results in unexpected behaviour.
-
- 25 Jan, 2006 1 commit
-
-
evgen@moonbone.local authored
Small fix after merge of fix for bug#16510
-
- 23 Jan, 2006 1 commit
-
-
evgen@moonbone.local authored
When setup_fields() function finds field named '*' it expands it to the list of all table fields. It does so by checking that the first char of field_name is '*', but it doesn't checks that the '* is the only char. Due to this, when updating table with a field named like '*name', such field is wrongly treated as '*' and expanded. This leads to making list of fields to update being longer than list of the new values. Later, the fill_record() function crashes by dereferencing null when there is left fields to update, but no more values. Added check in the setup_fields() function which ensures that the field expanding will be done only when '*' is the only char in the field name.
-
- 10 Jan, 2006 1 commit
-
-
monty@mysql.com authored
-
- 05 Jan, 2006 1 commit
-
-
monty@mysql.com authored
- 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
-
- 04 Jan, 2006 2 commits
-
-
konstantin@mysql.com authored
-
konstantin@mysql.com authored
when high concurrency": remove HASH::current_record and make it an external search parameter, so that it can not be the cause of a race condition under high concurrent load. The bug was in a race condition in table_hash_search, when column_priv_hash.current_record was overwritten simultaneously by multiple threads, causing the search for a suitable grant record to fail. No test case as the bug is repeatable only under concurrent load.
-
- 20 Dec, 2005 1 commit
-
-
ingo@mysql.com authored
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.
-
- 07 Dec, 2005 1 commit
-
-
dlenev@mysql.com authored
impossible view security". We should not expose names of tables which are explicitly or implicitly (via routine or trigger) used by view even if we find that they are missing. So during building of list of prelocked tables for statement we track which routines (and therefore tables for these routines) are used from views. We mark elements of LEX::routines set which correspond to routines used in views by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST object for topmost view which uses routine. We propagate this mark to all routines which are used by this routine and which we add to this set. We also mark tables used by such routine which we add to the list of tables for prelocking as belonging to this view.
-
- 30 Nov, 2005 1 commit
-
-
timour@mysql.com authored
Post-review fixes that simplify the way access rights are checked during name resolution and factor out all entry points to check access rights into one single function.
-
- 28 Nov, 2005 1 commit
-
-
timour@mysql.com authored
Post-review fixes according to Monty's review.
-
- 25 Nov, 2005 1 commit
-
-
pem@mysql.com authored
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).
-