Commit graph

31651 commits

Author SHA1 Message Date
unknown
c4c36e17ac Fixed bug #16249: different results for a range with an without index
when a range condition use an invalid DATETIME constant.
Now we do not use invalid DATETIME constants to form end keys for
range intervals: range analysis just ignores predicates with such
constants.  


mysql-test/r/query_cache.result:
  Adjusted result warnings when adding a fix for bug #16249.
mysql-test/r/range.result:
  Added a test case for bug #16249.
mysql-test/t/range.test:
  Added a test case for bug #16249.
2006-08-31 07:27:34 -07:00
unknown
75865af64b Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-08-25 02:18:30 -07:00
unknown
f121994de8 Fixed bug #21390: wrong estimate of rows after elimination of
const tables. This resulted in choosing extremely inefficient
execution plans in same cases when distribution of data in
joined were skewed (see the customer test case for the bug).



mysql-test/r/select.result:
  Added a test case for bug #21390: wrong estimate of rows
  after elimination of const tables.
  Includded a test case that checks the code added by the patch
  that handles outer joins with no matches after substitution of
  a const table in an efficient way.
mysql-test/t/select.test:
  Added a test case for bug #21390: wrong estimate of rows
  after elimination of const tables.
  Included a test case that checks the code added by the patch
  that handles outer joins with no matches after substitution of
  a const table in an efficient way.
sql/sql_select.cc:
  Fixed bug #21390: wrong estimate of rows after elimination of
  const tables. This resulted in choosing extremely inefficient
  execution plans in same cases when distribution of data in
  joined were skewed (see the customer test case for the bug).
  Also added the code to handle outer joins with no matches after
  substitution of a const table in an efficient way. 
  Corrected calculation of the null rejecting key conditions.
2006-08-25 02:17:41 -07:00
unknown
da2e23f183 opt_range.cc:
Corrected fix for bug#18165


sql/opt_range.cc:
  Corrected fix for bug#18165
2006-08-25 00:23:42 +04:00
unknown
84a6539345 opt_range.cc:
Corrected fix for bug#18165


sql/opt_range.cc:
  Corrected fix for bug#18165
2006-08-24 23:16:54 +04:00
unknown
d0394c7070 view.result, view.test:
Corrected test case for the bug#21261
sql_parse.cc:
  Corrected fix for bug#21261


mysql-test/t/view.test:
  Corrected test case for the bug#21261
mysql-test/r/view.result:
  Corrected test case for the bug#21261
sql/sql_parse.cc:
  Corrected fix for bug#21261
2006-08-24 03:05:13 +04:00
unknown
e8bb0c9295 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/21475-fix-5.0-opt-mysql
2006-08-23 01:04:00 +04:00
unknown
d8c9de79f4 item_cmpfunc.cc, item.cc:
Additional fix for bug #21475
item_func.h, item_func.cc:
  Additional fix for bug#16861


sql/item_func.h:
  Additional fix for bug#16861
sql/item_func.cc:
  Additional fix for bug#16861
sql/item_cmpfunc.cc:
  Additional fix for bug #21475
sql/item.cc:
  Additional fix for bug #21475
2006-08-23 01:03:28 +04:00
unknown
bbda4dd304 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-08-22 07:09:11 -07:00
unknown
3a23139aa4 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  sunlight.local:/local_work/16861-bug-5.0-mysql


sql/sql_select.cc:
  Auto merged
2006-08-22 17:39:18 +04:00
unknown
c623e54fb8 Fixed bug#16861: User defined variable can have a wrong value if a tmp table was
used.

Sorting by RAND() uses a temporary table in order to get a correct results.
User defined variable was set during filling the temporary table and later
on it is substituted for its value from the temporary table. Due to this
it contains the last value stored in the temporary table.

Now if the result_field is set for the Item_func_set_user_var object it 
updates variable from the result_field value when being sent to a client.

The Item_func_set_user_var::check() now accepts a use_result_field
parameter. Depending on its value the result_field or the args[0] is used
to get current value.


