Commit graph

10110 commits

Author SHA1 Message Date
unknown
d5ec9ed899 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/dlenev/src/mysql-5.0-eld-exp
2005-03-16 17:00:13 +03:00
unknown
f21905e066 data0type.h, row0sel.c:
Fix a crash in a simple search with a key: the dtype->len of a true VARCHAR is the payload maximum len in bytes: it does not include the 2 bytes MySQL uses to store the string length
ha_innodb.cc:
  Fix a crash in true VARCHARs in test-innodb: we passed a wrong pointer to the column conversion in an UPDATE
rowid_order_innodb.result, ps_3innodb.result, innodb.result, endspace.result:
  Edit InnoDB test results to reflect the arrival of true VARCHARs


mysql-test/r/endspace.result:
  Edit InnoDB test results to reflect the arrival of true VARCHARs
mysql-test/r/innodb.result:
  Edit InnoDB test results to reflect the arrival of true VARCHARs
mysql-test/r/ps_3innodb.result:
  Edit InnoDB test results to reflect the arrival of true VARCHARs
mysql-test/r/rowid_order_innodb.result:
  Edit InnoDB test results to reflect the arrival of true VARCHARs
sql/ha_innodb.cc:
  Fix a crash in true VARCHARs in test-innodb: we passed a wrong pointer to the column conversion in an UPDATE
innobase/row/row0sel.c:
  Fix a crash in a simple search with a key: the dtype->len of a true VARCHAR is the payload maximum len in bytes: it does not include the 2 bytes MySQL uses to store the string length
innobase/include/data0type.h:
  Fix a crash in a simple search with a key: the dtype->len of a true VARCHAR is the payload maximum len in bytes: it does not include the 2 bytes MySQL uses to store the string length
2005-03-16 14:28:54 +02:00
unknown
ec919d7428 Fixed behavior of LOAD DATA with subqueries in SET clause.
The idea is to use TABLE_LIST::lock_type for passing type of lock for
target table to mysql_load() instead of using LEX::lock_option 
(which were rewritten by first subselect in SET clause).

This should also fix potential problem with LOAD DATA in SP
(it is important for them to have right lock_type in the table
 list by the end of statement parsing).


mysql-test/r/loaddata.result:
  Added nice test for LOAD DATA with subquery.
mysql-test/t/loaddata.test:
  Added nice test for LOAD DATA with subquery.
sql/log_event.cc:
  Now we don't pass type of lock for target table to mysql_load()
  explicitly . Instead we use TABLE_LIST::lock_type for this table
  which is already properly set here.
sql/mysql_priv.h:
  Now we don't pass type of lock for target table to mysql_load()
  explicitly . Instead we properly set TABLE_LIST::lock_type for
  this table in parser.
sql/sql_load.cc:
  Now we don't pass type of lock for target table to mysql_load()
  explicitly . Instead we properly set TABLE_LIST::lock_type for
  this table in parser.
sql/sql_parse.cc:
  Now we don't pass type of lock for target table to mysql_load()
  explicitly . Instead we properly set TABLE_LIST::lock_type for
  this table in parser.
sql/sql_yacc.yy:
  load_data:
    Let us use TABLE_LIST::lock_type for passing type of lock for target
    table to mysql_load() instead of using LEX::lock_option (which will
    be rewritten by first subselect in SET clause).
2005-03-16 12:13:35 +03:00
unknown
8c45e43ece ha_innodb.cc:
calc_row_difference(): Use non-inlined functions to avoid linking error.


sql/ha_innodb.cc:
  calc_row_difference(): Use non-inlined functions to avoid linking error.
