summaryrefslogtreecommitdiff
path: root/sql/field_conv.cc
diff options
context:
space:
mode:
authorunknown <mhansson@dl145s.mysql.com>2007-05-21 14:28:31 +0200
committerunknown <mhansson@dl145s.mysql.com>2007-05-21 14:28:31 +0200
commitab267d33ffcde14acf7791638329122f66591bc7 (patch)
treeae312ba026c0dea7c15761078a939369c9d4d299 /sql/field_conv.cc
parent5d8c8803bd08bdba6c8714bfe8037c87e39f3962 (diff)
parent84966af9fc33a4cfa72f24a57da170db28f1c55a (diff)
downloadmariadb-git-ab267d33ffcde14acf7791638329122f66591bc7.tar.gz
Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my50-bug23856
into dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my51-bug23856 mysql-test/r/func_gconcat.result: Auto merged mysql-test/t/func_gconcat.test: Auto merged sql/field.h: Auto merged sql/field_conv.cc: Auto merged sql/sql_select.cc: Auto merged sql/item_sum.cc: Bug#23856: Manual merge 5.0->5.1. Changed comparison to strict inequality between convert_blob_length and UINT_MAX16. Replaced UINT_MAX16 with Field_varstring::MAX_SIZE.
Diffstat (limited to 'sql/field_conv.cc')
-rw-r--r--sql/field_conv.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/field_conv.cc b/sql/field_conv.cc
index 9771cbc12b1..e042c0ad76d 100644
--- a/sql/field_conv.cc
+++ b/sql/field_conv.cc
@@ -529,7 +529,21 @@ void Copy_field::set(char *to,Field *from)
}
+/*
+ To do:
+
+ If 'save\ is set to true and the 'from' is a blob field, do_copy is set to
+ do_save_blob rather than do_conv_blob. The only differences between them
+ appears to be:
+ - do_save_blob allocates and uses an intermediate buffer before calling
+ Field_blob::store. Is this in order to trigger the call to
+ well_formed_copy_nchars, by changing the pointer copy->tmp.ptr()?
+ That call will take place anyway in all known cases.
+
+ - The above causes a truncation to MAX_FIELD_WIDTH. Is this the intended
+ effect? Truncation is handled by well_formed_copy_nchars anyway.
+ */
void Copy_field::set(Field *to,Field *from,bool save)
{
if (to->type() == MYSQL_TYPE_NULL)