mysql-test/r/user_var.result:
  Added a test case for bug#16861: User defined variable can have a wrong value if a tmp table was used.
mysql-test/t/user_var.test:
  Added a test case for bug#16861: User defined variable can have a wrong value if a tmp table was used.
sql/item_func.cc:
  Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Now if the result_field is set for the Item_func_set_user_var object it 
  updates variable from the result_field value when being sent to a client.
  
  The Item_func_set_user_var::check() now accepts a use_result_field
  parameter. Depending on its value the result_field or the args[0] is used
  to get current value.
sql/item_func.h:
  Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Added a new SUSERVAR_FUNC function type.
  Updated the Item_func_set_user_var::check() function declaration.
  Added the Item_func_set_user_var::send() member function.
sql/set_var.cc:
  Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Modified to use updated Item_func_set_user_var::check() function.
sql/sql_class.cc:
  Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Modified to use updated Item_func_set_user_var::check() function.
sql/sql_select.cc:
  Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Now an Item_func_set_user_var object isn't substituted for an Item_field object after filling a temporary table.
2006-08-22 17:37:41 +04:00
unknown
8776a1e185 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/21475-bug-5.0-opt-mysql
2006-08-22 17:18:00 +04:00
unknown
38558705d0 Fixed bug 16201: a memory corruption causing crashes due to a too small
buffer for a MY_BITMAP temporary buffer allocated on stack in the
function get_best_covering_ror_intersect().
Now the buffer of a proper size is allocated by a request from this
function in mem_root.

We succeeded to demonstrate the bug only on Windows with a very large
database. That's why no test case is provided for in the patch.


sql/opt_range.cc:
  Fixed bug 16201: a memory corruption causing crashes due to a too small 
  buffer for a MY_BITMAP temporary buffer allocated on stack in the
  function get_best_covering_ror_intersect().
  Now the buffer of a proper size is allocated by a request from this
  function in mem_root.
2006-08-22 04:14:39 -07:00
unknown
adb31669de Fix compile errors in VC++ 7.0: fix typo made in previous cset 2006-08-22 15:03:13 +04:00
unknown
686ca81307 Fix compile errors in VC++ 7.0 2006-08-21 16:21:48 +04:00
unknown
d2fa8e3a8d Fix by Georgi Kodinov:
Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
 - moved an InnoDB dependent test to the appropriate file


mysql-test/r/innodb_mysql.result:
  Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
   - moved an InnoDB dependent test to the appropriate file
mysql-test/r/join_outer.result:
  Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
   - moved an InnoDB dependent test to the appropriate file
mysql-test/t/innodb_mysql.test:
  Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
   - moved an InnoDB dependent test to the appropriate file
mysql-test/t/join_outer.test:
  Bug #18744 Test 'join_outer' fails if "classic" configuration in 5.0
   - moved an InnoDB dependent test to the appropriate file
2006-08-21 14:20:03 +04:00
unknown
7a11df8c93 Fixed bug#21475: Wrongly applied constant propagation leads to a false comparison.
A date can be represented as an int (like 20060101) and as a string (like
"2006.01.01"). When a DATE/TIME field is compared in one SELECT against both
representations the constant propagation mechanism leads to comparison
of DATE as a string and DATE as an int. In this example it compares 2006 and
20060101 integers. Obviously it fails comparison although they represents the
same date.


Now the Item_bool_func2::fix_length_and_dec() function sets the comparison
context for items being compared. I.e. if items compared as strings the
comparison context is STRING.
The constant propagation mechanism now doesn't mix items used in different
comparison contexts. The context check is done in the
Item_field::equal_fields_propagator() and in the change_cond_ref_to_const() 
functions.

Also the better fix for bug 21159 is introduced.


mysql-test/t/type_datetime.test:
  Added a test case for bug#21475: Wrongly applied constant propagation leads to a false comparison.
mysql-test/r/type_datetime.result:
  Added a test case for bug#21475: Wrongly applied constant propagation leads to a false comparison.
sql/sql_select.cc:
  Fixed bug#21475: Wrongly applied constant propagation leads to a false comparison.
  The constant propagation mechanism now doesn't mix items used in different
  comparison contexts. The check is done in the change_cond_ref_to_const() function.
