diff options
author | unknown <monty@mysql.com> | 2005-03-16 12:03:00 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-03-16 12:03:00 +0200 |
commit | bfe19493c5c8c4f4a9e394091f79a9e569382333 (patch) | |
tree | 73cf226453a2858770b14a9d4645880b61832453 | |
parent | 008458762058f40f58c0712eb404f2f6a4d06a0f (diff) | |
parent | 97a281f5177259b3621e69619d8c033310973749 (diff) | |
download | mariadb-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-- | .bzrignore | 1 | ||||
-rw-r--r-- | client/mysql.cc | 2 | ||||
-rw-r--r-- | innobase/row/row0sel.c | 14 | ||||
-rw-r--r-- | mysql-test/mysql-test-run.sh | 14 | ||||
-rw-r--r-- | mysql-test/t/disabled.def | 8 | ||||
-rw-r--r-- | sql/ha_innodb.cc | 6 |
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; |