2005-03-16 09:56:33 +02:00
unknown
5f75c8f5b4 WL#874 "Extended LOAD DATA".
Now one can use user variables as target for data loaded from file
(besides table's columns). Also LOAD DATA got new SET-clause in which
one can specify values for table columns as expressions.

For example the following is possible:
LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;

This patch also implements new way of replicating LOAD DATA.
Now we do it similarly to other queries.
We store LOAD DATA query in new Execute_load_query event
(which is last in the sequence of events representing LOAD DATA).
When we are executing this event we simply rewrite part of query which
holds name of file (we use name of temporary file) and then execute it
as usual query. In the beggining of this sequence we use Begin_load_query
event which is almost identical to Append_file event


client/mysqlbinlog.cc:
  Added support of two new binary log events Begin_load_query_log_event and
  Execute_load_query_log_Event which are used to replicate LOAD DATA INFILE.
mysql-test/r/ctype_ucs.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/insert_select.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/loaddata.result:
  Added tests for new LOAD DATA features.
mysql-test/r/mix_innodb_myisam_binlog.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results (don't dare to get rid from binlog positions
  completely since it seems that this test uses them).
mysql-test/r/mysqlbinlog.result:
  New approach for binlogging of LOAD DATA statement. Now we store it as
  usual query and rewrite part in which file is specified when needed.
  So now mysqlbinlog output for LOAD DATA much more closer to its initial
  form. Updated test'd results accordingly.
mysql-test/r/mysqldump.result:
  Made test more robust to other tests failures.
mysql-test/r/rpl000015.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_change_master.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results.
mysql-test/r/rpl_charset.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly
mysql-test/r/rpl_deadlock.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly
mysql-test/r/rpl_error_ignored_table.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_flush_log_loop.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_flush_tables.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_loaddata.result:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event...
  
  Updated test's results wwith new binlog positions.
mysql-test/r/rpl_loaddata_rule_m.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
  Since now LOAD DATA is replicated much in the same way as usual query
  --binlog_do/ignore_db work for it inthe same way as for usual queries.
mysql-test/r/rpl_loaddata_rule_s.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_loaddatalocal.result:
  Added nice test for case when it is important that LOAD DATA LOCAL
  ignores duplicates.
mysql-test/r/rpl_log.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly (don't dare to get rid from binlog 
  positions completely since it seems that this test uses them).
mysql-test/r/rpl_log_pos.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_max_relay_size.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_multi_query.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_relayrotate.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_replicate_do.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_reset_slave.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_rotate_logs.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_server_id1.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_server_id2.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_temporary.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_timezone.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_until.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly and tweaked test a bit to bring it
  back to good shape.
mysql-test/r/rpl_user_variables.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/user_var.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/t/ctype_ucs.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/insert_select.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/loaddata.test:
  Added test cases for new LOAD DATA functionality.
mysql-test/t/mix_innodb_myisam_binlog.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/mysqlbinlog.test:
  New way of replicating LOAD DATA local. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event...
  
  Thus we need new binlog positions for LOAD DATA events.
mysql-test/t/mysqlbinlog2.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/mysqldump.test:
  Made test more robust for failures of other tests.
mysql-test/t/rpl_charset.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_deadlock.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_error_ignored_table.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/rpl_flush_tables.test:
  Addition of two new types of binary log events shifted binlog positions.
  Made test more robust for future similar changes.
mysql-test/t/rpl_loaddata.test:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event...
  
  Apropritely updated comments in test.
mysql-test/t/rpl_loaddata_rule_m.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar 
  changes.
  Since now LOAD DATA is replicated much in the same way as usual query
  --binlog_do/ignore_db work for it inthe same way as for usual queries.
mysql-test/t/rpl_loaddata_rule_s.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_loaddatalocal.test:
  Added nice test for case when it is important that LOAD DATA LOCAL
  ignores duplicates.
mysql-test/t/rpl_log.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly (don't dare to get rid from binlog positions
  completely since it seems that this test uses them).
mysql-test/t/rpl_log_pos.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_multi_query.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_temporary.test:
  Addition of two new types of binary log events shifted binlog positions.
  Made test more robust for future similar changes.
mysql-test/t/rpl_timezone.test:
  Addition of two new types of binary log events shifted binlog positions.
  Made test more robust for future similar changes.
mysql-test/t/rpl_until.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and tweaked it a bit to bring it back to good
  shape.
mysql-test/t/rpl_user_variables.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/user_var.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
sql/item_func.cc:
  Added Item_user_var_as_out_param class that represents user variable
  which used as out parameter in LOAD DATA.
  
  Moved code from Item_func_set_user_var::update_hash() function to
  separate static function to be able to reuse it in this new class.
sql/item_func.h:
  Added Item_user_var_as_out_param class that represents user variable
  which used as out parameter in LOAD DATA.
sql/log_event.cc:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event.
sql/log_event.h:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event.
sql/mysql_priv.h:
  Now mysql_load() has two more arguments. They are needed to pass list of
  columns and corresponding expressions from new LOAD DATA's SET clause.
sql/share/errmsg.txt:
  Added new error message which is used to forbid loading of data from
  fixed length rows to variables.
sql/sql_lex.h:
  Added LEX::fname_start/fname_end members. 
  They are pointers to part of LOAD DATA statement which should be
  rewritten during replication (file name + little extra).
sql/sql_load.cc:
  Added support for extended LOAD DATA. 
  Now one can use user variables as target for data loaded from file 
  (besides table's columns). Also LOAD DATA got new SET-clause in which
  one can specify values for table columns as expressions.
  
  Updated mysql_load()/read_fixed_length()/read_sep_field() to support
  this functionality (now they can read data from file to both columns and
  variables and assign do calculations and assignments specified in SET
  clause).
  
  We also use new approach for LOAD DATA binlogging/replication.
sql/sql_parse.cc:
  mysql_execute_command():
    Since now we have SET clause in LOAD DATA we should also check
    permissions for tables used in its expressions. Also mysql_load()
    has two more arguments to pass information about this clause.
sql/sql_repl.cc:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event.
sql/sql_repl.h:
  struct st_load_file_info:
    Removed memebers which are no longer needed for LOAD DATA binnlogging.
sql/sql_yacc.yy:
  Added support for extended LOAD DATA syntax. Now one can use
  user variables as target for data loaded from file (besides table's 
  columns). Also LOAD DATA got new SET-clause in which one can specify
  values for table columns as expressions.
  
  For example the following is possible:
  LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
  
  Also now we save pointers to the beginning and to the end of part of 
  LOAD DATA statement which should be rewritten during replication.
2005-03-16 04:32:47 +03:00
unknown
7955fe527d Many files:
InnoDB true VARCHAR


sql/ha_innodb.h:
  InnoDB true VARCHAR
sql/ha_innodb.cc:
  InnoDB true VARCHAR
innobase/include/data0type.h:
  InnoDB true VARCHAR
innobase/include/que0que.h:
  InnoDB true VARCHAR
innobase/include/row0mysql.h:
  InnoDB true VARCHAR
innobase/include/data0type.ic:
  InnoDB true VARCHAR
innobase/include/row0mysql.ic:
  InnoDB true VARCHAR
innobase/row/row0ins.c:
  InnoDB true VARCHAR
innobase/row/row0mysql.c:
  InnoDB true VARCHAR
innobase/row/row0sel.c:
  InnoDB true VARCHAR
innobase/trx/trx0trx.c:
  InnoDB true VARCHAR
2005-03-16 00:34:15 +02:00
unknown
799e45226f Merge mdk10.(none):/home/reggie/bk/mysql-4.1
into mdk10.(none):/home/reggie/bk/mysql-5.0


sql/sql_show.cc:
  Auto merged
2005-03-15 16:28:47 -06:00
unknown
32e027ead7 Bug #6660 mysqldump creates bad pathnames on Windows
sql_show.cc:
  changed strdup to thd->memdup per Serg's advice


sql/sql_show.cc:
  changed strdup to thd->memdup per Serg's advice
2005-03-15 16:24:37 -06:00
unknown
4a49d3f333 Merge mdk10.(none):/home/reggie/bk/mysql-4.1
into mdk10.(none):/home/reggie/bk/mysql-5.0


BitKeeper/etc/logging_ok:
  auto-union
client/mysqldump.c:
  Auto merged
sql/sql_show.cc:
  Auto merged
2005-03-15 11:42:31 -06:00
unknown
822a46d593 Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-4.1
into mdk10.(none):/home/reggie/bk/mysql-4.1


BitKeeper/etc/logging_ok:
  auto-union
2005-03-15 11:37:14 -06:00
unknown
ccfd174670 Bug #6660 mysqldump creates bad pathnames on Windows
This is a modifiction of my previous patch after receiving feedback. This is a better way to fix the problem.  With this patch, data directory and index directory will use only forward slashes (/) when on Windows.

mysqldump.c:
  Removed fixPaths routine.  Was improper fix for bug #6660
sql_show.cc:
  Changed append_directory to convert backslashes to foward slashes when on Windows.


sql/sql_show.cc:
  Changed append_directory to convert backslashes to foward slashes when on Windows.
client/mysqldump.c:
  Removed fixPaths routine.  Was improper fix for bug #6660
2005-03-15 11:33:06 -06:00
unknown
268a3ecc8b Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/home/ram/work/5.0
2005-03-15 20:06:37 +04:00
unknown
7e7437216b after merge fix 2005-03-15 19:43:32 +04:00
unknown
3c42daa9a3 merging
heap/hp_create.c:
  Auto merged
sql/filesort.cc:
  Auto merged
mysql-test/r/heap.result:
  manual merging
mysql-test/t/heap.test:
  manual merging
sql/ha_heap.cc:
  manual merging
2005-03-15 19:31:52 +04:00
unknown
ef2ca9781c Merged WL#2269 to mysql-5.0
sql/ha_ndbcluster.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Manual merge
2005-03-15 15:22:40 +01:00
unknown
aa5dba42ef WL#2269 Enable query cache for NDB part 2
-This is mostly fixes for correct behaviour when using query cache + transactions + the thread that
fetches commit count from NDB at regular intervals. The major fix is to add a
list in thd_ndb, that keeps a list of NDB_SHARE's that were modified by
transaction and then "clearing" them in ndbcluster_commit.


mysql-test/r/ndb_cache2.result:
  Updated test cases for the ndb_util thread, more simultaneous tables and more tesst
mysql-test/t/ndb_cache2.test:
  Updated test cases for the ndb_util thread, more simultaneous tables and more advanced tesst
sql/ha_ndbcluster.cc:
  Add table changed during transaction to list of changed tables in Thd_ndb, this list is then used in ndbcluster_commit to invalidate the cached commit_count in share
  Fix so that ndb_util_thread uses milliseconds "sleeps"
  Changed so that ndb_commit_count uses the commit_count from share if available
sql/ha_ndbcluster.h:
  Add commit_count_lock to NBD_SHARE, use for detecting simultaneous attempts to update commit_count
  Add list of tables changed by transaction to Thd_ndb
  Change check_ndb_connection to take thd as argument, use current_thd as default
  Added m_rows_changed variable to keep track of if this handler has modified any records within the transaction
sql/set_var.cc:
  Change format of code
  Sort sys__ variables in aplha order
2005-03-15 15:03:25 +01:00
unknown
9af776c8cb Cleanup 2005-03-15 16:54:11 +03:00
unknown
0ba3164e0e A fix (bug #8799: Killed filesorts can fail inited==RND assertion in ha_rnd_end).
sql/filesort.cc:
  A fix (bug #8799: Killed filesorts can fail inited==RND assertion in ha_rnd_end).              
  Should call ha_rnd_end() only if ha_rnd_init() was called.
2005-03-15 15:32:11 +04:00
unknown
23d48b7dc3 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/home/ram/work/4.1.b8799
2005-03-15 14:13:44 +04:00
unknown
9c04a77e0c A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
heap/hp_create.c:
  A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
  Handle autoincrement keys MyISAM-way.
include/heap.h:
  A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
  Handle autoincrement keys MyISAM-way.
sql/ha_heap.cc:
  A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
  Handle autoincrement keys MyISAM-way.
2005-03-15 13:32:12 +04:00
unknown
01df5a157f Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0
into krsna.:/home/patg/test/mysql-5.0


BitKeeper/etc/logging_ok:
  auto-union
2005-03-15 00:36:38 -08:00
unknown
2b1a8acda5 This changeset contains changes approved in code review by
Konstja and Georg, change sets 1.1806, 1.1805. These changes has been successfully 
tested on both my own workstation (Suse 9.0) and production.mysql.com.


mysql-test/r/federated.result:
  new test results for error handling tests.
mysql-test/t/federated.test:
  new error handling tests
sql/ha_federated.cc:
  - check_foreign_data source added
  - table names now enclosed in '`' to allow for '%' or other characters
  - better error handling
  - mysql_init now checked to see if it returns true/false, error out if false (Georg)
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-03-15 00:32:21 -08:00
unknown
54baac55b6 Merge mysql.com:/home/psergey/mysql-4.1-bug8510
into mysql.com:/home/psergey/mysql-5.0-bug8510


mysql-test/r/ansi.result:
  Auto merged
sql/set_var.cc:
  Auto merged
2005-03-15 09:29:54 +03:00
unknown
155cfb3942 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug8510


sql/set_var.cc:
  Auto merged
2005-03-15 04:09:41 +03:00
unknown
897849e5d8 WL#926 "AVG(DISTINCT) and other distincts", part 2 (out of 3): clean up
Item_sum_count_distinct, and
deploy Unique for use with COUNT(DISTINCT) if there is no blob
column in the list of DISTINCT arguments.


mysql-test/r/count_distinct2.result:
  Test results fixed.
mysql-test/r/func_group.result:
  Updated.
mysql-test/r/sum_distinct.result:
  Updated.
mysql-test/t/func_group.test:
  Add a test for COUNT(DISTINCT) and true varchar and case-insensitive
  collation. The table in the test contains only two distinct values.
mysql-test/t/sum_distinct.test:
  Since now we support INSERT INTO t1 (a) SELECT a+1 FROM t1, shorten
  the test.
  Add a nominal test for AVG(DISTINCT)
sql/item_sum.cc:
  Implementation of cleaned up Item_sum_count_distinct.
  Fixed a bug with COUNT(DISTINCT) and new VARCHAR and collations.
  Fixed a bug wiht AVG(DISTINCT) and wrong number of output digits
  after decimal point.
sql/item_sum.h:
  Cleanup for Item_sum_count_distinct.
  Now if the list of distinct arguments doesn't contain a blob column,
  we always use Unique and merge-sort to find distinct values.
sql/sql_class.h:
  Added a short-cut to find number of elements in Unique if all elements fit
  into memory.
2005-03-15 03:46:19 +03:00
unknown
ce4f43cb86 Merge 4.1 - 5.0
BitKeeper/etc/logging_ok:
  auto-union
sql/ha_berkeley.cc:
  Auto merged
2005-03-15 01:14:59 +02:00
unknown
6950d57ffd Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-03-14 20:45:10 +01:00
unknown
df93b4fa35 merged
sql/item_cmpfunc.h:
  Auto merged
mysql-test/r/join_outer.result:
  !bk-eb merged
mysql-test/t/join_outer.test:
  !bk-eb merged
2005-03-14 18:46:30 +01:00
unknown
72ae2a5884 sql/log.cc
don't set LOG_EVENT_BINLOG_IN_USE_F for relay logs
sql/sql_repl.cc
    clear LOG_EVENT_BINLOG_IN_USE_F flag before sending an event to a slave


sql/log.cc:
  don't set LOG_EVENT_BINLOG_IN_USE_F for relay logs
sql/sql_repl.cc:
  clear LOG_EVENT_BINLOG_IN_USE_F flag before sending an event to a slave
2005-03-14 17:53:24 +01:00
unknown
79a005fe0c Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into gluh.mysql.r18.ru:/home/gluh/MySQL-MERGE/mysql-5.0
2005-03-14 19:47:46 +03:00
unknown
8ee298cc75 Updated error message to be more informative. Previous error message
"Access denied to database mysql" was actually not just misleading, but
also wrong.

Bug#7905.
2005-03-14 16:59:09 +02:00
unknown
66eaf5f243 Removed unnecessary current_thd 2005-03-14 15:53:44 +01:00
unknown
d9910c5ee7 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into gluh.mysql.r18.ru:/home/gluh/MySQL-MERGE/mysql-5.0


sql/set_var.cc:
  Auto merged
2005-03-14 17:27:10 +03:00
unknown
9f4c18f044 WL#2353 EXPLAIN support for condition pushdown 2005-03-14 15:26:10 +01:00
unknown
ebbee9d974 Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0


mysql-test/r/join_outer.result:
  Auto merged
mysql-test/t/join_outer.test:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
2005-03-14 14:47:51 +01:00
unknown
90697f2467 BUG#6554 Problem Building MySql on Fedora Core 3
- Moved static variables defined inside of function to file scope to avoid this linking problem on FC3


sql/ha_berkeley.cc:
  Moved list of bdb extension to file scope
sql/ha_ndbcluster.cc:
  Moved list of ndb extesions to file scope
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-03-14 12:07:49 +01:00
unknown
1c23473751 anotehr fix for Item_func_isnotnull::not_null_tables()
mysql-test/r/join_outer.result:
  anotehr test for Item_func_isnotnull::not_null_tables()
mysql-test/t/join_outer.test:
  anotehr test for Item_func_isnotnull::not_null_tables()
2005-03-14 11:04:42 +01:00
unknown
174a177ccb print more information 2005-03-14 09:27:34 +01:00
unknown
27f82edceb Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into linux.site:/home/marty/MySQL/mysql-5.0


sql/mysql_priv.h:
  Auto merged
2005-03-14 09:21:15 +01:00
unknown
7a105affb2 Item_func_isnotnull::not_null_tables - return 0 if not top-level item
mysql-test/r/join_outer.result:
  test for some obscure usage of IS NOT NULL
mysql-test/t/join_outer.test:
  test for some obscure usage of IS NOT NULL
2005-03-13 23:56:25 +01:00
unknown
ec372b09fe print xa recovery progress
add names to handlertons
trans_need_2pc() macro


sql/examples/ha_archive.cc:
  add names to handlertons
sql/ha_berkeley.cc:
  add names to handlertons
sql/ha_innodb.cc:
  add names to handlertons
sql/ha_ndbcluster.cc:
  add names to handlertons
sql/handler.cc:
  print xa recovery progress
sql/handler.h:
  add names to handlertons
  trans_need_2pc() macro
sql/log.cc:
  add names to handlertons
2005-03-13 21:58:09 +01:00
unknown
7652a38941 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/media/sda1/mysql/mysql-5.0-926


sql/field.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-03-13 23:53:30 +03:00
unknown
1534ed8e15 WL#926 "SUM(DISTINCT) and AVG(DISTINCT)": improvement of SUM(DISTINCT) and
implementation of AVG(DISTINCT) which utilizes the approach with Fields.
The patch implemented in October is portede to the up-to-date tree 
containing DECIMAL type.
Tests for AVG(DISTINCT) (although there is not much to test provided
that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT()
will follow in another changeset.


sql/field.cc:
  A handy way to init create_field used for use with virtual tmp tables.
  Feel free to extend it for your own needs.
sql/field.h:
  Declaration for create_field::init_for_tmp_table()
sql/item.cc:
  Implementation for a framework used to easily handle different result
  types of SQL expressions. Instead of having instances of each possible 
  result type (integer, decimal, double) in every item, variables
  of all used types are moved to struct Hybrid_type.
  Hybrid_type can change its dynamic type in runtime, and become,
  for instance, DECIMAL from INTEGER.
  All type-specific Item operations are moved to the class hierarchy
  Hybrid_type_traits. Item::decimals and Item::max_length can
  be moved to Hybrid_type as well.
sql/item.h:
  Declaration for Hybrid_type framework. See also comments for item.cc
  in this changeset.
sql/item_sum.cc:
  Rewritten implementation for Item_sum_sum_distinct (SUM(DISTINCT))
  and added implementation for Item_sum_avg_distinct (AVG(DISTINCT)).
  The classes utilize Hybrid_type class hierarchy and Fields to
  convert SUM/AVG arguments to binary representation and store in a RB-tree.
sql/item_sum.h:
  Declarations for Item_sum_distinct (the new intermediate class used
  for SUM and AVG distinct), Item_sum_sum_distinct, Item_sum_avg_distinct.
sql/sql_select.cc:
  Implementatio of create_virtual_tmp_table().
sql/sql_select.h:
  Declaration for create_virtual_tmp_table.
sql/sql_yacc.yy:
  Grammar support for Item_sum_avg_distinct.
2005-03-13 23:50:43 +03:00
unknown
2427f3695c correct not_null_tables() for XOR and AND
correct top_level_item for XOR


mysql-test/r/join_outer.result:
  one more test
mysql-test/t/join_outer.test:
  one more test
2005-03-13 16:34:40 +01:00
unknown
a569b08375 set_var.cc, mysqld.cc, ha_innodb.cc, sql_class.h:
Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
trx0trx.h, trx0undo.c, trx0trx.c, trx0roll.c:
  Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit


innobase/trx/trx0roll.c:
  Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
innobase/trx/trx0trx.c:
  Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
innobase/trx/trx0undo.c:
  Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
innobase/include/trx0trx.h:
  Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
sql/sql_class.h:
  Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
sql/ha_innodb.cc:
  Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
sql/mysqld.cc:
  Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
sql/set_var.cc:
  Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
2005-03-13 12:49:39 +02:00
unknown
7bf4a418cb Manual merge
sql/item_cmpfunc.h:
  Auto merged
2005-03-13 00:40:55 -08:00
unknown
7cecea527d join_outer.result, join_outer.test:
Added a test case for bug #9017.
item_cmpfunc.h:
  A wrong not_null_tables method for Item_cond_xor
  caused a conversion of a left join into an inner join
  that was not valid.


sql/item_cmpfunc.h:
  A wrong not_null_tables method for Item_cond_xor
  caused a conversion of a left join into an inner join
  that was not valid.
mysql-test/t/join_outer.test:
  Added a test case for bug #9017.
mysql-test/r/join_outer.result:
  Added a test case for bug #9017.
2005-03-12 23:31:52 -08:00
unknown
deabb45081 Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0


sql/mysql_priv.h:
  Auto merged
2005-03-12 20:17:16 +01:00
unknown
6b98e786e6 if no xa recovery (or after it):
warning on startup if prepared foreign xids
  error on startup if prepared our xids
  temporarily: always rollback prepared our xids instead of an error


sql/mysql_priv.h:
  opt_tc_log_file made extern
sql/mysqld.cc:
  opt_tc_log_file made extern
  always call ha_recover() even if no previous crash was detected
2005-03-12 20:09:54 +01:00
unknown
52050d138e Merge bk-internal:/home/bk/mysql-5.0
into mysql.com:/home/jimw/my/mysql-5.0-clean


mysql-test/r/join_outer.result:
  Auto merged
mysql-test/t/join_outer.test:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
2005-03-11 12:47:29 -08:00