sql/item_cmpfunc.cc:
  Fixed bug#21475: Wrongly applied constant propagation leads to a false comparison.
  Now the Item_bool_func2::fix_length_and_dec() function sets the comparison
  context for items being compared.
sql/item.h:
  Fixed bug#21475: Wrongly applied constant propagation leads to a false comparison.
  To the Item class a new field called cmp_context is added.
  It represents the comparison context of an item.
sql/item.cc:
  Fixed bug#21475: Wrongly applied constant propagation leads to a false comparison.
  The constant propagation mechanism now doesn't mix items used in different
  comparison contexts. The context check is done in the
  Item_field::equal_fields_propagator() function.
2006-08-21 00:23:57 +04:00
unknown
1cbebc6e18 ndb_condition_pushdown.result:
Corrected test case result after fix for bug#18165
view.result, view.test:
  Corrected test case for bug#21261


mysql-test/t/view.test:
  Corrected test case for bug#21261
mysql-test/r/view.result:
  Corrected test case for bug#21261
mysql-test/r/ndb_condition_pushdown.result:
  Corrected test case result after fix for bug#18165
2006-08-17 18:50:53 +04:00
unknown
5a76d76007 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt


sql/sql_select.cc:
  Auto merged
2006-08-16 10:21:23 -07:00
unknown
c8cafde703 Fixed bug #18165.
Made [NOT]BETWEEN predicates SARGable in respect to the second and 
the third arguments.


mysql-test/r/range.result:
  Added a test case to bug #18165.
mysql-test/t/range.test:
  Added a test case to bug #18165.
sql/opt_range.cc:
  Fixed bug #18165.
  Made [NOT]BETWEEN predicates SARGable in respect to the second and 
  the third arguments.
  Put in a separate function called get_full_func_mm_tree the functionality
  that builds a conjunction of all SEL_TREEs for a simple predicate of the
  form (f op c), where f was a field and c was a constant, applying different
  equalities f=f' with f' being another field.
2006-08-16 09:37:19 -07:00
unknown
c234aaa0ed Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  sunlight.local:/local_work/21261-bug-5.0-mysql


sql/sql_select.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
2006-08-16 18:17:58 +04:00
unknown
03a5e2e76a Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/15950-bug-5.0-opt-mysql
2006-08-15 21:48:07 +04:00
unknown
a23d1792bc Fixed bug#21261: Wrong access rights was required for an insert into a view
SELECT right instead of INSERT right was required for an insert into to a view.
This wrong behaviour appeared after the fix for bug #20989. Its intention was
to ask only SELECT right for all tables except the very first for a complex
INSERT query. But that patch has done it in a wrong way and lead to asking 
a wrong access right for an insert into a view.

The setup_tables_and_check_access() function now accepts two want_access
parameters. One will be used for the first table and the second for other
tables.


mysql-test/t/view.test:
  Added a test case for bug#21261: Wrong access rights was required for an insert into a view
mysql-test/r/view.result:
  Added a test case for bug#21261: Wrong access rights was required for an insert into a view
sql/sql_update.cc:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  Modified to use updated setup_tables_and_check_access() function.
sql/sql_select.cc:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  Modified to use updated setup_tables_and_check_access() function.
sql/sql_load.cc:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  Modified to use updated setup_tables_and_check_access() function.
sql/sql_insert.cc:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  Modified to use updated setup_tables_and_check_access() function.
sql/sql_delete.cc:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  Modified to use updated setup_tables_and_check_access() function.
sql/sql_base.cc:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  The setup_tables_and_check_access() function now accepts two want_access
  parameters. One will be used for the first table and the second for other
  tables.
sql/mysql_priv.h:
  Fixed bug#21261: Wrong access rights was required for an insert into a view
  The setup_tables_and_check_access() function now accepts two want_access
  parameters.
