Commit graph

172 commits

Author SHA1 Message Date
unknown
70ed3160d9 backport Serg's fix of FT interface (BUG#6523)
mysql-test/r/subselect.result:
  subqueries with full text search
mysql-test/t/subselect.test:
  subqueries with full text search
sql/ha_myisam.h:
  backport Serg's fix of FT interface
sql/handler.h:
  backport Serg's fix of FT interface
sql/opt_range.h:
  backport Serg's fix of FT interface
sql/sql_select.cc:
  comment for previous patch
2004-11-16 22:58:02 +02:00
unknown
3b3285b322 Merge
client/mysqldump.c:
  Auto merged
sql/handler.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/handler.h:
  SCCS merged
2004-11-10 18:02:00 +01:00
unknown
313ce62f70 WL#1596 "make mysqldump --master-data --single-transaction able to do online dump of InnoDB AND report reliable
binlog coordinates corresponding to the dump".
The good news is that now mysqldump can be used to get an online backup of InnoDB *which works for
point-in-time recovery and replication slave creation*. Formerly, mysqldump --master-data --single-transaction
used to call in fact mysqldump --master-data, so the dump was not an online dump (took big lock all time of dump).
The only lock which is now taken in this patch is at the beginning of the dump: mysqldump does:
FLUSH TABLES WITH READ LOCK; START TRANSACTION WITH CONSISTENT SNAPSHOT; SHOW MASTER STATUS; UNLOCK TABLES;
so the lock time is in fact the time FLUSH TABLES WITH READ LOCK takes to return (can be 0 or very long, if
a table is undergoing a huge update).
I have done some more minor changes listed in the paragraph of mysqldump.c.
WL#2237 "WITH CONSISTENT SNAPSHOT clause for START TRANSACTION":
it's a START TRANSACTION which additionally starts a consistent read on all
capable storage engine (i.e. InnoDB). So, can serve as a replacement for
BEGIN; SELECT * FROM some_innodb_table LIMIT 1; which starts a consistent read too. 


client/mysqldump.c:
  Main change: mysqldump --single-transaction --master-data is now able to, at the same time,
  take an online dump of InnoDB (using consistent read) AND get the binlog position corresponding to this dump
  (before, using the two options used to silently cancel --single-transaction).
  This uses the new START TRANSACTION WITH CONSISTENT SNAPSHOT syntax.
  Additional changes: 
  a) cleanup:
   - DBerror calls exit() so some code was unneeded
   - no need to call COMMIT at end, leave disconnection do the job
   - mysql_query_with_error_report()
  b) requirements I had heard from colleagues:
   - --master-data now requires an argument, to comment out ("--") the CHANGE MASTER or not
     (commenting had been asked for point-in-time recovery when replication is not necessary).
   - --first-slave is renamed to --lock-all-tables
  c) more sensible behaviours (has been discussed internally):
   - if used with --master-data, --flush-logs is probably intended to get a flush synchronous
     with the dump, not one random flush per dumped db.
   - disabled automatic reconnection as, at least, SQL_MODE would be lost (and also, depending
     on options, LOCK TABLES, BEGIN, FLUSH TABLES WITH READ LOCK).
