This fixes problem where --replace_result failed in rpl000015 because the MYSQL_TCP_PORT variable was "3306\r"
mysql-test/mysql-test-run.pl:
Avoid matching the trailing carriage return when parsing the mysqld.spec file
into mysql.com:/home/hf/work/w3475/my50-w3475
mysql-test/t/flush.test:
Auto merged
mysql-test/t/flush_block_commit.test:
Auto merged
mysql-test/t/innodb-deadlock.test:
Auto merged
mysql-test/t/innodb-lock.test:
Auto merged
mysql-test/t/lock_multi.test:
Auto merged
mysql-test/t/rename.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
mysql-test/t/status.test:
Auto merged
client/mysqltest.c:
merging
libmysql/libmysql.c:
merging
To the documentor: The DEFAULT value in SHOW COLUMNS/SELECT FROM I_S.COLUMNS
was truncated to NAME_LEN (which effectively is 64) characters.
mysql-test/r/information_schema.result:
Update result
Because the length of I_S.COLUMNS.COLUMN_DEFAULT was increased to
65535 the column changed it's type from varchar(64) to longtext
The type is longtext if the length is > 65532 (the max varchar len)
mysql-test/t/information_schema.test:
test case for bug#23037: Bug in field "Default" of
query "SHOW COLUMNS FROM table"
Both SHOW COLUMNS and I_S.COLUMNS is TESTED as well the
value returned by both. Using --replace_regex is unfeasible
as the repetition value cannot be > 255.
--replace_regex /A{256}/VALUE/ doesn't work, not to talk about
/A{65532}/VALUE/
/(A{255}){255}/VALUE/ is awfully slow. Thus, simple function with
cursor is used to extract the value.
sql/sql_show.cc:
Default value can have TIMESTAMP, CHAR, VARCHAR, ENUM
VARCHAR can have the longest value, up to 65535. However, because
of table handler limitations the actual limit is 65532 characters,
latin1 charset. However, here is used MAX_FIELD_VARCHARLENGTH macro,
because there could be a storage engine without such limitation.
Necessary code added to mysqltest.c.
Disabled tests are available now.
client/mysqltest.c:
do_send_query function implemented, so now 'send' command will be
run in separate thread for the embedded server.
Mutex and condition added to the 'connection' struct for syncronisation
purposes. Yes it'd be easier if we had pthread_join() command
libmysql/libmysql.c:
this isn't actually needed and causes problems in embedded server
mysql-test/t/bdb-deadlock.test:
test is available for the embedded server now
mysql-test/t/flush.test:
test is available for the embedded server now
mysql-test/t/flush_block_commit.test:
test is available for the embedded server now
mysql-test/t/innodb-deadlock.test:
test is available for the embedded server now
mysql-test/t/innodb-lock.test:
test is available for the embedded server now
mysql-test/t/lock_multi.test:
test is available for the embedded server now
mysql-test/t/rename.test:
test is available for the embedded server now
mysql-test/t/show_check.test:
test is available for the embedded server now
mysql-test/t/status.test:
test is available for the embedded server now
into bodhi.local:/opt/local/work/mysql-5.0-runtime-merge
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/r/view.result:
Manual merge.
mysql-test/t/view.test:
Manual merge.
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
mysql-test/r/myisam.result:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_select.cc:
Auto merged
If elements a not top-level IN subquery were accessed by an index and
the subquery result set included a NULL value then the quantified
predicate that contained the subquery was evaluated to NULL when
it should return a non-null value.
mysql-test/r/subselect.result:
Added a test case for bug #23478.
mysql-test/t/subselect.test:
Added a test case for bug #23478.
This patch reverts a change introduced by Bug 6951, which incorrectly
set thd->abort_on_warning for stored procedures.
As per internal discussions about the SQL_MODE=TRADITIONAL,
the correct behavior is to *not* abort on warnings even inside an INSERT/UPDATE
trigger.
Tests for Stored Procedures, Stored Functions, Triggers involving SQL_MODE
have been included or revised, to reflect the intended behavior.
(reposting approved patch, to work around source control issues, no review needed)
mysql-test/include/sp-vars.inc:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/r/sp-vars.result:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/r/sp.result:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/r/trigger.result:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/t/sp-vars.test:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/t/sp.test:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/t/trigger.test:
Tests for SQL_MODE='TRADITIONAL'
sql/sp_head.cc:
For SQL_MODE='TRADITIONAL',
thd->abort_on_warning should be set only when assigning a *column*
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_misc.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Add function mtr_exe_maybe_exists to look for binaries that is optional
Skip ndb support if it's a binary dist where mysqld supports ndb but there is no ndbd
mysql-test/lib/mtr_misc.pl:
Add function mtr_exe_maybe_exists
mysql-test/mysql-test-run.pl:
Adapt to running from binary dist
Add function mtr_exe_maybe_exists to look for binaries that is optional
Skip ndb support if it's a binary dist where mysqld supports ndb but there is no ndbd
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysqltest.c:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
into mysql.com:/home/svoj/devel/mysql/engines/mysql-5.0-engines
myisam/sort.c:
Auto merged
mysql-test/r/repair.result:
Auto merged
mysql-test/t/repair.test:
Auto merged
sql/sql_base.cc:
Use local.
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
mysql-test/r/merge.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/view.result:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
commands and go directly to result file processing
client/mysqltest.c:
Add command "exit" to mysqltest
mysql-test/r/mysqltest.result:
Add command "exit" to mysqltest
mysql-test/t/mysqltest.test:
Add command "exit" to mysqltest
into mysql.com:/usr/home/ram/work/bug20732/my50-bug20732
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/table.cc:
Auto merged
mysql-test/r/range.result:
SCCS merged
mysql-test/t/range.test:
SCCS merged
When statement to be prepared contained CREATE PROCEDURE, CREATE FUNCTION
or CREATE TRIGGER statements with a syntax error in it, the preparation
would fail with syntax error message, but the memory could be corrupted.
The problem occurred because we switch memroot when parse stored
routine or trigger definitions, and on parse error we restored the
original memroot only after performing some memory operations. In more
detail:
- prepared statement would activate its own memory root to parse
the definition of the stored procedure.
- SP would reset this memory root with its own memory root to
parse SP statements
- a syntax error would happen
- prepared statement would restore the original memory root
- stored procedure would restore what it thinks was the original
memory root, but actually was the statement memory root.
That led to double free - in destruction of the statement and in
a next call to mysql_parse().
The solution is to restore memroot right after the failed parsing.
mysql-test/r/ps.result:
Add result for bug#21856: Prepared Statements: crash if bad create.
mysql-test/t/ps.test:
Add test case for bug#21856: Prepared Statements: crash if bad create.
sql/sql_parse.cc:
On parse error if thd->lex->sphead is set we have to free sp_head object
to restore statement memroot, if it was switched during parsing.
The change here is for safety, currently query_cache_abort() and
lex->unit.cleanup() calls do not use current memroot.
sql/sql_prepare.cc:
On parse error if thd->lex->sphead is set we have to free sp_head object
to restore statement memroot, if it was switched during parsing.
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysqldump.c:
Auto merged
mysql-test/include/have_lowercase0.inc:
Auto merged
mysql-test/t/lowercase_table3.test:
Auto merged
mysql-test/t/mysql_protocols.test:
Auto merged
mysql-test/t/rpl_change_master.test:
Auto merged
mysql-test/t/rpl_drop_db.test:
Auto merged
mysql-test/t/rpl_error_ignored_table.test:
Auto merged
mysql-test/t/rpl_loaddata.test:
Auto merged
mysql-test/t/rpl_log.test:
Auto merged
mysql-test/t/rpl_max_relay_size.test:
Auto merged
mysql-test/t/rpl_replicate_do.test:
Auto merged
mysys/my_read.c:
Auto merged
sql/sql_class.cc:
Auto merged
mysql-test/r/rpl000015.result:
C
mysql-test/r/rpl_log.result:
ul
mysql-test/r/rpl_max_relay_size.result:
ul
mysql-test/r/rpl_replicate_do.result:
ul
mysql-test/t/rpl000015.test:
ul
client/mysqldump.c:
fflush stderr after printing of error message
mysql-test/include/have_lowercase0.inc:
Remove extra ;
mysql-test/r/rpl000015.result:
Update result
mysql-test/r/rpl_change_master.result:
Update result
mysql-test/r/rpl_error_ignored_table.result:
Update result
mysql-test/r/rpl_loaddata.result:
Update result
mysql-test/r/rpl_log.result:
Update result
mysql-test/r/rpl_max_relay_size.result:
Update result
mysql-test/r/rpl_replicate_do.result:
Update result
mysql-test/t/lowercase_table3.test:
Backport from 5.0
mysql-test/t/mysql_protocols.test:
Backport from 5.0
mysql-test/t/rpl000015.test:
Backport from 5.0
mysql-test/t/rpl_change_master.test:
Backport from 5.0
mysql-test/t/rpl_drop_db.test:
Backport from 5.0
mysql-test/t/rpl_error_ignored_table.test:
Backport from 5.0
mysql-test/t/rpl_loaddata.test:
Backport from 5.0
mysql-test/t/rpl_log-master.opt:
Use --force-restart command in master.opt to force a restart for this test case
mysql-test/t/rpl_log.test:
Backport from 5.0
mysql-test/t/rpl_max_relay_size.test:
Backport from 5.0
mysql-test/t/rpl_replicate_do.test:
Backport from 5.0
We miss some records sometimes using RANGE method if we have
partial key segments.
Example:
Create table t1(a char(2), key(a(1)));
insert into t1 values ('a'), ('xx');
select a from t1 where a > 'x';
We call index_read() passing 'x' key and HA_READ_AFTER_KEY flag
in the handler::read_range_first() wich is wrong because we have
a partial key segment for the field and might miss records like 'xx'.
Fix: don't use open segments in such a case.
mysql-test/r/range.result:
Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
- test result.
mysql-test/t/range.test:
Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
- test case.
sql/opt_range.cc:
Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
- check if we have a partial key segment for a Item_func::GT_FUNC;
if so, don't set NEAR_MIN flag in order to use HA_READ_KEY_OR_NEXT
instead of HA_READ_AFTER_KEY.
sql/opt_range.h:
Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
- key segment 'flag' slot added.
sql/sql_select.cc:
Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
- test (HA_PART_KEY_SEG | HA_NULL_PART) as we split it in the sql/table.cc
sql/table.cc:
Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
- set HA_NULL_PART flag instead of HA_PART_KEY_SEG in order not to mix them.
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/t/innodb_mysql.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/r/create.result:
Merge
mysql-test/t/create.test:
Merge
mysql-test/t/view.test:
Remove the disable_warnings part as engine=innodb has been removed
The mysqldump command with both the --xml and --hex-blob options will output blob data encoded as hexBinary.
The proper XML datatype is xs:hexBinary.
The correct XML datatype is specified be setting the xsi_type attribute equal to xs:hexBinary for each encoded element.
client/mysqldump.c:
Bug#19745: mysqldump --xml produces invalid xml
- Moved hex-blob code to it's own function.
- Rewrote print_xml_tag function to accept zero or more attribute/value
pair(s) which are appended to a separate tag name.
- --xml option respects the --hex-blob option by ouputting blob data in hex
encoded format. Each hex encoded field tag will also contain an xsi:type
attribute with an xs:hexBinary value.
- --extended-insert and --xml are mutually exclusive. Otherwise, the xml file
will contain INSERT commands.
- Minor comment cleanup.
mysql-test/r/mysqldump.result:
Bug#19745: mysqldump --xml produces invalid xml
-Added results.
mysql-test/t/mysqldump.test:
Bug#19745: mysqldump --xml produces invalid xml
-Added test.
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/lib/mtr_timer.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Repair table could crash a server if there is not sufficient
memory (myisam_sort_buffer_size) to operate. Affects not only
repair, but also all statements that use create index by sort:
repair by sort, parallel repair, bulk insert.
Return an error if there is not sufficient memory to store at
least one key per BUFFPEK.
Also fixed memory leak if thr_find_all_keys returns an error.
myisam/sort.c:
maxbuffer is number of BUFFPEK-s for repair. It is calculated
as records / keys. keys is number of keys that can be stored
in memory (myisam_sort_buffer_size). There must be sufficient
memory to store both BUFFPEK-s and keys. It was checked
correctly before this patch. However there is another
requirement that wasn't checked: there must be sufficient
memory for at least one key per BUFFPEK, otherwise repair
by sort/parallel repair cannot operate.
Return an error if there is not sufficient memory to store at
least one key per BUFFPEK.
Also fixed memory leak if thr_find_all_keys returns an error.
mysql-test/r/repair.result:
A test case for BUG#23175.
mysql-test/t/repair.test:
A test case for BUG#23175.
Improve code that detects if ndb shuold be installed
Remove call to stop_all_servers after install db, if any servers are still running
and need to be stopped they will be stopped atuomatically
mysql-test/lib/mtr_cases.pl:
All tests that have "source include/have_ndb.inc" are ndb tests
mysql-test/mysql-test-run.pl:
Set --with-ndbcluster to only be valid together with --bench
Rename opt_ndbcluster_supported to glob_ndbcluster_supported it's not an option
Fix warnings
into rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug19579
mysql-test/t/select.test:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/select.result:
SCCS merged
Remove table engine qualification where it's unnecessary.
mysql-test/r/view.result:
Remove requirement for innodb where not needed. (Running this test alone
raised warnings that it was using myisam.)
mysql-test/t/view.test:
Remove requirement for innodb where not needed. (Running this test alone
raised warnings that it was using myisam.)
sql/sql_parse.cc:
Fix previous bad re-patch.
sql/sql_view.cc:
Fix previous bad re-patch.
into macbook.gmz:/Users/kgeorge/mysql/work/B21798-5.0-opt-merge
sql/mysql_priv.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/r/subselect.result:
merge fixes for bug 21798
mysql-test/t/subselect.test:
merge fixes for bug 21798
list using a function
When executing dependent subqueries they are re-inited and re-exec() for
each row of the outer context.
The cause for the bug is that during subquery reinitialization/re-execution,
the optimizer reallocates JOIN::join_tab, JOIN::table in make_simple_join()
and the local variable in 'sortorder' in create_sort_index(), which is
allocated by make_unireg_sortorder().
Care must be taken not to allocate anything into the thread's memory pool
while re-initializing query plan structures between subquery re-executions.
All such items mush be cached and reused because the thread's memory pool
is freed at the end of the whole query.
Note that they must be cached and reused even for queries that are not
otherwise cacheable because otherwise it will grow the thread's memory
pool every time a cacheable query is re-executed.
We provide additional members to the JOIN structure to store references
to the items that need to be cached.
mysql-test/r/subselect.result:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- test case
mysql-test/t/subselect.test:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- test case
sql/mysql_priv.h:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- cache the entities allocated in the threads memory pool by
JOIN::exec ().
sql/sql_delete.cc:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's
memory pool by JOIN::exec ().
sql/sql_select.cc:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's
memory pool by JOIN::exec ().
sql/sql_select.h:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's
memory pool by JOIN::exec ().
sql/sql_table.cc:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's
memory pool by JOIN::exec ().
sql/sql_update.cc:
Bug#21798: memory leak during query execution with subquery in column
list using a function
- cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's
memory pool by JOIN::exec ().
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/lib/mtr_timer.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Set comment properly before calling mtr_report_test failed and report_failure_restart
mysql-test/lib/mtr_report.pl:
Remove warnings
No need to check ndb installed ok here, when that is detected comment is set to indicate the problem
into macbook.gmz:/Users/kgeorge/mysql/work/B22367-5.0-opt-merge
include/my_base.h:
Auto merged
mysql-test/r/select.result:
merge of 5.0-opt to 22367
mysql-test/t/select.test:
merge of 5.0-opt to 22367
into siva.hindu.god:/usr/home/tim/m/bk/tmp/mrgOct16/50
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
mysql-test/r/ps.result:
Manual merge
mysql-test/t/ps.test:
Manual merge
account predicates that become sargable after reading const tables.
In some cases this resulted in choosing non-optimal execution plans.
Now info of such potentially saragable predicates is saved in
an array and after reading const tables we check whether this
predicates has become saragable.
mysql-test/r/select.result:
Added a test case for bug #19579.
mysql-test/t/select.test:
Added a test case for bug #19579.
sql/item_cmpfunc.cc:
Fixed bug #19579: at range analysis optimizer did not take into
account predicates that become sargable after reading const tables.
Added a counter of between predicates.
sql/sql_base.cc:
Fixed bug #19579: at range analysis optimizer did not take into
account predicates that become sargable after reading const tables.
Added a counter of between predicates.
sql/sql_lex.cc:
Fixed bug #19579: at range analysis optimizer did not take into
account predicates that become sargable after reading const tables.
Added a counter of between predicates.
sql/sql_lex.h:
Fixed bug #19579: at range analysis optimizer did not take into
account predicates that become sargable after reading const tables.
Added a counter of between predicates.
sql/sql_select.cc:
Fixed bug #19579: at range analysis optimizer did not take into
account predicates that become sargable after reading const tables.
Now info of such potentially saragable predicates is saved in
an array and after reading const tables we check whether this
predicates has become saragable.
When using index for group by and range access the server isolates
a set of ranges based on the conditions over the key parts of the
index used. Then it uses only the ranges over the GROUP BY fields to
jump from one group to another. Since the GROUP BY fields may form a
prefix over the index, we may use only a prefix of the ranges produced
by the range optimizer.
Each range contains a notion on whether it includes its border values.
The problem is that when using a range prefix, the last range is open
because it assumes that there is a range on the next keypart. Thus when
we use a prefix range as it is, it excludes all border values.
The solution is when ignoring the suffix of the range conditions
(to jump over the GROUP BY prefix only) the server must change the
remaining intervals so they always contain their borders, e.g.
if the whole range was :
(1,-inf) <= (<group_by_col>,<min_max_arg_col>) < (1, 3) we must make
(1) <= (<group_by_col>) <= (1) because (a,b) < (c1,c2) means :
a < c1 OR (a = c1 AND b < c2).
mysql-test/r/group_min_max.result:
Bug #22342: No results returned for query using max and group by
- test case
mysql-test/t/group_min_max.test:
Bug #22342: No results returned for query using max and group by
- test case
sql/opt_range.cc:
Bug #22342: No results returned for query using max and group by
- open the intervals for prefix select when there are more conditions
than used for the prefix search.
sql/opt_range.h:
Bug #22342: No results returned for query using max and group by
- open the intervals for prefix select when there are more conditions
than used for the prefix search.
strings
MySQL is setting the flag HA_END_SPACE_KEYS for all the keys that reference
text or varchar columns with collation different than binary.
This was done to handle correctly the situation where a lookup on such a key
may return more than 1 row because of the presence of many rows that differ
only by the amount of trailing space in the table's string column.
Inserting such values however appears to violate the unique checks on
INSERT/UPDATE. Thus that flag must not be set as it will prevent the optimizer
from choosing a faster access method.
This fix removes the setting of the HA_END_SPACE_KEYS flag.
include/my_base.h:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- disabled HA_END_SPACE_KEY as it's no longer needed
mysql-test/r/func_str.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- fixed explain in an existing case
mysql-test/r/merge.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- fixed explain in an existing case
mysql-test/r/select.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- test case
mysql-test/r/subselect.result:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- fixed explain in an existing case
mysql-test/t/select.test:
Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on
strings
- test case
into macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
sql/sql_base.cc:
Auto merged
mysql-test/r/group_by.result:
merge 4.1->5.0
mysql-test/t/group_by.test:
merge 4.1->5.0
When resolving unqualified name references MySQL was not
checking what is the item type for the reference. Thus
e.g a string literal item that has by convention a name
equal to its string value will also work as a reference to
a SELECT list item or a table field.
Fixed by allowing only Item_ref or Item_field to referenced by
(unqualified) name.
mysql-test/r/func_gconcat.result:
Bug #14019: group by converts literal string to column name
- removed undeterministic testcase : order by a constant
means no order.
mysql-test/r/group_by.result:
Bug #14019: group by converts literal string to column name
- test case
mysql-test/t/func_gconcat.test:
Bug #14019: group by converts literal string to column name
- removed undeterministic testcase : order by a constant
means no order.
mysql-test/t/group_by.test:
Bug #14019: group by converts literal string to column name
- test case
sql/sql_base.cc:
Bug #14019: group by converts literal string to column name
- resolve unqualified by name refs only for real references
into mysql.com:/windows/Linux_space/MySQL/mysql-5.0
mysql-test/r/ndb_charset.result:
Auto merged
mysql-test/r/ndb_index_unique.result:
Auto merged
mysql-test/r/ndb_update.result:
Auto merged
sql/ha_ndbcluster.cc:
Merg
sql/handler.cc:
Merge
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
include/my_dbug.h:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/csv.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/csv.test:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/innodb_mysql.result:
Manual merge
mysql-test/t/func_time.test:
Manual merge, test already there
mysql-test/t/innodb_mysql.test:
Manual merge
mysqltest.test on Solaris and Mac. write_file produced nice files with all zeroes.
client/mysqltest.c:
Use char as datatype for the byte that are read with my_fgetc
mysql-test/mysql-test-run.pl:
Fix typo, add missing $
The mysql_alter_table() was able to rename only a table.
The view/table renaming code is moved from the function rename_tables
to the new function called do_rename().
The mysql_alter_table() function calls it when it needs to rename a view.
mysql-test/t/rename.test:
Added a test case for bug#14959: ALTER TABLE isn't able to rename a view
mysql-test/r/rename.result:
Added a test case for bug#14959: ALTER TABLE isn't able to rename a view
sql/mysql_priv.h:
Bug#14959: ALTER TABLE isn't able to rename a view
Added the prototype of the do_rename() function.
sql/sql_rename.cc:
Bug#14959: ALTER TABLE isn't able to rename a view
The view/table renaming code is moved from the function rename_tables
to the new function called do_rename().
sql/sql_table.cc:
Bug#14959: ALTER TABLE isn't able to rename a view
Added handling of a view rename to the mysql_alter_table() function.
We don't set null_value to 0 in the Item_func_compress::val_str() for
not-NULL results.
mysql-test/r/func_compress.result:
Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
- test result.
mysql-test/t/func_compress.test:
Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
- test case.
sql/item_strfunc.cc:
Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
- set null_value.
Do not consider SHOW commands slow queries, just because they don't use proper indexes.
This bug fix is not needed in 5.1, and the code changes will be null merged. However, the test cases will be propogated up to 5.1.
mysql-test/t/show_check-master.opt:
Rename: BitKeeper/deleted/.del-show_check-master.opt -> mysql-test/t/show_check-master.opt
mysql-test/r/ps.result:
Add test case for bug 19764
mysql-test/r/show_check.result:
Add test case for bug 19764
mysql-test/r/union.result:
Adjust test case results based on bug #19764 changes
mysql-test/t/ps.test:
Add test case for bug 19764
mysql-test/t/show_check.test:
Add test case for bug 19764
sql/sql_parse.cc:
Do not log SHOW commands as slow queries just because they don't use indexes.
sql/sql_prepare.cc:
Save stmt_backup.lex->orig_sql_command for use in log_slow_statement()
mysql-test/t/ps-master.opt:
Add log-slow-queries and --log-queries-not-using indexes, to test bug #19764
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint-new
mysql-test/r/mysql.result:
Auto merged
mysql-test/t/mysql.test:
Auto merged
sql/sql_parse.cc:
Auto merged
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug20953
mysql-test/r/view.result:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/sp-error.result:
Manual merge.
should fail to create
The problem was that this type of errors was checked during view
creation, which doesn't happen when CREATE VIEW is a statement of
a created stored routine.
The solution is to perform the checks at parse time. The idea of the
fix is that the parser checks if a construction just parsed is allowed
in current circumstances by testing certain flags, and this flags are
reset for VIEWs.
The side effect of this change is that if the user already have
such bogus routines, it will now get a error when trying to do
SHOW CREATE PROCEDURE proc;
(and some other) and when trying to execute such routine he will get
ERROR 1457 (HY000): Failed to load routine test.p5. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
However there should be very few such users (if any), and they may
(and should) drop these bogus routines.
mysql-test/r/sp-error.result:
Add result for bug#20953: create proc with a create view that uses
local vars/params should fail to create.
mysql-test/r/view.result:
Update results.
mysql-test/t/sp-error.test:
Add test case for bug#20953: create proc with a create view that uses
local vars/params should fail to create.
mysql-test/t/view.test:
Add second test for variable in a view.
Remove SP variable in a view test, as it tests wrong behaviour.
Add test for derived table in a view.
sql/sql_lex.cc:
Remove LEX::variables_used.
sql/sql_lex.h:
Remove LEX::variables_used and add st_parsing_options structure and
LEX::parsing_options member.
sql/sql_view.cc:
Move some error checking to sql/sql_yacc.yy.
sql/sql_yacc.yy:
Check for disallowed syntax in a CREATE VIEW at parse time to rise a
error when it is used inside CREATE PROCEDURE and CREATE FUNCTION, as
well as by itself.
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
sql-common/client.c:
Auto merged
mysql-test/lib/mtr_process.pl:
Remove junk code/comments
Moved the creation of var/log out of function mtr_kill_leftovers
mysql-test/mysql-test-run.pl:
Rename 'kill_running_server' to more appropriate name 'kill_running_servers'
If no var/log dir exists when mtr_kill_leftovers is started it should be created
Remove "unless" syntax, too perlish
Fix typo
into mysql.com:/home/hf/mysql-5.0.mrg
include/m_ctype.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/type_enum.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/table.cc:
Auto merged
sql/unireg.cc:
Auto merged
strings/ctype-mb.c:
SCCS merged
strings/ctype-utf8.c:
SCCS merged
into polly.local:/home/kaa/src/maint/mysql-5.0-maint
sql-common/my_time.c:
Auto merged
sql/field.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/time.cc:
Auto merged
mysql-test/r/func_time.result:
Manually merged
mysql-test/t/func_time.test:
Manually merged
mysql-test/r/func_time.result:
Fixed func_time test when merging the fix for bug #11655 and bug #20927 to 5.0
sql/item_timefunc.cc:
Fixed compilation when merging the fix for bug #11655 and bug #20927 to 5.0
The Cached_item_decimal::cmp() method wasn't checking for null pointer
returned from the val_decimal() of the item being cached.
This leads to server crash.
The Cached_item_decimal::cmp() method now check for null values.
sql/item_buff.cc:
Bug#22138: Unhandled NULL caused server crash
The Cached_item_decimal::cmp() method now check for null values.
mysql-test/r/type_decimal.result:
Added the test case for bug#22138: Unhandled NULL caused server crash
mysql-test/t/type_decimal.test:
Added the test case for bug#22138: Unhandled NULL caused server crash
hangs on Linux
If REPAIR TABLE ... USE_FRM is issued for table that is located in different
than default database server crash could happen.
In reopen_name_locked_table take database name from table_list (user specified
or default database) instead of from thd (default database).
Affects 4.1 only.
mysql-test/r/repair.result:
A test case for BUG#22562.
mysql-test/t/repair.test:
A test case for BUG#22562.
sql/sql_base.cc:
In reopen_name_locked_table take database name from table_list (user specified
or default database) instead of from thd (default database).
'run_testcase_need_master/slave_restart'
Remove the faulty qw
Only look for mysql_fix_privilege_tables if not windows
mysql-test/lib/mtr_cases.pl:
Move all code to determine when to restart into 'run_testcase_need_master/slave_restart'
Add possibility to wite --force-restart in -master.opt file, this will force a restart and
since master is not started with any special options there is no need to restart
again afterwards.
mysql-test/mysql-test-run.pl:
Remove the qw surrounding ENV{'LD_LIBRARY_PATH'}
Only look for the sh script mysql_fix_privileges when not on windows
Remove warnings about using unitialized variables
Improve the restart logic, eall code to determine when to restart is
now in run_testcase_need_master_restart and run_testcase_need_slave_restart
mysql-test/t/bdb-alter-table-2-master.opt:
Use --force-restart
mysql-test/t/not_embedded_server-master.opt:
Use --force-restart
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
into polly.local:/home/kaa/src/maint/m41-maint--07OGk
sql/field.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/func_time.result:
Manually merged
mysql-test/t/func_time.test:
Manually merged
The bug is present only in 4.1, will be null-merged to 5.0
For InnoDB, check value of thd->transaction.all.innodb_active_trans instead of thd->transaction.stmt.innobase_tid to see if we really need to rollback.
mysql-test/r/innodb_mysql.result:
Added testcase for bug #22728 "Handler_rollback value is growing"
mysql-test/t/innodb_mysql.test:
Added testcase for bug #22728 "Handler_rollback value is growing"
sql/handler.cc:
For InnoDB, check value of thd->transaction.all.innodb_active_trans instead of thd->transaction.stmt.innobase_tid to see if we really need to rollback.
Transaction on the slave sql thread got blocked against a slave's mysqld local ta's
lock. Since the default, slave-transaction-retries=10, there was replaying of the
replicated ta. That failed because of a new started from 5.0.13 policy not to rollback
a timed-out transaction. Effectively the first round of a timed-out ta becomes committed
by the replaying's first "BEGIN".
It was decided to backport already existed method working in 5.1 implemented in
bug #16228 for handling symmetrical deadlock problem. That patch introduced end_trans
execution whenever a replicated ta deadlocks or timed-out.
Note, that this solution can be practically suboptimal - in the light of the changed behavior
due to timeout we still could replay only the last statement - only with a high rate of timeouting
replicated transactions.
mysql-test/r/rpl_deadlock.result:
results changed
mysql-test/t/rpl_deadlock.test:
Refining the timeout part of the test to display that the timed-out transaction
is rolled back prior its replaying by slave sql.
Non-zero select's count would mean the first round work became persistent - wrong.
sql/slave.cc:
applying bug#16228 fix, approbated for deadlock use case in 5.1, almost verbatim.
Another alternative to replay only the offending statement requires significant
efforts, incl design work.
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21354
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_sum.cc:
Auto merged
mysql-test/r/ps.result:
Manual merge.
mysql-test/t/ps.test:
Manual merge.
statement.
The problem was that during statement re-execution if the result was
empty the old result could be returned for group functions.
The solution is to implement proper cleanup() method in group
functions.
mysql-test/r/ps.result:
Add result for bug#21354: (COUNT(*) = 1) not working in SELECT inside
prepared statement.
mysql-test/t/func_gconcat.test:
Add a comment that the test case is from bug#836.
mysql-test/t/ps.test:
Add test case for bug#21354: (COUNT(*) = 1) not working in SELECT inside
prepared statement.
sql/item_sum.cc:
Call clear() in Item_sum_count::cleanup().
sql/item_sum.h:
Add comments.
Add proper cleanup() methods.
Change Item_sum::no_rows_in_result() to call clear() instead of reset(),
as the latter also issues add(), and there is nothing to add when there
are no rows in result.
In a trigger or a function used in a statement it is possible to do
SELECT from a table being modified by the statement. However,
encapsulation of such SELECT into a view and selecting from a view
instead of direct SELECT was not possible.
This happened because tables used by views (which in their turn
were used from functions/triggers) were not excluded from checks
in unique_table() routine as it happens for the rest of tables
added to the statement table list for prelocking.
With this fix we ignore all such tables in unique_table(), thus
providing consistency: inside a trigger or a functions SELECT from
a view may be used where plain SELECT is allowed. Modification of
the same table from function or trigger is still disallowed. Also,
this patch doesn't affect the case where SELECT from the table being
modified is done outside of function of trigger, such SELECTs are
still disallowed (this limitation and visibility problem when function
select from a table being modified are subjects of bug 21326). See
also bug 22427.
mysql-test/r/view.result:
Add result for bug#19111: TRIGGERs selecting from a VIEW on the
firing base table fail.
mysql-test/t/view.test:
Add test case for bug#19111: TRIGGERs selecting from a VIEW on the
firing base table fail.
sql/sql_base.cc:
In unique_table() do not check tables that are used in a stored
function or a trigger ('prelocking_placeholder' is set). If such
function or a trigger will attempt to modify a table, the error will
be given, however select is allowed there.
Porting forward tests to replacement files.
mysql-test/r/mysql.result:
Ported changes from previous commit to new file.
mysql-test/t/mysql.test:
Ported changes from previous commit to new file.
When the client program had its stdout file descriptor closed by the calling
shell, after some amount of work (enough to fill a socket buffer) the server
would complain about a packet error and then disconnect the client.
This is a serious security problem. If stdout is closed before the mysql is
exec()d, then the first socket() call allocates file number 1 to communicate
with the server. Subsequent write()s to that file number (as when printing
results that come back from the database) go back to the server instead in
the command channel. So, one should be able to craft data which, upon being
selected back from the server to the client, and injected into the command
stream become valid MySQL protocol to do something nasty when sent /back/ to
the server.
The solution is to close explicitly the file descriptor that we *printf() to,
so that the libc layer and the OS layer both agree that the file is closed.
BitKeeper/etc/collapsed:
BitKeeper file /home/cmiller/work/mysql/bug17583/my41-bug17583/BitKeeper/etc/collapsed
client/mysql.cc:
If standard output is not open (specifically, if dup() of its file number
fails) then we explicitly close it so that future uses of the file descriptor
behave correctly for a closed file.
mysql-test/r/mysql_client.result:
Prove that the problem of writing SQL output to the command socket no longer
exists.
mysql-test/t/mysql_client.test:
Prove that the problem of writing SQL output to the command socket no longer
exists.
into chilla.local:/home/mydev/mysql-5.0-bug8283
include/my_sys.h:
Auto merged
include/myisam.h:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_open.c:
Auto merged
myisam/mi_packrec.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/t/myisam.test:
Auto merged
myisam/myisamdef.h:
Bug#8283 - OPTIMIZE TABLE causes data loss
Merge from 4.1
mysql-test/r/myisam.result:
Bug#8283 - OPTIMIZE TABLE causes data loss
Merge from 4.1
mysys/mf_iocache.c:
Bug#8283 - OPTIMIZE TABLE causes data loss
Merge from 4.1
into chilla.local:/home/mydev/mysql-4.1-bug8283-one
myisam/mi_check.c:
Auto merged
myisam/mi_packrec.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/r/myisam.result:
Bug#8283 - OPTIMIZE TABLE causes data loss
Manual merge
mysql-test/t/myisam.test:
Bug#8283 - OPTIMIZE TABLE causes data loss
Manual merge
OPTIMIZE TABLE with myisam_repair_threads > 1 performs a non-quick
parallel repair. This means that it does not only rebuild all
indexes, but also the data file.
Non-quick parallel repair works so that there is one thread per
index. The first of the threads rebuilds also the new data file.
The problem was that all threads shared the read io cache on the
old data file. If there were holes (deleted records) in the table,
the first thread skipped them, writing only contiguous, non-deleted
records to the new data file. Then it built the new index so that
its entries pointed to the correct record positions. But the other
threads didn't know the new record positions, but put the positions
from the old data file into the index.
The new design is so that there is a shared io cache which is filled
by the first thread (the data file writer) with the new contiguous
records and read by the other threads. Now they know the new record
positions.
Another problem was that for the parallel repair of compressed
tables a common bit_buff and rec_buff was used. I changed it so
that thread specific buffers are used for parallel repair.
A similar problem existed for checksum calculation. I made this
multi-thread safe too.
include/my_sys.h:
Bug#8283 - OPTIMIZE TABLE causes data loss
Redesign of io_cache_share.
include/myisam.h:
Bug#8283 - OPTIMIZE TABLE causes data loss
Redesign of checksum calculation in mi_check.c.
'calc_checksum' is now in myisamdef.h:st_mi_sort_param.
myisam/mi_check.c:
Bug#8283 - OPTIMIZE TABLE causes data loss
Implemented a new parallel repair design.
Using a synchronized shared read/write cache.
Allowed for thread specific bit_buff, rec_buff, and calc_checksum.
myisam/mi_open.c:
Bug#8283 - OPTIMIZE TABLE causes data loss
Added DBUG output.
myisam/mi_packrec.c:
Bug#8283 - OPTIMIZE TABLE causes data loss
Allowed for thread specific bit_buff and rec_buff.
myisam/myisamdef.h:
Bug#8283 - OPTIMIZE TABLE causes data loss
Commented on checksum calculation variables.
Allowed for thread specific bit_buff.
Added DBUG output for better table crash detection.
myisam/sort.c:
Bug#8283 - OPTIMIZE TABLE causes data loss
Added implications of the new parallel repair design.
Renamed 'info' -> 'sort_param'.
Added DBUG output.
mysql-test/r/myisam.result:
Bug#8283 - OPTIMIZE TABLE causes data loss
Added test results.
mysql-test/t/myisam.test:
Bug#8283 - OPTIMIZE TABLE causes data loss
Added test cases.
mysys/mf_iocache.c:
Bug#8283 - OPTIMIZE TABLE causes data loss
Redesign of io_cache_share.
We do now allow a writer to synchronize himself with the
readers of a shared cache. When all threads join in the lock,
the writer copies the data from his write buffer to the shared
read buffer.
The syntax of the CALL statement, to invoke a stored procedure, has been
changed to make the use of parenthesis optional in the argument list.
With this change, "CALL p;" is equivalent to "CALL p();".
While the SQL spec does not explicitely mandate this syntax, supporting it
is needed for practical reasons, for integration with JDBC / ODBC connectors.
Also, warnings in the sql/sql_yacc.yy file, which were not reported by Bison 2.1
but are now reported by Bison 2.2, have been fixed.
The warning found were:
bison -y -p MYSQL -d --debug --verbose sql_yacc.yy
sql_yacc.yy:653.9-18: warning: symbol UNLOCK_SYM redeclared
sql_yacc.yy:656.9-17: warning: symbol UNTIL_SYM redeclared
sql_yacc.yy:658.9-18: warning: symbol UPDATE_SYM redeclared
sql_yacc.yy:5169.11-5174.11: warning: unused value: $2
sql_yacc.yy:5208.11-5220.11: warning: unused value: $5
sql_yacc.yy:5221.11-5234.11: warning: unused value: $5
conflicts: 249 shift/reduce
"unused value: $2" correspond to the $$=$1 assignment in the 1st {} block
in table_ref -> join_table {} {},
which does not procude a result ($$) for the rule but an intermediate $2
value for the action instead.
"unused value: $5" are similar, with $$ assignments in {} actions blocks
which are not for the final reduce.
mysql-test/r/sp.result:
New test case for Bug#21462
mysql-test/t/sp.test:
New test case for Bug#21462
sql/sql_yacc.yy:
"CALL p;" syntax for calling a stored procedure
Fixed bison 2.2 warnings.
Currently SQL_BIG_RESULT is checked only at compile time.
However, additional optimizations may take place after
this check that change the sort method from 'filesort'
to sorting via index. As a result the actual plan
executed is not the one specified by the SQL_BIG_RESULT
hint. Similarly, there is no such test when executing
EXPLAIN, resulting in incorrect output.
The patch corrects the problem by testing for
SQL_BIG_RESULT both during the explain and execution
phases.
mysql-test/r/bdb.result:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- updated sql_big_result testcase
mysql-test/r/group_by.result:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- test case with MyISAM
mysql-test/r/innodb.result:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- updated sql_big_result testcase
mysql-test/r/innodb_mysql.result:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- test case with InnoDB
mysql-test/r/myisam.result:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- updated sql_big_result testcase
mysql-test/t/group_by.test:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- test case with MyISAM
mysql-test/t/innodb_mysql.test:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- test case with InnoDB
sql/sql_select.cc:
Bug #22781: SQL_BIG_RESULT fails to influence sort plan
- When SQL_BIG_RESULT is specified, disable the optimization performed
at execution/explain time that decides to use an index instead
of filesort.
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
BitKeeper/deleted/.del-check-testcase.test:
Delete: mysql-test/include/check-testcase.test
to run the whole testcase to find wich testcases need to be checked more carefully
and the just "copy and paste" the suspicious test case names to
a new mysql-test-run.pl command.
mysql-test/mysql-test-run.pl:
Mark test cases that fails "check_testcase"
Make run_check_testcase return value indicating if check failed
mysql-test/include/check-testcase.test:
New BitKeeper file ``mysql-test/include/check-testcase.test''
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysqltest.c:
Auto merged
mysql-test/t/rpl_slave_status.test:
Auto merged
mysql-test/t/system_mysql_db_fix.test:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Move the code to look for exe_mysqld earlier => to initial_setup
Fix warnings detected by running with "diagnostics"
Remove unused option "opt_result_ext"
Init "path_ndb_examples_dir"
mysql-test/lib/mtr_cases.pl:
Set default number of slave to 0
Remove unused/uninitialized "$opt_result_ext"
mysql-test/lib/mtr_report.pl:
Remove unused/uninitialized "$opt_result_ext"
the "mysqld --version" command will print "/path/.libs/lt-mysqld Ver x.x.x"
mysql-test/mysql-test-run.pl:
Modify regex for parsing mysqld version as the mysqld is sometimes a libtool wrapper and
the "mysqld --version" command will print "/path/.libs/lt-mysqld"
into neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/r/mysqltest.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
BitKeeper/deleted/.del-mtr_stress.pl:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
BitKeeper/deleted/.del-mtr_im.pl:
Delete: mysql-test/lib/mtr_im.pl
client/mysqltest.c:
Use remote
mysql-test/mysql-test-run.pl:
Use remote
mysql-test/lib/mtr_process.pl:
Use remote
Note: bug#21726 does not directly apply to 4.1, as it doesn't have stored
procedures. However, 4.1 had some bugs that were fixed in 5.0 by the
patch for bug#21726, and this patch is a backport of those fixes.
Namely, in 4.1 it fixes:
- LAST_INSERT_ID(expr) didn't return value of expr (4.1 specific).
- LAST_INSERT_ID() could return the value generated by current
statement if the call happens after the generation, like in
CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
- Redundant binary log LAST_INSERT_ID_EVENTs could be generated.
mysql-test/r/rpl_insert_id.result:
Add result for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID.
mysql-test/t/rpl_insert_id.test:
Add test case for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID.
sql/item_func.cc:
Add implementation of Item_func_last_insert_id::fix_fields(), where we
set THD::last_insert_id_used when statement calls LAST_INSERT_ID().
In Item_func_last_insert_id::val_int(), return THD::current_insert_id
if called like LAST_INSERT_ID(), otherwise return value of argument if
called like LAST_INSERT_ID(expr).
sql/item_func.h:
Add declaration of Item_func_last_insert_id::fix_fields().
sql/log_event.cc:
Do not set THD::last_insert_id_used on LAST_INSERT_ID_EVENT. Though we
know the statement will call LAST_INSERT_ID(), it wasn't called yet.
sql/set_var.cc:
In sys_var_last_insert_id::value_ptr(), set THD::last_insert_id_used,
and return THD::current_insert_id for @@LAST_INSERT_ID.
sql/sql_class.h:
Update comments.
Remove THD::insert_id(), as it has lost its purpose now.
sql/sql_insert.cc:
Now it is OK to read THD::last_insert_id directly.
sql/sql_load.cc:
Now it is OK to read THD::last_insert_id directly.
sql/sql_parse.cc:
In mysql_execute_command(), remember THD::last_insert_id (first
generated value of the previous statement) in THD::current_insert_id,
which then will be returned for LAST_INSERT_ID() and @@LAST_INSERT_ID.
sql/sql_select.cc:
If "IS NULL" is replaced with "= <LAST_INSERT_ID>", use right value,
which is THD::current_insert_id, and also set THD::last_insert_id_used
to issue binary log LAST_INSERT_ID_EVENT.
sql/sql_update.cc:
Now it is OK to read THD::last_insert_id directly.
tests/mysql_client_test.c:
Add test case for bug#21726: Incorrect result with multiple invocations
of LAST_INSERT_ID.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Improve 'run_testcase_need_slave_restart' to detect if a slave restart really is necessary.
So far all rpl test requires a slave restart, but for all other tests it can be skipped
Improve the sort order used by --reorder
mysql-test/lib/mtr_cases.pl:
Improve the sort order used by reorder
mysql-test/mysql-test-run.pl:
Improve 'run_testcase_need_master_restart' to require restart if master is not already started
Improve 'run_testcase_need_slave_restart' to detect if a slave restart really is necessary.
So far all rpl test requires a slave restart, but for all other tests it can be skipped
into mysql.com:/home/svoj/devel/mysql/BUG10974/mysql-5.0-engines
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/merge.result:
Manual merge.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
Makefile.am:
Manual merge
Cleanup .progress, .reject, .log and .warnings files produced by mysqltest
client/mysqltest.c:
Add printout of file in which warning was detected
mysql-test/include/ctype_like_escape.inc:
Remove warnings, convert -- comments to # comments
mysql-test/mysql-test-run.pl:
Cleanup all files produced by mysqltest before starting mysqltest again
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Add policy directive about keeping mysqltest framework tools identical in all versions
Cleanup the initial comment to reflect current state
but having it on tmpfs gives a big speedup.
mysql-test/mysql-test-run.pl:
Make use of opt_mem and let 4.1 allow vardir to be set. Still relies on the var/ directory
but having it on tmpfs gives a big speedup.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/rpl_loaddatalocal.result:
Auto merged
mysql-test/mysql-test-run.pl:
Use same location for slave-load-tmpdir in all versions
mysql-test/mysql-test-run.sh:
Use same location for slave-load-tmpdir in all versions
mysql-test/r/rpl_loaddata.result:
Update result after changing slave-load-tmpdir to use a shorter path
mysql-test/r/rpl_loaddatalocal.result:
Update result after changing slave-load-tmpdir to use a shorter path
mysql-test/r/rpl_log.result:
Update result after changing slave-load-tmpdir to use a shorter path
mysql-test/t/rpl_loaddatalocal.test:
Use MYSQLTEST_VARDIR when specifying path to load from(backport from 5.0)
Use new command "remove_file" instead of s"ystem rm"
into mysql.com:/home/svoj/devel/mysql/BUG21381/mysql-5.0-engines
mysql-test/r/ndb_update.result:
Auto merged
mysql-test/t/ndb_update.test:
Auto merged
sql/sql_update.cc:
Manual merge.
Though this is not storage engine specific problem, I was able to
repeat this problem with BDB and NDB engines only. That was the
reason to add a test case into ndb_update.test. As a result
different bad things could happen.
BDB has removed duplicate rows which is not expected.
NDB returns an error.
For multi table update notify storage engine about UPDATE IGNORE
as it is done in single table UPDATE.
mysql-test/r/ndb_update.result:
A test case for bug#21381.
mysql-test/t/ndb_update.test:
A test case for bug#21381.
sql/sql_update.cc:
For multi table update notify storage engine about UPDATE IGNORE
as it is done in single table UPDATE.
from var/ to a tmpfs area and thereby speed up the execution of the testsuite
significantly
mysql-test/mysql-test-run.pl:
Add new option --mem to mysql-test-run.pl. It will automatically setup a symlink
from var/ to a tmpfs area and thereby speed up the execution of the testsuite
significantly
into mysql.com:/home/gluh/MySQL/Merge/4.1-kt
include/m_ctype.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/table.cc:
Auto merged
sql/unireg.cc:
Auto merged
Some variable names in 5.1 is soo long that there is no space inbetween
name and value. Outputing a warning about it, as that should probably be fixed.
At least one space should be put between the name and value.
into neptunus.(none):/home/msvensson/mysql/same_tools/my50-same_tools
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
I.e take advantage of the fact that a # comment is always terminated by a new line
Add tests for the above
client/mysqltest.c:
Improve "check_eol_junk" to detect junk although there are multi line comments in the way.
I.e take advantage of the fact that a # comment is always terminated by a new line
mysql-test/r/mysqltest.result:
Update resut file
mysql-test/t/mysqltest.test:
Add test for improved check_eol_junk