- 27 Jul, 2006 1 commit
-
-
gkodinov/kgeorge@rakia.(none) authored
into rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt
-
- 26 Jul, 2006 4 commits
-
-
gkodinov/kgeorge@rakia.(none) authored
into rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt
-
gkodinov/kgeorge@macbook.gmz authored
When processing aggregate functions all tables values are reset to NULLs at the end of each group. When doing that if there are no rows found for a group the const tables must not be reset as they are not recalculated by do_select()/sub_select() for each group.
-
gkodinov/kgeorge@rakia.(none) authored
into rakia.(none):/home/kgeorge/mysql/autopush/B21019-4.1-opt
-
gkodinov/kgeorge@macbook.gmz authored
When optimizing conditions like 'a = <some_val> OR a IS NULL' so that they're united into a single condition on the key and checked together the server must check which value is the NULL value in a correct way : not only using ->is_null but also check if the expression doesn't depend on any tables referenced in the current statement. This additional check must be performed because that optimization takes place before the actual execution of the statement, so if the field was initialized to NULL from a previous statement the optimization would be applied incorrectly.
-
- 25 Jul, 2006 2 commits
-
-
timour/tkatchaounov@lamia.home authored
into lamia.home:/home/tkatchaounov/autopush/4.1-bug-20954
-
timour/timka@lamia.home authored
The problem was in that opt_sum_query() replaced MIN/MAX functions with the corresponding constant found in a key, but due to imprecise representation of float numbers, when evaluating the where clause, this comparison failed. When MIN/MAX optimization detects that all tables can be removed, also remove all conjuncts in a where clause that refer to these tables. As a result of this fix, these conditions are not evaluated twice, and in the case of float number comparisons we do not discard result rows due to imprecise float representation. As a side-effect this fix also corrects an unnoticed problem in bug 12882.
-
- 21 Jul, 2006 1 commit
-
-
sergefp@mysql.com authored
-
- 20 Jul, 2006 1 commit
-
-
sergefp@mysql.com authored
Add implementations of Item_func_{nop,not}_all::neg_transformer
-
- 19 Jul, 2006 1 commit
-
-
igor@olga.mysql.com authored
for class Item_func_trim. For 4.1 it caused wrong output for EXPLAIN EXTENDED commands if expressions with the TRIM function of two arguments were used. For 5.0 it caused an error message when trying to select from a view with the TRIM function of two arguments. This unexpected error message was due to the fact that the print method for the class Item_func_trim was inherited from the class Item_func. Yet the TRIM function does not take a list of its arguments. Rather it takes the arguments in the form: [{BOTH | LEADING | TRAILING} [remstr] FROM] str) | [remstr FROM] str
-
- 18 Jul, 2006 1 commit
-
-
evgen@moonbone.local authored
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
-
- 14 Jul, 2006 1 commit
-
-
gkodinov/kgeorge@rakia.(none) authored
into rakia.(none):/home/kgeorge/mysql/autopush/B17212-4.1-opt
-
- 13 Jul, 2006 1 commit
-
-
do not look for client-specific commands while inside a multi-line comment. we will allow multi-comments pretty much anywhere within SQL-statements, but client-specific commands (help, use, print, ...) must be the first token in the input.
-
- 12 Jul, 2006 2 commits
-
-
gkodinov/kgeorge@macbook.gmz authored
* don't use join cache when the incoming data set is already ordered for ORDER BY This choice must be made because join cache will effectively reverse the join order and the results will be sorted by the index of the table that uses join cache.
-
evgen@moonbone.local authored
into moonbone.local:/work/16302-bug-4.1-opt-mysql
-
- 11 Jul, 2006 5 commits
-
-
evgen@moonbone.local authored
into moonbone.local:/work/18503-bug-4.1-mysql
-
evgen@moonbone.local authored
may return a wrong result. An Item_sum_hybrid object has the was_values flag which indicates whether any values were added to the sum function. By default it is set to true and reset to false on any no_rows_in_result() call. This method is called only in return_zero_rows() function. An ALL/ANY subquery can be optimized by MIN/MAX optimization. The was_values flag is used to indicate whether the subquery has returned at least one row. This bug occurs because return_zero_rows() is called only when we know that the select will return zero rows before starting any scans but often such information is not known. In the reported case the return_zero_rows() function is not called and the was_values flag is not reset to false and yet the subquery return no rows Item_func_not_all and Item_func_nop_all functions return a wrong comparison result. The end_send_group() function now calls no_rows_in_result() for each item in the fields_list if there is no rows were found for the (sub)query.
-
cmiller@zippy.(none) authored
The problem is that the author used the wrong function to send a warning to the user about truncation of data. push_warning() takes a constant string and push_warning_printf() takes a format and variable arguments to fill it. Since the string we were complaining about contains percent characters, the printf() code interprets the "%Y" et c. that the user sends. That's wrong, and often causes a crash, especially if the date mentions seconds, "%s". A alternate fix would be to use push_warning_printf(..., "%s", warn_buff) .
-
evgen@moonbone.local authored
into moonbone.local:/work/16302-bug-4.1-opt-mysql
-
evgen@moonbone.local authored
into moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
-
- 10 Jul, 2006 4 commits
-
-
evgen@moonbone.local authored
into moonbone.local:/work/allany-4.1-mysql
-
evgen@moonbone.local authored
The ALL/ANY subqueries are the subject of MIN/MAX optimization. The matter of this optimization is to embed MIN() or MAX() function into the subquery in order to get only one row by which we can tell whether the expression with ALL/ANY subquery is true or false. But when it is applied to a subquery like 'select a_constant' the reported bug occurs. As no tables are specified in the subquery the do_select() function isn't called for the optimized subquery and thus no values have been added to a MIN()/MAX() function and it returns NULL instead of a_constant. This leads to a wrong query result. For the subquery like 'select a_constant' there is no reason to apply MIN/MAX optimization because the subquery anyway will return at most one row. Thus the Item_maxmin_subselect class is more appropriate for handling such subqueries. The Item_in_subselect::single_value_transformer() function now checks whether tables are specified for the subquery. If no then this subselect is handled like a UNION using an Item_maxmin_subselect object.
-
gkodinov/kgeorge@macbook.gmz authored
into macbook.gmz:/Users/kgeorge/mysql/work/B14553-4.1-opt
-
To make MySQL compatible with some ODBC applications, you can find the AUTO_INCREMENT value for the last inserted row with the following query: SELECT * FROM tbl_name WHERE auto_col IS NULL. This is done with a special code that replaces 'auto_col IS NULL' with 'auto_col = LAST_INSERT_ID'. However this also resets the LAST_INSERT_ID to 0 as it uses it for a flag so as to ensure that only the first SELECT ... WHERE auto_col IS NULL after an INSERT has this special behaviour. In order to avoid resetting the LAST_INSERT_ID a special flag is introduced in the THD class. This flag is used to restrict the second and subsequent SELECTs instead of LAST_INSERT_ID.
-
- 06 Jul, 2006 2 commits
-
-
igor@olga.mysql.com authored
into olga.mysql.com:/home/igor/mysql-4.1-opt
-
igor@olga.mysql.com authored
The implementation of the method Item_func_reverse::val_str for the REVERSE function modified the argument of the function. This led to wrong results for expressions that contained REVERSE(ref) if ref occurred somewhere else in the expressions.
-
- 05 Jul, 2006 1 commit
-
-
joerg@mysql.com authored
into mysql.com:/M41/bug20216-4.1
-
- 04 Jul, 2006 2 commits
-
-
bar@mysql.com authored
(implemented by by Josh Chamas)
-
sergefp@mysql.com authored
-
- 30 Jun, 2006 11 commits
-
-
sergefp@mysql.com authored
into mysql.com:/home/psergey/mysql-4.1-bug16168-push
-
monty@mysql.com authored
into mysql.com:/home/my/mysql-4.1
-
monty@mysql.com authored
into mysql.com:/home/my/mysql-4.1
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
-
monty@mysql.com authored
into mysql.com:/home/my/mysql-4.1
-
monty@mysql.com authored
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main
-
tomas@poseidon.ndb.mysql.com authored
- added missing retrieval of hidden primary key
-
kroki@mysql.com authored
into mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug20152
-
kroki@mysql.com authored
When using a parameter bind MYSQL_TYPE_DATE in a prepared statement, the time part of the MYSQL_TIME buffer was written to zero in mysql_stmt_execute(). The param_store_date() function in libmysql.c worked directly on the provided buffer. Changed to use a copy of the buffer.
-
sergefp@mysql.com authored
- Added comments. - Make SEL_ARG::clone() set SEL_ARG::elements in the created copy.
-