2006-08-15 21:45:24 +04:00
unknown
85ac350cf4 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/psergey/mysql-5.0-opt-bug21282-r2
2006-08-15 21:32:09 +04:00
unknown
4ed157ee86 BUG#21077: 4.1->5.0 merge 2006-08-15 21:16:02 +04:00
unknown
9cf4750ec3 BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>)
In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
where N>1000, was incorrectly converted to
  (-inf < X < c_min) OR (c_max < X)
Now this conversion is removed, we dont produce any range lists for such
conditions.


mysql-test/r/range.result:
  BUG#21282: Testcase
mysql-test/t/range.test:
  BUG#21282: Testcase
sql/opt_range.cc:
  BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>) 
  In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
  where N>1000, was incorrectly converted to 
    (-inf < X < c_min) OR (c_max < X)
  Now this conversion is removed, we dont produce any range lists for such
  conditions.
2006-08-15 21:08:22 +04:00
unknown
c2ef98ad4c Fixed bug#15950: NOW() optimized away in VIEWs
This bug is a side-effect of bug fix #16377. NOW() is optimized in
BETWEEN to integer constants to speed up query execution. When view is being
created it saves already modified query and thus becomes wrong.

The agg_cmp_type() function now substitutes constant result DATE/TIME functions 
for their results only if the current query isn't CREATE VIEW or SHOW CREATE
VIEW.


mysql-test/t/view.test:
  Added a test case for bug#15950: NOW() optimized away in VIEWs
mysql-test/r/view.result:
  Added a test case for bug#15950: NOW() optimized away in VIEWs
sql/item_cmpfunc.cc:
  Fixed bug#15950: NOW() optimized away in VIEWs
  The agg_cmp_type() function now substitutes constant result DATE/TIME functions 
  for their results only if the current query isn't CREATE VIEW or SHOW CREATE
  VIEW.
2006-08-15 21:02:55 +04:00
unknown
9907e970ae BUG#21077: Possible crash caused by invalid sequence of handler::* calls:
The crash was caused by invalid sequence of handler::** calls:                                                           
  ha_smth->index_init();                                                                                                 
  ha_smth->index_next_same(); (2)                                                                                        
(2) is an invalid call as it was not preceeded by any 'scan setup' call
like index_first() or index_read(). The cause was that QUICK_SELECT::reset()
didn't "fully reset" the quick select- current QUICK_RANGE wasn't forgotten,
and quick select might attempt to continue reading the range, which would
result in the above mentioned invalid sequence of handler calls.

5.x versions are not affected by the bug - they already have the missing
"range=NULL" clause.                                                    
                                                       


mysql-test/r/innodb_mysql.result:
  Testcase for BUG#21077
mysql-test/t/innodb_mysql.test:
  Testcase for BUG#21077
sql/opt_range.h:
  BUG#21077: Possible crash caused by invalid sequence of handler::* calls:                                              
   - Make QUICK_SELECT::reset() really reset the quick select
2006-08-15 20:33:14 +04:00
unknown
2f5ae7c536 Bug #21302: Result not properly sorted when using an ORDER BY on a second table in a join
- undeterminstic tests fixed


mysql-test/r/order_by.result:
  Bug #21302: Result not properly sorted when using an ORDER BY on a second table in a join
   - more undeterminstic tests fixed
mysql-test/t/order_by.test:
  Bug #21302: Result not properly sorted when using an ORDER BY on a second table in a join
   - more undeterminstic tests fixed
2006-08-15 15:48:49 +03:00
unknown
57745f96ce Bug #21302: Result not properly sorted when using an ORDER BY
on a second table in a join
- undeterministic output of the test case removed.
2006-08-15 13:01:04 +03:00
unknown
5bf943a95d Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21159-5.0-opt


sql/sql_select.cc:
  Auto merged
2006-08-15 12:54:02 +03:00
unknown
fd65e53a8a Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21174-5.0-opt


sql/sql_select.cc:
  Auto merged
2006-08-15 10:31:34 +03:00
unknown
a0474a811c Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21159-5.0-opt


sql/sql_select.cc:
  Auto merged
