- 15 Apr, 2007 1 commit
-
-
unknown authored
The Item_outer_ref class based on the Item_direct_ref class was always used to represent an outer field. But if the outer select is a grouping one and the outer field isn't under an aggregate function which is aggregated in that outer select an Item_ref object should be used to represent such a field. If the outer select in which the outer field is resolved isn't grouping then the Item_field class should be used to represent such a field. This logic also should be used for an outer field resolved through its alias name. Now the Item_field::fix_outer_field() uses Item_outer_field objects to represent aliased and non-aliased outer fields for grouping outer selects only. Now the fix_inner_refs() function chooses which class to use to access outer field - the Item_ref or the Item_direct_ref. An object of the chosen class substitutes the original field in the Item_outer_ref object. The direct_ref and the found_in_select_list fields were added to the Item_outer_ref class. mysql-test/t/subselect3.test: Some test cases were corrected after the fix for the bug#27321. mysql-test/r/subselect3.result: Some test cases were corrected after the fix for the bug#27321. mysql-test/t/subselect.test: Added a test case for the bug#27321: Wrong subquery result in a grouping select. mysql-test/r/subselect.result: Added a test case for the bug#27321: Wrong subquery result in a grouping select. Some test cases were corrected after this fix. sql/sql_union.cc: Bug#27321: Wrong subquery result in a grouping select. Cleanup of the inner_refs_list. sql/sql_select.cc: Bug#27321: Wrong subquery result in a grouping select. Now the fix_inner_refs() function chooses which class to use to access outer field - the Item_ref or the Item_direct_ref. An object of the chosen class substitutes the original field in the Item_outer_ref object. A comment is corrected. sql/item.cc: Bug#27321: Wrong subquery result in a grouping select. Now the Item_field::fix_outer_field() uses Item_outer_field objects to represent aliased and non-aliased outer fields for grouping outer selects only. sql/item.h: Bug#27321: Wrong subquery result in a grouping select. The direct_ref and the found_in_select_list fields were added to the Item_outer_ref class.
-
- 26 Mar, 2007 5 commits
-
-
unknown authored
enabled the optional FOR JOIN to all the three clauses : USE, FORCE and IGNORE mysql-test/r/select.result: WL3527: 5.0 part: test cases mysql-test/t/select.test: WL3527: 5.0 part: test cases
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/work/B27164-5.0-opt mysql-test/t/gis.test: Auto merged mysql-test/r/gis.result: merge 4.1-opt -> 5.0-opt sql/field.h: merge 4.1-opt -> 5.0-opt
-
unknown authored
to 0 causes wrong (large) length to be read from the row in _mi_calc_blob_length() when storing NULL values in (e.g) POINT columns. This large length is then used to allocate a block of memory that (on some OSes) causes trouble. Fixed by calling the base class's Field_blob::reset() from Field_geom::reset() that is called when storing a NULL value into the column. mysql-test/r/gis.result: Bug #27164: test case mysql-test/t/gis.test: Bug #27164: test case sql/field.h: Bug #27164: not reseting the data pointer to 0 causes wrong (large) length to be read from the row in _mi_calc_blob_length() when storing NULL values in (e.g) POINT columns. This large length is then used to allocate a block of memory that (on some OSes) causes trouble.
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27229
-
unknown authored
from func_group.test after the patch for bug #27229 had been applied. The memory corruption happened because in some rare cases the function count_field_types underestimated the number of elements in in the array param->items_to_copy. sql/item_sum.cc: The return value of the Item_sum::update_used_tables method should not depend on the place of aggregation of the set function for which the Item_sum object has been created. sql/sql_select.cc: This is a fix for the memory corruption occurred in one of test cases from func_group.test after the patch for bug #27229 had been applied. The memory corruption happened because in some rare cases the function count_field_types underestimated the number of elements in in the array param->items_to_copy. Currently it's not guaranteed that after JOIN::prepare() the used_tables attribute is calculated for all items. For example for the expression SUM(outer_ref)+1 used_tables() must return OUTER_REF_TABLE_BIT. Yet by the moment when the used_tables attribute is calculated in JOIN::prepare SUM(outer_ref) has not been substituted for Item_aggregate_ref yet. By this reason additional calls of the method update_used_tables are needed for some items passed as parameters to the function create_tmp_table.
-
- 23 Mar, 2007 1 commit
-
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B26186-5.0-opt
-
- 22 Mar, 2007 32 commits
-
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27229 sql/item.cc: Auto merged sql/item_sum.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_select.cc: Auto merged
-
unknown authored
context was used as an argument of GROUP_CONCAT. Ensured correct setting of the depended_from field in references generated for set functions aggregated in outer selects. A wrong value of this field resulted in wrong maps returned by used_tables() for these references. Made sure that a temporary table field is added for any set function aggregated in outer context when creation of a temporary table is needed to execute the inner subquery. mysql-test/r/subselect.result: Added a test case for bug #27229. mysql-test/t/subselect.test: Added a test case for bug #27229. sql/item.cc: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. Ensured correct setting of the depended_from field in references generated for set functions aggregated in outer selects. sql/item_sum.cc: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. Added the field aggr_sel to the objects of the class Item_sum. In any Item_sum object created for a set function this field has to contain a pointer to the select where the set function is aggregated. sql/item_sum.h: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. Added the field aggr_sel to the objects of the class Item_sum. In any Item_sum object created for a set function this field has to contain a pointer to the select where the set function is aggregated. Added a method that says whether a set function is aggregated in outer context and, if so, returns the aggregating select. Removed the field nest_level_tables_count introduced by the patch for bug 24484 as aggr_sel->join->tables contains the sane number. sql/sql_base.cc: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. Added the field aggr_sel to the objects of the class Item_sum. Removed changes introduced by the patch for bug 24484 as the field leaf_count of the THD class is not used anymore. sql/sql_class.h: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. Added the field aggr_sel to the objects of the class Item_sum. Removed changes introduce by the patch for bug 24484 as the field leaf_count of the THD class is not used anymore. sql/sql_insert.cc: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. Added the field aggr_sel to the objects of the class Item_sum. Removed changes introduce by the patch for bug 24484 as the field leaf_count of the THD class is not used anymore. sql/sql_select.cc: Fixed bug #27229: crash when a set function aggregated in outer context was used as an argument of GROUP_CONCAT. When creating a temporary table a field is added in it for any set function aggregated in outer context.
-
unknown authored
into moonbone.local:/mnt/gentoo64/work/26813-bug-5.0-opt-mysql
-
unknown authored
Post-fix for bug#26813. sql/sql_view.cc: Post-fix for bug#26813.
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt sql/item_cmpfunc.cc: Auto merged
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-4.1-opt
-
unknown authored
into moonbone.local:/mnt/gentoo64/work/26813-bug-5.0-opt-mysql
-
unknown authored
another user. When the DEFINER clause isn't specified in the ALTER statement then it's loaded from the view definition. If the definer differs from the current user then the error is thrown because only a super-user can set other users as a definers. Now if the DEFINER clause is omitted in the ALTER VIEW statement then the definer from the original view is used without check. mysql-test/t/view_grant.test: Added a test case for the bug#27006: The SUPER privilege is wrongly required to alter a view created by another user. mysql-test/r/view_grant.result: Added a test case for the bug#27006: The SUPER privilege is wrongly required to alter a view created by another user. sql/sql_view.cc: Bug#26813: The SUPER privilege is wrongly required to alter a view created by another user. Now if the DEFINER clause is omitted in the ALTER VIEW statement then the definer from the original view is used without check.
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B26186-5.0-opt sql/sql_delete.cc: Auto merged
-
unknown authored
into magare.gmz:/home/kgeorge/mysql/autopush/B26207-5.0-opt sql/sql_select.h: Auto merged
-
unknown authored
in index search MySQL was not explicitly suppressing warnings. And if the context happens to enable warnings (e.g. INSERT .. SELECT) the warnings resulting from converting the data the key is compared to are reported to the client. Fixed by suppressing warnings when converting the data to the same type as the key parts. mysql-test/r/insert_select.result: Bug #26207: test case mysql-test/t/insert_select.test: Bug #26207: test case sql/sql_select.h: Bug #26207: supress warnings when converting data of the same type to key buffer format.
-
unknown authored
Patch appled after doing a pull from the team tree. Additional tests had to be fixed mysql-test/r/union.result: Bug 24791 The tests for temporary tables have been fixed. Since the call to display_length(Item) was removed from the constructor for Item_type_holder, items in temporary tables keep the original values of the items, rather than the magic numbers supplied by display_length.
-
unknown authored
into linux-st28.site:/home/martin/mysql/src/5.0o-bug24791 sql/item.cc: Auto merged
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb ndb/test/ndbapi/testNodeRestart.cpp: Auto merged
-
unknown authored
fix test prg ndb/test/ndbapi/testNodeRestart.cpp: fix test prg
-
unknown authored
into linux-st28.site:/home/martin/mysql/src/5.0o-bug24791 sql/field.h: Auto merged sql/item_sum.cc: Auto merged
-
unknown authored
The problem in this bug is when we create temporary tables. When temporary tables are created for unions, there is some inferrence being carried out regarding the type of the column. Whenever this column type is inferred to be REAL (i.e. FLOAT or DOUBLE), MySQL will always try to maintain exact precision, and if that is not possible (there are hardware limits, since FLOAT and DOUBLE are stored as approximate values) will switch to using approximate values. The problem here is that at this point the information about number of significant digits is not available. Furthermore, the number of significant digits should be increased for the AVG function, however, this was not properly handled. There are 4 parts to the problem: #1: DOUBLE and FLOAT fields don't display their proper display lengths in max_display_length(). This is hard-coded as 53 for DOUBLE and 24 for FLOAT. Now changed to instead return the field_length. #2: Type holders for temporary tables do not preserve the max_length of the Item's from which they are created, and is instead reverted to the 53 and 24 from above. This causes *all* fields to get non-fixed significant digits. #3: AVG function does not update max_length (display length) when updating number of decimals. #4: The function that switches to non-fixed number of significant digits should use DBL_DIG + 2 or FLT_DIG + 2 as cut-off values (Since fixed precision does not use the 'e' notation) Of these points, #1 is the controversial one, but this change is preferred and has been cleared with Monty. The function causes quite a few unit tests to blow up and they had to b changed, but each one is annotated and motivated. We frequently see the magical 53 and 24 give way to more relevant numbers. mysql-test/r/create.result: bug#24791 changed test result With the changes made for FLOAT and DOUBLE, the original display lengths are now preserved. mysql-test/r/temp_table.result: bug#24791 changed test resullt Test case added mysql-test/r/type_float.result: bug#24791 changed test result delta 1: field was originally declared as DOUBLE with no display length, so the hardware maximum is chosen rather than 53. delta 2: fields exceed the maximum precision and thus switch to non-fixed significant digits delta 3: Same as above, number of decmals and significant digits was not specified when t3 was created. mysql-test/t/temp_table.test: bug#24791 Test case sql/field.h: bug#24791 The method max_display_length is reimplemented as uint32 max_display_length() { return field_length; } in Field_double and Field_float. Since all subclasses of Field_real now have the same implementation of this method, the implementation has been moved up the hierarchy to Field_real. sql/item.cc: bug#24791 We switch to a non-fixed number of significant digits (by setting decimals=NOT_FIXED_DECIMAL) if the calculated display length is greater than the display length of a value with the maximum precision. These values differ for double and float, obviously. sql/item_sum.cc: bug#24791 We must increase the display length accordinly whenever we change number of decimal places.
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
-
unknown authored
fix for cast( AS DATETIME)+0 in 5.0 and above versions. val_real now works using val_decimal for DATETIME Items Superfluous val_real() methods deleted sql/item_timefunc.h: val_real() for datetime functions implemented as { return val_real_from_decimal(); } It's not a fastest possible way, but code is simple and less error-prone, what i belive is more important here as this part works unfrequently.
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt mysql-test/t/type_datetime.test: Auto merged mysql-test/r/type_datetime.result: SCCS merged sql/item_timefunc.h: SCCS merged
-
unknown authored
fix for cast( AS DATETIME) + 0 operation. I just implemented Item_datetime_typecast::val() method as it is usually done in other classes. Should be fixed more radically in 5.0 mysql-test/r/type_datetime.result: result added mysql-test/t/type_datetime.test: testcase sql/item_timefunc.h: added double conversion to Item_datetime_typecast
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt sql/item.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_yacc.yy: Auto merged
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt libmysqld/lib_sql.cc: Auto merged
-
unknown authored
into mysql.com:/home/hf/work/mrg/mysql-4.1-opt
-
unknown authored
into mysql.com:/home/hf/work/25492/my50-25492 libmysqld/lib_sql.cc: merging
-
unknown authored
of its argument happened to be a decimal expression returning the NULL value. The crash was due to the fact the function in_decimal::set did not take into account that val_decimal() could return 0 if the decimal expression had been evaluated to NULL. mysql-test/r/func_in.result: Added a test case for bug #27362. mysql-test/t/func_in.test: Added a test case for bug #27362.
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
-
- 21 Mar, 2007 1 commit
-
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
-