diff options
author | unknown <guilhem@mysql.com> | 2006-06-02 22:21:32 +0200 |
---|---|---|
committer | unknown <guilhem@mysql.com> | 2006-06-02 22:21:32 +0200 |
commit | e63f3779d4b19acddbc561e989293b7b4f0559d4 (patch) | |
tree | c0559b109baec8406c269ec627d05701d90cd012 /sql/ha_ndbcluster.h | |
parent | 772758b6ecdec2551910a5c1f0cec5cee99315ec (diff) | |
download | mariadb-git-e63f3779d4b19acddbc561e989293b7b4f0559d4.tar.gz |
First push for WL#3146 "less locking in auto_increment". It is a 0-real-change patch.
New prototype for get_auto_increment() (but new arguments not yet used), to be able
to reserve a finite interval of auto_increment values from cooperating engines.
A hint on how many values to reserve is found in handler::estimation_rows_to_insert,
filled by ha_start_bulk_insert(), new wrapper around start_bulk_insert().
NOTE: this patch changes nothing, for all engines. But it makes the API ready for those
engines which will want to do reservation.
More csets will come to complete WL#3146.
sql/ha_berkeley.cc:
update to new prototype of get_auto_increment
sql/ha_berkeley.h:
update to new prototype of get_auto_increment
sql/ha_heap.cc:
update to new prototype of get_auto_increment
sql/ha_heap.h:
update to new prototype of get_auto_increment
sql/ha_innodb.cc:
update to new prototype of get_auto_increment
sql/ha_innodb.h:
update to new prototype of get_auto_increment
sql/ha_myisam.cc:
update to new prototype of get_auto_increment
sql/ha_myisam.h:
update to new prototype of get_auto_increment
sql/ha_ndbcluster.cc:
update to new prototype of get_auto_increment
sql/ha_ndbcluster.h:
update to new prototype of get_auto_increment
sql/ha_partition.cc:
update to new prototype of get_auto_increment
sql/ha_partition.h:
update to new prototype of get_auto_increment
sql/handler.cc:
new prototype of get_auto_increment, comments, preparation for when the MySQL layer is capable
of getting finite auto_increment intervals from cooperating engines.
sql/handler.h:
a wrapper around start_bulk_insert(): ha_bulk_insert(), which stores the argument (number
of rows expected for insertion) into a member of handler: estimation_rows_to_insert.
This member will soon be used to decide how much auto_increment values we want to reserve
from cooperating engines.
New prototype for get_auto_increment, preparing for cooperating engines to reserve finite auto_increment
intervals.
release_auto_increment() will be used by the MySQL layer to inform the engine that it has
not used all of the interval (engine can reclaim it).
sql/log.cc:
note for the future
sql/log_event.cc:
name of wrapper
sql/sql_insert.cc:
name of wrapper. When done with inserting, return unused auto_inc values to engine.
sql/sql_load.cc:
name of wrapper. When done with inserting, return unused auto_inc values to engine.
sql/sql_select.cc:
name of wrapper
sql/sql_table.cc:
name of wrapper
storage/archive/ha_archive.cc:
update to new prototype of get_auto_increment.
Archive reserves only one value (Archive's god - Brian - told me that's the truth).
storage/archive/ha_archive.h:
update to new prototype of get_auto_increment()
Diffstat (limited to 'sql/ha_ndbcluster.h')
-rw-r--r-- | sql/ha_ndbcluster.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h index badca69941a..2acd83c7a1f 100644 --- a/sql/ha_ndbcluster.h +++ b/sql/ha_ndbcluster.h @@ -803,7 +803,10 @@ private: int set_index_key(NdbOperation *, const KEY *key_info, const byte *key_ptr); void print_results(); - ulonglong get_auto_increment(); + virtual void get_auto_increment(ulonglong offset, ulonglong increment, + ulonglong nb_desired_values, + ulonglong *first_value, + ulonglong *nb_reserved_values); int ndb_err(NdbTransaction*); bool uses_blob_value(); @@ -865,7 +868,7 @@ private: bool m_primary_key_update; bool m_write_op; bool m_ignore_no_key; - ha_rows m_rows_to_insert; + ha_rows m_rows_to_insert; // TODO: merge it with handler::estimation_rows_to_insert? ha_rows m_rows_inserted; ha_rows m_bulk_insert_rows; ha_rows m_rows_changed; |