summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-03-16 12:03:00 +0200
committerunknown <monty@mysql.com>2005-03-16 12:03:00 +0200
commitbfe19493c5c8c4f4a9e394091f79a9e569382333 (patch)
tree73cf226453a2858770b14a9d4645880b61832453
parent008458762058f40f58c0712eb404f2f6a4d06a0f (diff)
parent97a281f5177259b3621e69619d8c033310973749 (diff)
downloadmariadb-git-bfe19493c5c8c4f4a9e394091f79a9e569382333.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
-rw-r--r--.bzrignore1
-rw-r--r--client/mysql.cc2
-rw-r--r--innobase/row/row0sel.c14
-rw-r--r--mysql-test/mysql-test-run.sh14
-rw-r--r--mysql-test/t/disabled.def8
-rw-r--r--sql/ha_innodb.cc6
6 files changed, 24 insertions, 21 deletions
diff --git a/.bzrignore b/.bzrignore
index d2aa16da0a3..02a97d7d1af 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -1106,3 +1106,4 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
+VC++Files/client/mysql_amd64.dsp
diff --git a/client/mysql.cc b/client/mysql.cc
index 16b26cd745d..a1071daffea 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -2154,7 +2154,7 @@ print_table_data_xml(MYSQL_RES *result)
for (uint i=0; i < mysql_num_fields(result); i++)
{
tee_fprintf(PAGER, "\t<field name=\"");
- xmlencode_print(fields[i].name, strlen(fields[i].name));
+ xmlencode_print(fields[i].name, (uint) strlen(fields[i].name));
tee_fprintf(PAGER, "\">");
xmlencode_print(cur[i], lengths[i]);
tee_fprintf(PAGER, "</field>\n");
diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c
index a09e09342e0..48bca5d7b6f 100644
--- a/innobase/row/row0sel.c
+++ b/innobase/row/row0sel.c
@@ -2100,9 +2100,12 @@ row_sel_convert_mysql_key_to_innobase(
/* Calculate data length and data field total length */
- if (type == DATA_BLOB) {
- /* The key field is a column prefix of a BLOB or
- TEXT type column */
+ if (type == DATA_BLOB || ( type == DATA_VARCHAR &&
+ dtype_get_mysql_type(dfield_get_type(dfield))
+ == DATA_MYSQL_TRUE_VARCHAR)) {
+
+ /* The key field is a column prefix of a BLOB,
+ TEXT, OR TRUE VARCHAR type column */
ut_a(field->prefix_len > 0);
@@ -2118,7 +2121,10 @@ row_sel_convert_mysql_key_to_innobase(
data_len = key_ptr[data_offset]
+ 256 * key_ptr[data_offset + 1];
data_field_len = data_offset + 2 + field->prefix_len;
- data_offset += 2;
+
+ if (type == DATA_BLOB) {
+ data_offset += 2;
+ }
/* now that we know the length, we store the column
value like it would be a fixed char field */
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index b69bac1ad0b..4e970ca034d 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -1541,12 +1541,14 @@ run_testcase ()
disable_test $tname "$comment"
return
fi
- comment=`$GREP "^$tname *: *" $TESTDIR/disabled.def`;
- if [ -n "$comment" ]
- then
- comment=`echo $comment | sed 's/^[^:]*: *//'`
- disable_test $tname "$comment"
- return
+ if [ -f "$TESTDIR/disabled.def" ] ; then
+ comment=`$GREP "^$tname *: *" $TESTDIR/disabled.def`;
+ if [ -n "$comment" ]
+ then
+ comment=`echo $comment | sed 's/^[^:]*: *//'`
+ disable_test $tname "$comment"
+ return
+ fi
fi
if [ "x$USE_EMBEDDED_SERVER" != "x1" ] ; then
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index d2ab8158c51..9bfe9567d83 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -10,11 +10,3 @@
#
##############################################################################
-ndb_alter_table : NDB team needs to fix
-ndb_autodiscover : NDB team needs to fix
-ndb_autodiscover2 : NDB team needs to fix
-ndb_cache_multi : NDB team needs to fix
-ndb_cache_multi2 : NDB team needs to fix
-ndb_multi : NDB team needs to fix
-ndb_restore : NDB team needs to fix
-
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index 7132ab00bb9..537908f3472 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -3021,9 +3021,11 @@ calc_row_difference(
col_pack_len,
prebuilt->table->comp);
ufield->new_val.data =
- dfield_get_data(&dfield);
+ dfield_get_data_noninline(
+ &dfield);
ufield->new_val.len =
- dfield_get_len(&dfield);
+ dfield_get_len_noninline(
+ &dfield);
} else {
ufield->new_val.data = NULL;
ufield->new_val.len = UNIV_SQL_NULL;