Commit graph

268 commits

Author SHA1 Message Date
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
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
26d2c58c59 Fixes made after running with sql-bench
sql/ha_ndbcluster.cc:
  Added new function set_primary_key_from_old_data, used from update_row to specify the primary key of the record to update.
  Simplified index_read function, to use read_range_first
  Close the active cursor if read_range_first is called on an open cursor.
  In read_range_first, map error code from HA_ERR_KEY_NOT_FOUND to HA_ERR_END_OF_FILE.
  Remove call to function waitUntilReady from check_ndb_connection, this shuold remove the delay from transactions executed when node(s) are down.
sql/ha_ndbcluster.h:
  Added new function set_primary_key_from_old_data
2004-05-17 09:51: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
f84be2fd89 WL# 1729 Handler: error text for NDB errors
- Close an open scan if index_read is called without closing the previous one.
- Removed some errors that occured during previous merge


include/mysqld_error.h:
  Added two new error messages for NDB
sql/ha_ndbcluster.cc:
  Added more error code mappings, from NDB code to MySQL 
  Added function to print out the error message when an NDB error occurs.
  Added two new error codes, which will represent either a permanent or temporary NDB error.
  Modev get_ndb_lock_type from class to local function
  Removed some merge errors
  New function close_scan, to close an open scan.
sql/ha_ndbcluster.h:
  Added print_error function, overrides handler::print_error
  Added close_scan
  Moved get_ndb_lock_type from class to local function
sql/share/czech/errmsg.txt:
  Added two new error messages for NDB
sql/share/danish/errmsg.txt:
  Added two new error messages for NDB
sql/share/dutch/errmsg.txt:
  Added two new error messages for NDB
sql/share/english/errmsg.txt:
  Added two new error messages for NDB
sql/share/estonian/errmsg.txt:
  Added two new error messages for NDB
sql/share/french/errmsg.txt:
  Added two new error messages for NDB
sql/share/german/errmsg.txt:
  Added two new error messages for NDB
sql/share/greek/errmsg.txt:
  Added two new error messages for NDB
sql/share/hungarian/errmsg.txt:
  Added two new error messages for NDB
sql/share/italian/errmsg.txt:
  Added two new error messages for NDB
sql/share/japanese/errmsg.txt:
  Added two new error messages for NDB
sql/share/korean/errmsg.txt:
  Added two new error messages for NDB
sql/share/norwegian-ny/errmsg.txt:
  Added two new error messages for NDB
sql/share/norwegian/errmsg.txt:
  Added two new error messages for NDB
sql/share/polish/errmsg.txt:
  Added two new error messages for NDB
sql/share/portuguese/errmsg.txt:
  Added two new error messages for NDB
sql/share/romanian/errmsg.txt:
  Added two new error messages for NDB
sql/share/russian/errmsg.txt:
  Added two new error messages for NDB
sql/share/serbian/errmsg.txt:
  Added two new error messages for NDB
sql/share/slovak/errmsg.txt:
  Added two new error messages for NDB
sql/share/spanish/errmsg.txt:
  Added two new error messages for NDB
sql/share/swedish/errmsg.txt:
  Added two new error messages for NDB
sql/share/ukrainian/errmsg.txt:
  Added two new error messages for NDB
2004-05-11 13:59:22 +02:00
unknown
d6676b0f57 Merged ha_ndbcluster.cc
sql/ha_ndbcluster.h:
  Auto merged
2004-05-10 15:06:07 +02:00
unknown
444fc1ce98 WL# 1728 Handler: use scanReadExclusive for scan update and delete
sql/ha_ndbcluster.cc:
  Modified next_result to process fetched records cached in NdbApi before asking NDB for more. 
  It should also NoCommit any pending operations before contacting NDB again.
  Added utility function define_read_attrs to set the fields that should be read.
sql/ha_ndbcluster.h:
  Add function define_read_attrs, used to set the fields to read
  Add get_nd_lock_type funciton ,to convert MySQL lock type to NDB lock type
  Always compile filtered scan function even if it's not used yet.
  Add variable ops_pending to keep track of "pending" update/delete operations.
2004-05-10 14:12:28 +02:00
unknown
4a3580ca1a Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1


mysql-test/mysql-test-run.sh:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-05-07 16:21:54 +02:00
unknown
9d99ebe394 BUG# 3658 ALTER TABLE corrupts table
Added  test file for ALTER TABLE, engine = ndbcluster


sql/ha_ndbcluster.cc:
  Add code to retriev all fields if HA_EXTRA_RETRIEVE_ALL_COLS are set.
sql/ha_ndbcluster.h:
  Add var for retreiving all fields
sql/sql_table.cc:
  Send HA_EXTRA_RETRIEVE_ALL_COLS to handler in copy_data_between_tables
2004-05-05 16:04:23 +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
d540f0c011 Merge neptunus.(none):/home/magnus/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1-insert


sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
2004-04-30 13:42:47 +02:00
unknown
ddbef950cb Merge neptunus.(none):/home/magnus/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1-sql-bench


sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
2004-04-30 13:41:19 +02:00
unknown
08676716ff WL#1727 Implement read_range_first and read_range_next
sql/ha_ndbcluster.cc:
  Added new function set_bounds, used to set bounds in NDB from a key_range
  Updated ordered_index_scan to take start_key and end_key as parameters
  Override of functions read_range_first and read_range_next, to call appropriate access function in NDB
sql/ha_ndbcluster.h:
  Added functions set_bounds, read_range_first and read_range_next
  Changed declaration of ordered_index_scan
2004-04-30 13:38:41 +02:00
unknown
0f0635ec0f Add extra ordered index in when UNIQUE and PRIMARY KEY are specified.
Extra ordered indexes are created primarily 
to support partial key scan/read and range scans of hash indexes.
I.e. the ordered index are used instead of the hash indexes for 
these queries.


sql/ha_ndbcluster.cc:
  Add creation and use of extra ordered indexes on pk and unique indexes.
sql/ha_ndbcluster.h:
  Added new functions for creating extra ordered indexes
2004-04-30 12:25:31 +02:00
unknown
155f8b3d31 WL#1737 Removed superfluous "NoCommit" from insert
sql/ha_ndbcluster.cc:
  Added 3 new variables for keeping track of insert batching
sql/ha_ndbcluster.h:
  Send more inserts per roundtrip to NDB
  Regulate how many inserts are sent by calculating number of bytes in each row.
2004-04-29 14:38:35 +02:00
unknown
465bb046ff symlink, not hardlink
mkdir in Makefile, not in configure
chmod a-x


sql/ha_ndbcluster.cc:
  Change mode to -rw-rw-r--
sql/ha_ndbcluster.h:
  Change mode to -rw-rw-r--
BitKeeper/etc/ignore:
  added libmysqld/discover.cc
configure.in:
  symlink, not hardlink
  mkdir in Makefile, not in configure
include/Makefile.am:
  mkdir in Makefile, not in configure
mysql-test/std_data/init_file.dat:
  add EOL
  make a test faster
2004-04-21 14:55:39 -05: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