2006-08-15 10:25:56 +03:00
unknown
3915c3d94c Bug #21159: Optimizer: wrong result after AND with different data types
Disable const propagation for Item_hex_string.
This must be done because Item_hex_string->val_int() is not
the same as (Item_hex_string->val_str() in BINARY column)->val_int().
We cannot simply disable the replacement in a particular context (
e.g. <bin_col> = <int_col> AND <bin_col> = <hex_string>) since
Items don't know the context they are in and there are functions like 
IF (<hex_string>, 'yes', 'no').
Note that this will disable some valid cases as well 
(e.g. : <bin_col> = <hex_string> AND <bin_col2> = <bin_col>) but 
there's no way to distinguish the valid cases without having the
Item's parent say something like : Item->set_context(Item::STRING_RESULT)
and have all the Items that contain other Items do that consistently.


mysql-test/r/compare.result:
  Bug #21159: Optimizer: wrong result after AND with different data types
   - test case
mysql-test/t/compare.test:
  Bug #21159: Optimizer: wrong result after AND with different data types
   - test case
sql/sql_select.cc:
  Bug #21159: Optimizer: wrong result after AND with different data types
   - disable const propagation for Item_hex_string.
2006-08-15 10:13:17 +03:00
unknown
6675c2c2d3 Bug #21174: Index degrades sort performance and
optimizer does not honor IGNORE INDEX
 - Allow an index to be used for sorting the table 
   instead of filesort only if it is not disabled by
   IGNORE INDEX.


mysql-test/r/group_by.result:
  Bug #21174: Index degrades sort performance and 
               optimizer does not honor IGNORE INDEX
   - test case
mysql-test/t/group_by.test:
  Bug #21174: Index degrades sort performance and 
               optimizer does not honor IGNORE INDEX
   - test case
2006-08-14 18:19:29 +03:00
unknown
3dfd0a22b8 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21302-5.0-opt


mysql-test/r/join_outer.result:
  Auto merged
mysql-test/r/order_by.result:
  Auto merged
2006-08-14 15:58:01 +03:00
unknown
06a302eff2 Bug #21302: Result not properly sorted when using an ORDER BY on a second
table in a join
 The optimizer removes redundant columns in ORDER BY. It is considering 
redundant every reference to const table column, e.g b in :
create table t1 (a int, b int, primary key(a)); 
select 1 from t1 order by b where a = 1

But it must not remove references to const table columns if the 
const table is an outer table because there still can be 2 values :
the const value and NULL. e.g.:
create table t1 (a int, b int, primary key(a));
select t2.b c from t1 left join t1 t2 on (t1.a = t2.a and t2.a = 5) 
  order by c;


mysql-test/r/join_outer.result:
  Bug #21302: Result not properly sorted when using an ORDER BY on a second 
              table in a join
   - don't remove columns of const tables in ORDER BY if the const table 
     is an outer table.
mysql-test/r/order_by.result:
  Bug #21302: Result not properly sorted when using an ORDER BY on a second 
              table in a join
   - test case
mysql-test/t/order_by.test:
  Bug #21302: Result not properly sorted when using an ORDER BY on a second 
              table in a join
   - test case
sql/sql_select.cc:
  Bug #21302: Result not properly sorted when using an ORDER BY on a second 
              table in a join
   - don't remove columns of const tables in ORDER BY if the const table 
     is an outer table.
2006-08-14 15:45:48 +03:00
unknown
22485f4a59 Merge moonbone.local:/work/tmp_merge-5.0-mysql
into  moonbone.local:/work/tmp_merge-5.0-opt-mysql
2006-08-11 15:45:53 +04:00
unknown
6071b686b1 Extended a test case for bug#7391. 2006-08-11 14:41:07 +05:00
unknown
145dd58d3c Merge may.pils.ru:/home/svoj/devel/mysql/BUG7391/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/BUG7391/mysql-5.0


mysql-test/r/grant.result:
  Manual merge: use local.
mysql-test/t/grant.test:
  Manual merge: use local.
sql/sql_update.cc:
  Manual merge: use local.
