summaryrefslogtreecommitdiff
path: root/sql/ha_federated.cc
diff options
context:
space:
mode:
authorunknown <ingo/mydev@chilla.local>2006-07-20 21:28:55 +0200
committerunknown <ingo/mydev@chilla.local>2006-07-20 21:28:55 +0200
commit05fc3f10c96f75b1d6da349880da69af39779a7d (patch)
treed3585cee57a42ed75573a9a112555ccd6e294e90 /sql/ha_federated.cc
parent013ecd59d183b892cc76ab852ea0ec06d5627d10 (diff)
parente6f010b63eb9d846810bff75352fa9aa5424426f (diff)
downloadmariadb-git-05fc3f10c96f75b1d6da349880da69af39779a7d.tar.gz
Merge chilla.local:/home/mydev/mysql-5.0-mmerge
into chilla.local:/home/mydev/mysql-5.1-amain configure.in: Auto merged libmysqld/lib_sql.cc: Auto merged libmysqld/libmysqld.c: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/r/federated.result: Auto merged mysql-test/r/func_sapdb.result: Auto merged mysql-test/r/func_time.result: Auto merged mysql-test/r/gis-rtree.result: Auto merged mysql-test/r/gis.result: Auto merged mysql-test/r/key.result: Auto merged mysql-test/r/myisam.result: Auto merged mysql-test/r/symlink.result: Auto merged mysql-test/t/ctype_utf8.test: Auto merged mysql-test/t/func_sapdb.test: Auto merged mysql-test/t/func_time.test: Auto merged mysql-test/t/gis.test: Auto merged mysql-test/t/key.test: Auto merged mysql-test/t/myisam.test: Auto merged scripts/make_binary_distribution.sh: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/handler.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_geofunc.h: Auto merged sql/item_timefunc.cc: Auto merged sql/mysqld.cc: Auto merged sql/opt_sum.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql-common/client.c: Auto merged sql/sql_select.cc: Auto merged sql/sql_trigger.cc: Auto merged sql/sql_update.cc: Auto merged sql/table.cc: Auto merged storage/myisam/mi_check.c: Auto merged storage/myisam/mi_create.c: Auto merged storage/myisam/mi_dynrec.c: Auto merged storage/myisam/mi_key.c: Auto merged storage/ndb/include/kernel/GlobalSignalNumbers.h: Auto merged storage/ndb/src/common/debugger/signaldata/SignalNames.cpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp: Auto merged storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Auto merged storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Auto merged storage/ndb/src/ndbapi/NdbScanOperation.cpp: Auto merged support-files/mysql.spec.sh: Auto merged BitKeeper/deleted/.del-mysqld.vcproj~6aa7b3f9c3e28fcb: Manual merge include/my_sys.h: Manual merge mysql-test/t/federated.test: Manual merge sql/ha_federated.cc: Manual merge tests/Makefile.am: Manual merge
Diffstat (limited to 'sql/ha_federated.cc')
-rw-r--r--sql/ha_federated.cc29
1 files changed, 12 insertions, 17 deletions
diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc
index ea1100938d7..e2d545710f9 100644
--- a/sql/ha_federated.cc
+++ b/sql/ha_federated.cc
@@ -1804,19 +1804,13 @@ int ha_federated::update_row(const byte *old_data, byte *new_data)
/*
buffers for following strings
*/
- char old_field_value_buffer[STRING_BUFFER_USUAL_SIZE];
- char new_field_value_buffer[STRING_BUFFER_USUAL_SIZE];
+ char field_value_buffer[STRING_BUFFER_USUAL_SIZE];
char update_buffer[FEDERATED_QUERY_BUFFER_SIZE];
char where_buffer[FEDERATED_QUERY_BUFFER_SIZE];
- /* stores the value to be replaced of the field were are updating */
- String old_field_value(old_field_value_buffer,
- sizeof(old_field_value_buffer),
- &my_charset_bin);
- /* stores the new value of the field */
- String new_field_value(new_field_value_buffer,
- sizeof(new_field_value_buffer),
- &my_charset_bin);
+ /* Work area for field values */
+ String field_value(field_value_buffer, sizeof(field_value_buffer),
+ &my_charset_bin);
/* stores the update query */
String update_string(update_buffer,
sizeof(update_buffer),
@@ -1829,8 +1823,7 @@ int ha_federated::update_row(const byte *old_data, byte *new_data)
/*
set string lengths to 0 to avoid misc chars in string
*/
- old_field_value.length(0);
- new_field_value.length(0);
+ field_value.length(0);
update_string.length(0);
where_string.length(0);
@@ -1844,8 +1837,8 @@ int ha_federated::update_row(const byte *old_data, byte *new_data)
In this loop, we want to match column names to values being inserted
(while building INSERT statement).
- Iterate through table->field (new data) and share->old_filed (old_data)
- using the same index to created an SQL UPDATE statement, new data is
+ Iterate through table->field (new data) and share->old_field (old_data)
+ using the same index to create an SQL UPDATE statement. New data is
used to create SET field=value and old data is used to create WHERE
field=oldvalue
*/
@@ -1855,13 +1848,15 @@ int ha_federated::update_row(const byte *old_data, byte *new_data)
if (bitmap_is_set(table->write_set, (*field)->field_index))
{
if ((*field)->is_null())
- new_field_value.append(FEDERATED_NULL);
+ update_string.append(FEDERATED_NULL);
else
{
my_bitmap_map *old_map= tmp_use_all_columns(table, table->read_set);
/* otherwise = */
- (*field)->val_str(&new_field_value);
- (*field)->quote_data(&new_field_value);
+ (*field)->val_str(&field_value);
+ (*field)->quote_data(&field_value);
+ update_string.append(field_value);
+ field_value.length(0);
tmp_restore_column_map(table->read_set, old_map);
}
update_string.append((*field)->field_name);