summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2006-02-24 00:00:15 +0300
committerunknown <konstantin@mysql.com>2006-02-24 00:00:15 +0300
commitc5b1fab83867d44206039e03b42375383b262493 (patch)
tree1cad1f5d22790e28978c846e656214eaccf50aa0 /sql/sql_table.cc
parent86f1f1bcc7bbd8484eab810fc63789d4e95153f7 (diff)
parentac90a3e349aef14284229c3ebab676d1ac5c9c70 (diff)
downloadmariadb-git-c5b1fab83867d44206039e03b42375383b262493.tar.gz
Merge mysql.com:/opt/local/work/mysql-4.1-13134
into mysql.com:/opt/local/work/mysql-5.0-runtime mysql-test/t/heap.test: Auto merged mysql-test/r/heap.result: Manual merge (use local) mysql-test/r/ps.result: Manual merge (use local) mysql-test/t/ps.test: Manual merge. sql/field.cc: Manual merge. sql/field.h: Manual merge. sql/sql_parse.cc: Manual merge. sql/sql_table.cc: Manual merge.
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index de350b83985..7795b07936a 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -688,6 +688,12 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
{
CHARSET_INFO *save_cs;
+ /*
+ Initialize length from its original value (number of characters),
+ which was set in the parser. This is necessary if we're
+ executing a prepared statement for the second time.
+ */
+ sql_field->length= sql_field->char_length;
if (!sql_field->charset)
sql_field->charset= create_info->default_table_charset;
/*
@@ -872,7 +878,7 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
sql_field->charset= (dup_field->charset ?
dup_field->charset :
create_info->default_table_charset);
- sql_field->length= dup_field->chars_length;
+ sql_field->length= dup_field->char_length;
sql_field->pack_length= dup_field->pack_length;
sql_field->key_length= dup_field->key_length;
sql_field->create_length_to_internal_length();