2006-08-11 14:24:09 +05:00
unknown
12eb42acf9 Merge updates.
mysql-test/r/grant2.result:
  Merge update:  Change between versions, it appears.
mysql-test/r/heap_btree.result:
  Merge update:  Add deterministic ordering of data, as the order is different 
  between versions.
mysql-test/r/mysql_client.result:
  Merge update: Help options changed between versions.
mysql-test/t/heap_btree.test:
  Merge update:  Add deterministic ordering of data, as the order is different 
  between versions.
BitKeeper/deleted/.del-bug20328.test~c76d766fe3e1eb5:
  Delete: mysql-test/t/bug20328.test
BitKeeper/deleted/.del-bug20328.result~4fee68989442c2a3:
  Delete: mysql-test/r/bug20328.result
2006-08-10 12:39:18 -04:00
unknown
4a8c861c05 Fix for check_cpu to work correctly on MacOSX/Intel. 2006-08-10 17:35:21 +03:00
unknown
78c9885fe0 Removed Iggy's accidentally-added files. 2006-08-10 01:02:31 -04:00
unknown
d278381ec8 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0


client/mysql.cc:
  Auto merged
heap/hp_delete.c:
  Auto merged
mysql-test/t/mysqlbinlog.test:
  Auto merged
scripts/fill_func_tables.sh:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
mysql-test/r/grant2.result:
  Manual merge
mysql-test/r/heap_btree.result:
  Manual merge
mysql-test/r/mysql_client.result:
  Manual merge
mysql-test/t/grant2.test:
  Manual merge
mysql-test/t/heap_btree.test:
  Manual merge
mysql-test/t/mysql_client.test:
  Manual merge
2006-08-09 22:23:41 -04:00
unknown
51bb3b2a7f Merge may.pils.ru:/home/svoj/devel/mysql/BUG20060/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/BUG20060/mysql-5.0


myisam/mi_update.c:
  Auto merged
2006-08-09 14:33:45 +05:00
unknown
a2a5f2b536 BUG#20060 - mysqld option "--flush " doesn't work for update statement
Problem described in this bug report affects MyISAM tables only.

Running mysqld --flush instructs mysqld to sync all changes to disk
after each SQL statement. It worked well for INSERT and DELETE
statements, but it did sync for UPDATE only in case if there was
index change (change of colum that has an index). If no updated column
has an index, data wasn't synced to disk.

This fix makes UPDATE statement to sync data to disk even if there is
no index change (that is only data change) and mysqld is run with
--flush option.


myisam/mi_update.c:
  Every myisam function that updates myisam table must end with
  call to _mi_writeinfo(). If operation (second param of
  _mi_writeinfo()) is not 0 it sets share->changed to 1, that is
  flags that data has changed. If operation is 0, this function
  equals to no-op in this case.
  
  mi_update() must always pass !0 value as operation, since even if
  there is no index change there could be data change.
2006-08-09 14:28:39 +05:00
unknown
4abe4b1717 sql_view.cc:
After merge fix


sql/sql_view.cc:
  After merge fix
2006-08-09 06:46:06 +04:00
unknown
a5ccdea772 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  sunlight.local:/local_work/leak_fix


sql/sql_view.cc:
  Auto merged
2006-08-09 01:45:42 +04:00
unknown
962d5b4d4e Merge sunlight.local:/home/evgen/bk-trees/mysql-5.0
into  sunlight.local:/local_work/leak_fix


sql/sql_base.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/table.cc:
  Auto merged
sql/sql_view.cc:
  Manually merged
2006-08-09 01:43:11 +04:00
unknown
1e9ebd010a sql_base.cc, unireg.h, sql_lex.h, table.cc, sql_view.h, sql_view.cc:
Correct memory leak fix


sql/unireg.h:
  Correct memory leak fix
sql/table.cc:
  Correct memory leak fix
sql/sql_view.h:
  Correct memory leak fix
sql/sql_view.cc:
  Correct memory leak fix
sql/sql_lex.h:
  Correct memory leak fix
sql/sql_base.cc:
  Correct memory leak fix
2006-08-09 00:05:42 +04:00