include/mysqld_error.h:
  an error if START TRANSACTION WITH CONSISTENT SNAPSHOT is called and there is no consistent-read capable storage engine
  (idea ((C) PeterG) is that it's a bit like CREATE TABLE ENGINE=InnoDB when there is no support for InnoDB).
sql/handler.cc:
  new ha_start_consistent_snapshot(), which, inside an existing transaction, starts a consistent read
  (offers an alternative to SELECTing any InnoDB table). Does something only for InnoDB.
  Warning if no suitable engine supported.
sql/handler.h:
  declarations
sql/lex.h:
  symbols for lex
sql/share/czech/errmsg.txt:
  new message
sql/share/danish/errmsg.txt:
  new message
sql/share/dutch/errmsg.txt:
  new message
sql/share/english/errmsg.txt:
  new message
sql/share/estonian/errmsg.txt:
  new message
sql/share/french/errmsg.txt:
  new message
sql/share/german/errmsg.txt:
  new message
sql/share/greek/errmsg.txt:
  new message
sql/share/hungarian/errmsg.txt:
  new message
sql/share/italian/errmsg.txt:
  new message
sql/share/japanese/errmsg.txt:
  new message
sql/share/korean/errmsg.txt:
  new message
sql/share/norwegian-ny/errmsg.txt:
  new message
sql/share/norwegian/errmsg.txt:
  new message
sql/share/polish/errmsg.txt:
  new message
sql/share/portuguese/errmsg.txt:
  new message
sql/share/romanian/errmsg.txt:
  new message
sql/share/russian/errmsg.txt:
  new message
sql/share/serbian/errmsg.txt:
  new message
sql/share/slovak/errmsg.txt:
  new message
sql/share/spanish/errmsg.txt:
  new message
sql/share/swedish/errmsg.txt:
  new message
sql/share/ukrainian/errmsg.txt:
  new message
sql/sql_lex.h:
  new option in lex (transaction options)
sql/sql_parse.cc:
  warning comment (never make UNLOCK TABLES commit a transaction, please);
  support for starting consistent snapshot.
sql/sql_yacc.yy:
  new clause WITH CONSISTENT SNAPSHOT (syntax ok'd by PeterG) for START TRANSACTION.
2004-11-10 17:56:45 +01:00
unknown
97af0a0e8f Bug#6031 - To drop database you have to execute DROP DATABASE command twice.
DROP DATABASE failed because of file ext not in TYPELIB of known extensions.
  General solution - construct a TYPELIB at runtime instead of a static list.


mysql-test/r/ndb_basic.result:
  Bug#6031
    New test for bug
mysql-test/t/ndb_basic.test:
  Bug#6031
    New test for bug
sql/ha_ndbcluster.cc:
  Cosmetic fix
sql/handler.cc:
  Bug#6031
    New function - ha_known_exts()
    We can construct TYPELIB of known db file extensions.
sql/handler.h:
  Bug#6031
    New function - ha_known_exts()
sql/sql_db.cc:
  Bug#6031
    We use a constructed list of known extensions instead of a static list
2004-11-10 15:07:11 +00:00
unknown
ec81fca2d0 Merge
BitKeeper/etc/logging_ok:
  auto-union
sql/ha_ndbcluster.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/mysql-test-run.sh:
  SCCS merged
sql/ha_ndbcluster.cc:
  SCCS merged
2004-10-03 21:39:04 +00:00
unknown
7b51154461 Support for TIMESTAMP columns holding NULL values. Unlike all other
column types TIMESTAMP is NOT NULL by default, so in order to have 
TIMESTAMP column holding NULL valaues you have to specify NULL as
one of its attributes (this needed for backward compatibility).

Main changes:
Replaced TABLE::timestamp_default_now/on_update_now members with
TABLE::timestamp_auto_set_type flag which is used everywhere
for determining if we should auto-set value of TIMESTAMP field 
during this operation or not. We are also use Field_timestamp::set_time()
instead of handler::update_timestamp() in handlers.


mysql-test/r/type_timestamp.result:
  Added test for TIMESTAMP columns which are able to store NULL values.
mysql-test/t/type_timestamp.test:
  Added test for TIMESTAMP columns which are able to store NULL values.
sql/field.cc:
  Added support for TIMESTAMP fields holding NULL values.
  We don't need Field_timestamp::set_timestamp_offsets() anymore.
  Instead we need Field_timestamp::get_auto_set_type() function
  which will convert TIMESTAMP auto-set type stored in Field in 
  unireg_check to value from timestamp_auto_set_type_enum.
  (We can't replace this function with additional Field_timestamp member
  and some code in constructor because then we will have troubles
  with Field::new_field() method).
  We should also set field to not null in Field_timestamp::set_time() now.
sql/field.h:
  Added support for TIMESTAMP fields holding NULL values.
  We don't need Field_timestamp::set_timestamp_offsets() anymore.
  Instead we need Field_timestamp::get_auto_set_type() function,
  which will convert TIMESTAMP auto-set type stored in Field in 
  unireg_check to value from timestamp_auto_set_type_enum.
  We also have to support NULL values in Field_timestamp::get_timestamp()
  function.
sql/field_conv.cc:
  Added comment clarifying behavior in case of TIMESTAMP fields which are
  able to store NULL values.
sql/ha_berkeley.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_heap.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_innodb.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_isam.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_isammrg.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_myisam.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_myisammrg.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/ha_ndbcluster.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now for determining 
  if we should auto-set value of TIMESTAMP field during this operation.
  We are also use Field_timestamp::set_time() instead of 
  handler::update_timestamp().
sql/handler.cc:
  handler::update_timestamp() is no longer needed since now we use
  Field_timestamp::set_time() instead.
  (we can't use handler::update_timestamp() anyway since field position
  only is not enough for TIMESTAMP fields which are able to store NULLs)
sql/handler.h:
  handler::update_timestamp() is no longer needed since now we use
  Field_timestamp::set_time() instead.
sql/item_timefunc.cc:
  Since now TIMESTAMP fields can hold NULL values we should take this into
  account.
sql/sql_base.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now. 
  (Here we use Field_timestamp::get_auto_set_type() to setup its value
   before further statement execution).
sql/sql_insert.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now.
sql/sql_load.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now.
sql/sql_parse.cc:
  Added support for TIMESTAMP fields holding NULL values.
  We should distinguish NULL default values and non-specified default
  values for such fields (because latter could mean DEFAULT NOW()
  ON UPDATE NOW() in some cases).
sql/sql_show.cc:
  Added support for TIMESTAMP fields holding NULL values.
  Unlike all other fields these are NOT NULL by default
  so we have to specify NULL attribute explicitly for them.
sql/sql_table.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now.
sql/sql_update.cc:
  Now we use TABLE::timestamp_field_type instead of 
  TABLE::timestamp_default_now/on_update_now.
sql/sql_yacc.yy:
  Added support for TIMESTAMP fields holding NULL values.
  Unlike all other fields these are NOT NULL by default
  (so we have to set NOT_NULL_FLAG properly for them).
sql/table.h:
  Added timestamp_auto_set_type enum which values are used for indicating
  during which operations we should automatically set TIMESTAPM field
  value to current timestamp.
  TABLE: Replaced timestamp_default_now/on_update_now members with
  timestamp_auto_set_type flag (Now when TIMESTAMP field are able to 
  store NULL values, single position of field in record is not enough 
  for updating this field anyway).
2004-10-01 18:54:06 +04:00
unknown
5077ba47ad WL#1424 Updated after review
* Changed the implementation of ndbcluster_find_files to be more efficient, using only one mutex lock
* Moved ha_find_files to end of mysql_find_files so that it can be passed the list that we are interested to find. 


mysql-test/t/ndb_autodiscover.test:
  Added a new test case, disabled for now, waiting for mysql-test-run to set a NDB_CONNECTSTRING
sql/ha_ndbcluster.cc:
  Rewrite of ndbcluster_find_files to remove and delete files using only one mutex lock. 
  This version only discover files that fulfill wildcard.
sql/ha_ndbcluster.h:
  Add list of files as parameter
sql/handler.cc:
  Add list of files as parameter
sql/handler.h:
  Add list of files as parameter
sql/sql_show.cc:
  Moving the ha_find_files to end of function, so that the file lista can be passsed to it.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-09-26 16:11:24 +02:00
unknown
dd07a90d61 Changed WL#1424 to use the function ha_find_files. This is a simpler implementation and all handler specific code is hidden in the appropriate handler.
mysql-test/r/ndb_autodiscover.result:
  Update test result, number of rows is 1
mysql-test/t/ndb_autodiscover.test:
  Dont run the test where table is dropped in NDb with ndb_drop_table
sql/ha_ndbcluster.cc:
  Implement function ndbcluster_find_files which will discover new tables and delete old tables
sql/ha_ndbcluster.h:
  Implement function ndbcluster_find_files 
  Remove function ndbcluster_list_tables and ndbcluster_can_discover
sql/handler.cc:
  Add ha_find_files called from mysql_find_files
  Remove ha_can_discover and ha_list_tables
sql/handler.h:
  Add ha_find_files called from mysql_find_files
  Remove ha_can_discover and ha_list_tables
sql/sql_show.cc:
  Revert to original version of sql_show.cc
  Only changes to this version is that ha_find_files is called from mysql_find_files in order to give the handlers a possibility to find new files in engine
2004-09-21 12:13:58 +02:00
unknown
877ba4489a Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into neptunus.(none):/home/magnus/mysql/wl/wl1424_discover_2


sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2004-09-14 10:03:56 +02:00
unknown
5a46435678 WL1424 Multiple MySQL Servers: SHOW TABLES etc. should detect new and delete old tables.
include/my_base.h:
  Added new bit to table create options
  Removed old error code HA_ERR_OLD_METADAT and reused it for HA_ERR_NO_SUCH_TABLE.
mysql-test/r/ndb_autodiscover.result:
  Updated test cases
mysql-test/t/ndb_autodiscover.test:
  Updated test cases
mysql-test/t/ndb_autodiscover2.test:
  Updated test cases
sql/discover.cc:
  Moved function create_table_from_handler to handler.cc
sql/ha_ndbcluster.cc:
  Improved discover functionality
  Added .ndb file
  Changed error code mappings for a table that does not exist in engine
  Check for ndb object in THD
  Updated ndbcluster_discover, ndbcluster_list_tables and ndbcluster_can_discover
sql/ha_ndbcluster.h:
  Improved discover
sql/handler.cc:
  Added new error message mapping.
  Moved function ha_create_table_from_engine to handler level
  Added new functions ha_can_discover, ha_list_tables and ha_table_exists
sql/handler.h:
  Added new error message mapping.
  Moved function ha_create_table_from_engine to handler level
  Added new functions ha_can_discover, ha_list_tables and ha_table_exists
sql/mysql_priv.h:
  Removed create_table_from_handler, moved to handler.h
sql/sql_base.cc:
  Renamed function create_table_from_handler
sql/sql_show.cc:
  Added new function mysql_discover_files and mysql_list_files. 
  Modified mysql_find_files to discover new and delete "old" files/tables.
sql/sql_table.cc:
  Renamed create_table_from_handler
  Call ha_create_table_from_engine, in order to discover the the frm file before it can be dropped.
sql/table.cc:
  Added mapping of the error code HA_ERR_NO_SUCH_TABLE
2004-09-13 14:46:38 +02:00
unknown
736963b5e0 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/dbdata/psergey/mysql-4.1-bug-tina


sql/handler.h:
  Auto merged
2004-09-13 16:26:01 +04:00
unknown
b28118abfb Fix for BUG#5117:
* Renamed handler::estimate_number_of_rows to handler::estimate_rows_upper_bound function, which can also return "unknown"
 * made filesort to use full sort buffer if number of rows to sort is not known.


sql/examples/ha_tina.h:
  Renamed estimate_number_of_rows -> estimate_rows_upper_bound
sql/filesort.cc:
   * Fix for BUG#5117: made filesort() to use full sort buffer if number of rows to sort is not known.
   * Comments and assertion added
sql/ha_berkeley.cc:
  Renamed estimate_number_of_rows -> estimate_rows_upper_bound
sql/ha_berkeley.h:
  Renamed estimate_number_of_rows -> estimate_rows_upper_bound
sql/ha_innodb.cc:
  Renamed estimate_number_of_rows -> estimate_rows_upper_bound
sql/ha_innodb.h:
  Renamed estimate_number_of_rows -> estimate_rows_upper_bound
sql/handler.h:
  Renamed estimate_number_of_rows -> estimate_rows_upper_bound
2004-09-13 06:14:25 +04:00
unknown
e8c2e41841 renamed ha_recovery_logging to ha_enable_transaction
added tests to alter table for "large" alter tables and truncates in ndbcluster
added debug printout in restart() in ndbcluster
added flag THD::transaction.on to enable/disable transaction


mysql-test/r/ndb_alter_table.result:
  added tests to alter table for "large" alter tables and truncates
mysql-test/t/ndb_alter_table.test:
  added tests to alter table for "large" alter tables and truncates
ndb/src/ndbapi/NdbConnection.cpp:
  added debug printout in restart()
sql/ha_ndbcluster.cc:
  added support for large alter table and truncate
sql/handler.cc:
  renamed ha_recovery_logging to ha_enable_transaction
sql/handler.h:
  renamed ha_recovery_logging to ha_enable_transaction
sql/sql_class.cc:
  added flag THD::transaction.on to enable/disable transaction
sql/sql_class.h:
  added flag THD::transaction.on to enable/disable transaction
sql/sql_delete.cc:
  added disable transaction for mysql_truncate
sql/sql_table.cc:
  renamed ha_recovery_logging to ha_enable_transaction
2004-09-03 15:11:09 +00:00
unknown
2d8f4a61bf Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into avenger.(none):/export/brian/tina-4.1


acinclude.m4:
  Auto merged
BitKeeper/deleted/.del-acconfig.h~8d2e3113fc8056da:
  Auto merged
configure.in:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
2004-08-13 16:27:17 -07:00
unknown
89987fa104 This is the addition of the CSV engine "aka tina". Its an example engine that works as a plain text file.
acconfig.h:
  Adding HAVE CSV rule
acinclude.m4:
  Build option of csv engine
configure.in:
  Update for building CSV
sql/Makefile.am:
  Added files for CSV build
sql/handler.cc:
  Needed options for CSV to be created.
sql/handler.h:
  CSV type engine enum.
sql/mysql_priv.h:
  Addition of the have_csv_db variable.
sql/mysqld.cc:
  Code to show csv option.
sql/set_var.cc:
  Adding have show variables for both csv and example.
2004-08-12 20:57:18 -07:00
unknown
94a1e48232 BUG#4892 TRUNCATE TABLE returns error 156
Added NDBCLUSTER to table types which does not support generate. 
Added test case for truncate.


sql/handler.h:
  Add NDBCLUSTER to table types that does not support generate.
2004-08-04 11:28:36 +02:00
unknown
a23fbc060e New handler::index_flags() definition to make it easy to check the full used key and a specific key part.
Added key part to optimize_range() to fix problems when using fields in key parts.



sql/examples/ha_archive.h:
  New handler::index_flags() definition
sql/examples/ha_example.h:
  New handler::index_flags() definition
sql/field.cc:
  New optimize_range() definition
sql/field.h:
  New optimize_range() definition
sql/ha_berkeley.cc:
  New handler::index_flags() definition
sql/ha_berkeley.h:
  New handler::index_flags() definition
sql/ha_heap.h:
  New handler::index_flags() definition
sql/ha_innodb.h:
  New handler::index_flags() definition
sql/ha_isam.h:
  New handler::index_flags() definition
sql/ha_isammrg.h:
  New handler::index_flags() definition
sql/ha_myisam.h:
  New handler::index_flags() definition
sql/ha_myisammrg.h:
  New handler::index_flags() definition
sql/ha_ndbcluster.cc:
  New handler::index_flags() definition
sql/ha_ndbcluster.h:
  New handler::index_flags() definition
sql/handler.h:
  New handler::index_flags() definition
sql/log.cc:
  Fixed compiler warnings
sql/log_event.cc:
  Fixed compiler warnings (and renamed short variable name)
sql/opt_range.cc:
  New handler::index_flags() definition
sql/opt_sum.cc:
  New handler::index_flags() definition
sql/set_var.cc:
  Removed compiler warnings
sql/sql_db.cc:
  Removed compiler warnings
sql/sql_select.cc:
  New handler::index_flags() definition
sql/sql_show.cc:
  Removed compiler warnings
sql/sql_update.cc:
  Removed compiler warnings
sql/table.cc:
  New handler::index_flags() definition
2004-07-08 15:45:25 +03:00
unknown
c80c619f7b Merge bk-internal.mysql.com:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1


sql/handler.h:
  Auto merged
2004-06-30 11:26:49 +02:00
unknown
7b1b7bc666 fowwlowup fixes for index_flags() 2004-06-30 10:40:15 +02:00
unknown
0a1381e05b Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into gw.mysql.r18.ru:/usr/home/ram/work/4.1.b4089


mysql-test/r/bdb.result:
  Auto merged
mysql-test/t/bdb.test:
  Auto merged
sql/handler.h:
  Auto merged
2004-06-29 13:51:35 +05:00
unknown
f9b7537eb6 a fix (bug #4304: TRUNCATE <table of type BDB> , wrong result). 2004-06-29 13:49:50 +05:00
unknown
4e664e3e43 Added missing root user to mysql.user on windows. (Bug #4242)
Set default max_allowed_packet to be able to read help tables even if an my.cnf file with this option is present. (Bug #3938)
Don't use default arguments for ha_rnd_init()
Simple code cleanups since last pull



scripts/fill_func_tables.sh:
  Change mode to -rw-rw-r--
scripts/make_win_src_distribution.sh:
  Safer remove of SCCS directories
scripts/mysql_create_system_tables.sh:
  Added missing root user to mysql.user on windows. (Bug #4242)
scripts/mysql_install_db.sh:
  Set default max_allowed_packet to be able to read help tables even if an my.cnf file with this option is present. (Bug #3938)
sql/filesort.cc:
  Don't use default arguments for ha_rnd_init()
sql/ha_berkeley.cc:
  Better to use #ifdef than // to disable code
  Removed not needed setting of active_index (It's set in index_end)
sql/ha_berkeley.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_heap.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_innodb.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_isam.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_isammrg.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_myisam.cc:
  Fixed wrong previous patch (New code used 'and' between two conditions when it should be 'or' as in original code)
sql/ha_myisam.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_myisammrg.h:
  Don't use default arguments for ha_rnd_init()
sql/ha_ndbcluster.h:
  Don't use default arguments for ha_rnd_init()
sql/handler.cc:
  Code cleanup
sql/handler.h:
  Keep bool variables together (better alignment)
sql/records.cc:
  Don't use default arguments for ha_rnd_init()
sql/sql_select.cc:
  Don't use default arguments for ha_rnd_init()
2004-06-25 18:49:36 +03:00
unknown
923937d4b5 One more const method. 2004-06-25 01:30:43 +04:00
unknown
7c5b6ec3ba Followup to cleanup in handler interface.
sql/ha_myisam.h:
  - max_supported_key_part_length() is const now
sql/ha_myisammrg.h:
  - max_supported_key_part_length() is const now
sql/handler.h:
  - max_supported_key_part_length() is const now
  - removed warning about wrong order of initializer in handler ocnstructor.
2004-06-25 01:29:30 +04:00
unknown
3198ea57f5 Final part of WL#1717 "innodb/binlog consistency". This is to resolve
a limitation of yesterday's implementation:
if there was an unfinished transaction (COMMIT not typed), and some MyISAM tables were
then updated, and then mysqld crashes, then at restart the server would use the too old
binlog offset known by InnoDB to cut the binlog, thus cutting the successful MyISAM
updates. We fix this by reporting the binlog offset into InnoDB even if InnoDB was not
affected at all by the update.
But the feature is still disabled until we decide if it can go into 4.1.3.


sql/handler.cc:
  How we report the binlog offset into InnoDB:
  - if the update affected InnoDB, it will happen naturally
  - otherwise (for example MyISAM update not in an InnoDB transaction), we explicitely report it.
sql/handler.h:
  removing warning (noticed this)
sql/log.cc:
  clearer messages when truncating binlog.
sql/mysql_priv.h:
  need to see opt_innodb_safe_binlog in handler.cc
sql/mysqld.cc:
  No innodb-safe-binlog if no InnoDB.
  Updating message as now we work with MyISAM.
2004-06-24 11:38:57 +02:00
unknown
eb70dc5593 merged
configure.in:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/lex.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
2004-06-23 12:36:07 +02:00
unknown
9a554b4751 handler interface cleanups:
more logical table/index_flags
  return  HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
  max_keys and other limits renamed to max_supported_keys/etc
  max_keys/etc are now wrappers to max_supported_keys/etc 
  ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing


include/myisam.h:
  increasing myisam_max_temp_file_length
include/my_base.h:
  handler interface cleanup
myisam/mi_static.c:
  warning removed
mysql-test/Makefile.am:
  followup
mysql-test/r/fulltext.result:
  fulltext indexes are not ordered
mysql-test/r/rpl_user_variables.result:
  followup
sql/field.cc:
  index_flags
sql/filesort.cc:
  rnd_init -> ha_rnd_init
  rnd_end -> ha_rnd_end
sql/ha_berkeley.cc:
  cleanup
sql/ha_berkeley.h:
  table/index_flags revamped
sql/ha_heap.cc:
  ensure index is accessed only after index_init (esp. important for temp tables)
sql/ha_heap.h:
  table/index_flags revamped
sql/ha_innodb.cc:
  don't workaround MySQL sloppiness
sql/ha_innodb.h:
  table/index_flags revamped
sql/ha_isam.h:
  table/index_flags revamped
sql/ha_isammrg.h:
  table/index_flags revamped
sql/ha_myisam.cc:
  ensure index is accessed only after index_init (esp. important for temp tables)
sql/ha_myisam.h:
  table/index_flags revamped
sql/ha_myisammrg.h:
  table/index_flags revamped
sql/handler.cc:
  handler interface cleanups
sql/handler.h:
  handler interface cleanups:
    more logical table/index_flags
    return  HA_ERR_WRONG_COMMAND instead of abstract methods
    max_keys and other limits renamed to max_supported_keys/etc
    max_keys/etc are now wrappers to max_supported_keys/etc 
    ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to enforce strict pairing
sql/item_subselect.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/lex.h:
  renamed to avoid conflicts
sql/opt_range.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/opt_range.h:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/opt_sum.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/records.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_acl.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_cache.cc:
  cleanup
sql/sql_delete.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_handler.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_help.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_insert.cc:
  table/index_flags cleanup
sql/sql_select.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/sql_table.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/sql_update.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_yacc.yy:
  INDEX -> INDEX_SYM
sql/table.cc:
  table/index_flags cleanup
2004-06-23 12:29:05 +02:00
unknown
7849222652 WL#1689 "Map OPTIMIZE TABLE to ALTER TABLE for InnoDB"
exactly it's mapped to "ALTER TABLE t; ANALYZE TABLE t;"


sql/ha_innodb.cc:
  ::optimize() now returns "try ALTER and then analyze" instead of only analyze.
sql/handler.h:
  new code to say "try alter and analyze".
sql/mysql_priv.h:
  as we may now use mysql_alter_table() internally to ::optimize we must prevent it from talking to the client.
  New function mysql_recreate_table() which is the same as ALTER TABLE t;
sql/sql_parse.cc:
  the big block removed here is moved into mysql_recreate_table().
sql/sql_table.cc:
  In mysql_admin_table(): if the handler returns HA_ADMIN_TRY_ALTER,
  we close the table, recreate it, then open it and analyze it.
  This is currently used only for OPTIMIZE TABLE of an InnoDB table.
2004-06-10 16:41:24 +02:00
unknown
895efc07ac Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into brian-akers-computer.local:/Users/brian/mysql/mysql-4.1


BitKeeper/etc/logging_ok:
  auto-union
acconfig.h:
  Auto merged
acinclude.m4:
  Auto merged
configure.in:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
2004-06-05 10:43:22 -07:00
unknown
9061fbc8e5 New patch to ensure that InnoDB gets values for CFLAGS and CXXFLAGS
sql/handler.h:
  Remove compiler warnings
2004-05-28 10:41:38 +03:00
unknown
9a162f9abd Added tests for archive. Cleaned up a merge mistake and added some information on how well archive compresses.
sql/examples/ha_archive.cc:
  Added in example information from testing archive with Slashdot's comments.
sql/handler.h:
  Fixed broken merge.
sql/set_var.cc:
  Adding in "have_archive" to variables shown to make tests work.
2004-05-25 13:27:01 -07:00
unknown
88a3b3bca8 Fixed prototype of get_error_message to use String to return error message
WL#1747 and #1746 allow user to decide if ordered index should be created or not


BitKeeper/deleted/.del-AttrType.hpp~a9b2d6efcf660378:
  Delete: ndb/include/ndbapi/AttrType.hpp
sql/ha_ndbcluster.cc:
  Removed the NDB_ERR_CODE_OFFSET, ndb and handler error codes should not clash
  Encapsulated functionality to cache information about known indexes into buil_index_list
  Added detection of algorithm from key_info in function get_index_type_from_table
  Updated read_range_first and records_in_range to work wih new prototype.
sql/ha_ndbcluster.h:
  WL#1746 and WL#1747 Added ability to skip creating an ordered index in addition to the hash index if the user so wishes.
  Modified get_error_message to return error messaga in a String datatype, in that way the String class will take care of wheter the "data" has to be freed or not.
sql/handler.cc:
  Use String datatype as ouput parameter of get_error_message.
sql/handler.h:
  Changed the function prototype for getting error messages from handler to use String datataype
2004-05-24 12:35:39 +02:00
unknown
f1b106a753 Archive merge
sql/mysqld.cc:
  Merge of SHOW_COM_OPTION
2004-05-22 12:16:49 -07:00
unknown
31c1f849b1 First commit of archive example. Archive is a simple storage engine that handles inserts and selects.
acconfig.h:
  Adding undef piece for HAVE_ARCHIVE_DB	
acinclude.m4:
  Code needed for --with-archive-storage-engine flag for compile.
configure.in:
  Adding tag for Archive
sql/Makefile.am:
  Source updates to compile ha_archive
sql/examples/ha_archive.cc:
  Class file for archive storage engine. First version.
sql/handler.cc:
  Updates needed for adding archive storage engine.
sql/handler.h:
  ENUM for archive storage engine.
sql/mysql_priv.h:
  Archive show options
sql/mysqld.cc:
  Ifdef foor HAVE_ARCHIVE_DB
sql/examples/ha_archive.h:
  Include file for archive storage engine addition.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-05-20 18:13:11 -07:00
unknown
4d3f8f210a Merge
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/ha_ndbcluster.h:
  SCCS merged
2004-05-17 09:57:02 +02:00
unknown
70f79563d9 key_cmp -> key_cmp_if_same
New records_in_range() interface (similar to read_range())
Macros for faster bitmap handling
Simplify read_range() code (#WL1786)
New general key_cmp() function to compare keys




heap/hp_hash.c:
  New records_in_range() interface
include/heap.h:
  New records_in_range() interface
include/my_base.h:
  Moved 'key_range' here so that all table handlers can use it
include/my_bitmap.h:
  Make some bitmap functions inline for faster usage in one thread
include/myisam.h:
  New records_in_range() interface
include/myisammrg.h:
  New records_in_range() interface
myisam/mi_range.c:
  New records_in_range() interface
myisam/mi_test2.c:
  New records_in_range() interface
myisam/rt_test.c:
  New records_in_range() interface
  Indentation fixes
myisam/sp_test.c:
  New records_in_range() interface
  Indentation fixes
myisammrg/myrg_range.c:
  New records_in_range() interface
mysys/my_bitmap.c:
  Make some bitmap functions inline for faster usage in one thread
sql/examples/ha_example.cc:
  New records_in_range() interface
sql/field.cc:
  Fixed indentation
sql/ha_berkeley.cc:
  New records_in_range() interface
sql/ha_berkeley.h:
  New records_in_range() interface
sql/ha_heap.cc:
  New records_in_range() interface
sql/ha_heap.h:
  New records_in_range() interface
sql/ha_innodb.cc:
  New records_in_range() interface
sql/ha_innodb.h:
  New records_in_range() interface
sql/ha_isam.cc:
  New records_in_range() interface
sql/ha_isam.h:
  New records_in_range() interface
sql/ha_myisam.cc:
  New records_in_range() interface
sql/ha_myisam.h:
  New records_in_range() interface
sql/ha_myisammrg.cc:
  New records_in_range() interface
sql/ha_myisammrg.h:
  New records_in_range() interface
sql/ha_ndbcluster.cc:
  New records_in_range() interface
sql/ha_ndbcluster.h:
  New records_in_range() interface
sql/handler.cc:
  Simplify read_range() interface:
  - Add 'eq_range' to read_range_first
  - Remove 'eq_range' parameer from read_range_next()
  - Trust values from index_next_same()
  - Simplfy compare_key() by moving key_comparision to key.cc (as this code can be reused from other places)
sql/handler.h:
  Move key_range to my_base.h to be used by external table handlers
  Simplify read_range() interface
  New records_in_range() interface
sql/key.cc:
  Rename key_cmp() to key_cmp_if_same() to make it more descriptive
  Add new key_cmp() function usable from range and handler code.
sql/mysql_priv.h:
  Prototypes for new functions
sql/opt_range.cc:
  New records_in_range() interface
  Simplify cmp_prev()
  (We can in 5.0 simplify cmp_next() the same way)
sql/opt_range.h:
  Added key_part_info to QUICK_SELECT to be able to use key_cmp() in get_next()
sql/opt_sum.cc:
  key_cmp -> key_cmp_if_same
sql/sql_acl.cc:
  key_cmp -> key_cmp_if_same
sql/sql_select.cc:
  key_cmp -> key_cmp_if_same
2004-05-16 14:48:32 +03:00
unknown
d4399619bd WL #1729 Handler: error text for NDB errors
- New solution after discussions with Sergei, no handler specific code or error messages should be in sql layer.
next_result, only check for error if check is -1
Improved index_read 


include/mysqld_error.h:
  New error codes ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG, update number to 298.
  Removed prevoius ER_NDB_ERROR, handler specific error should not be here.
sql/ha_ndbcluster.cc:
  Removed print_error from ha_ndbcluster, added code to handler::print_error to ask  handler::get_error_message for message for an error.
  Fix bug in next_result, only check for error if -1 is returned.
  Make index_read easier, special case where pk_read or unique_index_read is detected and as default do ordered_index_scan
sql/ha_ndbcluster.h:
  Remplace print_error with get_error_message
sql/handler.cc:
  Add new function get_error_message usedc to ask handler for a message for an error.
  Call get_error_message from print_error if error code is not known.
sql/handler.h:
  Add new function get_error_message
sql/share/czech/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/danish/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/dutch/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/english/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/estonian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/french/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/german/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/greek/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/hungarian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/italian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/korean/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/norwegian-ny/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/norwegian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/polish/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/portuguese/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/romanian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/russian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/serbian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/slovak/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/spanish/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/swedish/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
sql/share/ukrainian/errmsg.txt:
  Error message for ER_GET_ERRMSG and ER_GET_TEMPORARY_ERRMSG
2004-05-13 11:56:45 +02:00
unknown
c207325aaf Merge mysql.com:/home/mydev/mysql-4.1
into mysql.com:/home/mydev/mysql-4.1-wl1687


sql/handler.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-05-07 11:13:58 +02:00
unknown
526569690e Fixed (portability) bug in handler.h, and tried to silence cast warnings on some platforms.
sql/handler.h:
  Fixed (portability) bug. No qualified method names in the class definition.
sql/item_cmpfunc.h:
  Attempt to silence cast warnings on some platforms.
sql/item_subselect.h:
  Attempt to silence cast warnings on some platforms.
sql/set_var.cc:
  Silence warning (missing cast).
sql/spatial.h:
  Attempt to silence cast warnings on some platforms.
sql/sql_cache.cc:
  Silence warning (wrong cast).
sql/sql_lex.h:
  Attempt to silence cast warnings on some platforms.
2004-05-06 19:55:12 +02:00
unknown
bfe2425aad WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
HEAP: Copies the key count to a backup variable and sets the key count to zero.
That way, no HEAP function will ever try to touch any index.
Re-enabling is done by copying back the backup variable.
To avoid memory leak at table close, disable deletes all index trees.
Re-enabling must be done with empty indexes and data anyway. Otherwise,
the indexes would need to be repaired, wich HEAP is not capable of.
MyISAM: Only the key_map is cleared and set.
Re-enabling must be done with empty indexes and data. Otherwise, repair needs
to be done which will enable all keys persistently.
The former implementation disabled only non-unique keys and maked this persistent.
The new implementation additionally can disable all keys, but only without
making this persistent. Re-enabling all keys can be done without repair,
if data file and indexes are empty.


heap/heapdef.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Pulled hp_clear_keys() out of hp_clear().
heap/hp_clear.c:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Pulled hp_clear_keys() out of hp_clear().
  Added the new functions for disabling and enabling keys and to ask for the key state.
include/heap.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added a new HP_SHARE element to save the key count while keys are disabled.
  Added declarations for the new functions.
myisam/mi_open.c:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added the new functions for disabling and enabling keys and to ask for the key state.
myisam/myisamdef.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added declarations for the new functions.
sql/ha_heap.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Pulled set_keys_for_scanning() out of open().
  Added the new functions for disabling and enabling keys and to ask for the key state.
sql/ha_heap.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added declarations for the new functions.
sql/ha_myisam.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Extended disable_indexes() for all keys and no save.
  The argument is now 'mode' as it must handle different cases.
  Extended enable_indexes() for no save.
  The new feature needs the new argument 'mode' with the same semantics as in disable_indexes().
  Added indexes_are_disabled() to ask for the key state.
  Extended the existing call to enable_indexes() by the new argument.
sql/ha_myisam.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Modified the declarations of dis-/enable_indexes() for the new argument.
  Added the declaration of the new function to ask for the key state.
sql/handler.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added declarations for the operation modes for the key switching functions.
  Modified the declarations of dis-/enable_indexes() for the new argument.
  Added the declaration of the new function to ask for the key state.
sql/sql_select.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  In create_myisam_from_heap() take notice of disabled keys
  and disable them in the new table before copying the data.
sql/sql_table.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Modified the calls of dis-/enable_indexes() for the new argument.
2004-05-06 15:53:01 +02:00
unknown
ea646dce60 avoid using ndb tables in query cache
sql/ha_ndbcluster.h:
  fixed layout
  prohibit using query cache with ndb tables
sql/handler.h:
  new caching type
sql/sql_cache.cc:
  support of new caching type (caching prohibited)
2004-05-05 11:22:10 +03:00
unknown
90cf174529 Merge conflicts with EXAMPLE handler
include/my_base.h:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2004-04-15 09:22:29 +02:00
unknown
b43af929f8 Added NDB storage engine
include/my_base.h:
  Added three new errorcodes to be returned by the handler
sql/Makefile.am:
  Add new files discover.cc, ha_ndbcluster.cc and ha_ndbcluster.h
  Add include path of NDB files
sql/handler.cc:
  Added variable for keeping track of number of "discovers"
  Added NDB to list of storage engines
  Added calls to NDB for commit, rollback etc.
  Added function ha_discover for discovering a table from handler
sql/handler.h:
  Added NDB to list of storage engines
  Added vbariable in transaction for keeping a ndb transaction handle
sql/lex.h:
  Changed AND to AND_SYM and OR to OR_SYM to avoid nameclash
sql/mysql_priv.h:
  Added prototypes for new functions readfrm, writefrm and create_table_from_handler
sql/mysqld.cc:
  Added NDB support
  Disable NDB with --skip-ndbcluster
sql/set_var.cc:
  Add posibilty to show if NDB handler is supported
sql/ha_ndbcluster.cc:
  Add ifdef for whole file for not compiling anything if NDB sholdn't be included
  Updated timestamp handling to use new vars timestamp_default_now and timestamp_on_update_now
sql/sql_base.cc:
  If frm file is not found on disk, ask handler if it knows about the table. Then retry the open.
  This new functionality is called "discover" and can be used by any handler.
sql/sql_class.h:
  Added variable for keeping a NDB connection handle
sql/sql_table.cc:
  Before trying to create a table, ask handler if a table with that name already exists.
  If user said CREATE TABLE IF NOT EXISTS, disocver the table from handler
sql/sql_yacc.yy:
  Add NDBCLUSTER_SYM
  Change AND to AND_SYM
  Change OR to OR_SYM
sql/table.cc:
  Fixe for probelm when NullS is returned from bas_ext of a handler.
2004-04-15 09:14:14 +02:00
unknown
a76b243293 Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into brian-akers-computer.local:/Users/brian/mysql/mysql-4.1-examples


BitKeeper/etc/logging_ok:
  auto-union
include/my_base.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
2004-04-14 11:59:51 -04:00
unknown
01bff53c4f All changes are to allow someone to compile the example storage engine and use it.
acconfig.h:
  Default undef for example storage engine.
acinclude.m4:
  Build macro additions for example engine.
configure.in:
  Configure changes for it to be listed in --help
sql/Makefile.am:
  Added in paths to build example.
sql/examples/ha_example.cc:
  Correction in indention and a few minor other corrections. It now lets you create/open/drop example engine.
sql/handler.cc:
  Added definition for the example storage engine. Added case for it to be created.
sql/handler.h:
  Added example storage engine type.
sql/mysql_priv.h:
  Added flag for optional build of example storage engine.
sql/mysqld.cc:
  Pieces to build example storage engine.
2004-04-12 21:01:45 -07:00
unknown
10e15762b8 Don't enable HA_EXTRA_WRITE_CACHE if too few rows
Revert main parts of patch for online index builds. Should be done differently
Added support for %lx in my_snprintf()


sql/ha_myisam.cc:
  Don't enable HA_EXTRA_WRITE_CACHE if too few rows
sql/handler.h:
  Indentaion fix
sql/mysql_priv.h:
  Removed real_alter_table, mysql_add_column and mysql_drop_column
sql/sql_class.cc:
  After merge fix
sql/sql_insert.cc:
  Don't user bulk_insert if only one row (common case)
sql/sql_parse.cc:
  Added mysql_create_index() and mysql_drop_index() as these are only wrappers for mysql_alter_table()
sql/sql_table.cc:
  Revert main parts of patch for online index builds
  Changed back to use tabs to make merges possible between trees
sql/unireg.cc:
  Added comments and minor cleanup
strings/my_vsnprintf.c:
  Added support for %lx.
  Proper long support
2004-04-08 17:56:45 +03:00
unknown
46bd7be240 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/handler.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
2004-04-08 15:02:25 +03:00
unknown
16845a71aa Moved reading of ranges from opt_range.cc to handler.cc
This gives the handler more optimization possiblities and is needed for NDB cluster
Fixed not-initialized memory error detected by valgrind


mysql-test/mysql-test-run.sh:
  Fixed address to manual page
mysql-test/r/gis-rtree.result:
  Added test to show fatal error in GIS
mysql-test/r/grant.result:
  New tests
mysql-test/t/gis-rtree.test:
  New tests
mysql-test/t/grant.test:
  New tests
sql/handler.cc:
  Moved reading of ranges from opt_range.cc to handler.cc
  This gives the handler more optimization possiblities and is needed for NDB cluster
sql/handler.h:
  Moved reading of ranges from opt_range.cc to handler.cc
  T
sql/opt_range.cc:
  Moved reading of ranges from opt_range.cc to handler.cc
  Simplified GIS get_next() handling
  Indentation cleanups
sql/opt_range.h:
  Removed not needed cmp_next()
  Added new QUICK_SELECT method for GIS keys to make code for normal keys easier and faster
sql/sql_select.cc:
  Fixed wrong handling of usable-keys in test_if_skip_sort_order (not fatal, just a warning from valgrind)
  Added DBUG
  Cleaned up comments
2004-04-08 13:58:06 +03:00
unknown
3c8ae89052 merged
sql/handler.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2004-04-07 17:14:38 +02:00
unknown
cc168fc6fd Hand-resolved auto merge
BitKeeper/etc/ignore:
  auto-union
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/unireg.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Hand-merged
sql/sql_yacc.yy:
  Hand-merged
2004-04-07 14:56:24 +02:00