summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <mskold@mysql.com>2004-08-19 21:37:58 +0200
committerunknown <mskold@mysql.com>2004-08-19 21:37:58 +0200
commitae79d2222482b6c81deef8c8102f9e7c00c25419 (patch)
treea4ffd67f33b7ad045e55af2e44a42e57a0c1c024 /sql
parent8a5bb1a06cd3425ec5275ee2a78fa414bacb89e6 (diff)
parent0ed563e80180a848dbd8a3d062663ce14b479e11 (diff)
downloadmariadb-git-ae79d2222482b6c81deef8c8102f9e7c00c25419.tar.gz
Merge mskold@build.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1-ndb
Diffstat (limited to 'sql')
-rw-r--r--sql/field.h2
-rw-r--r--sql/ha_berkeley.cc6
-rw-r--r--sql/ha_heap.cc2
-rw-r--r--sql/item_cmpfunc.cc4
-rw-r--r--sql/sql_parse.cc4
5 files changed, 10 insertions, 8 deletions
diff --git a/sql/field.h b/sql/field.h
index fe06cd96f1a..83c5a71f07f 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -357,7 +357,7 @@ public:
uint size_of() const { return sizeof(*this); }
CHARSET_INFO *charset(void) const { return field_charset; }
void set_charset(CHARSET_INFO *charset) { field_charset=charset; }
- bool binary() const { return field_charset->state & MY_CS_BINSORT ? 1 : 0; }
+ bool binary() const { return field_charset == &my_charset_bin; }
uint32 max_length() { return field_length; }
friend class create_field;
};
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index 39ef6ca855a..7cd534d60b3 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -357,9 +357,11 @@ ulong ha_berkeley::index_flags(uint idx, uint part, bool all_parts) const
case HA_KEYTYPE_VARTEXT:
/*
As BDB stores only one copy of equal strings, we can't use key read
- on these
+ on these. Binary collations do support key read though.
*/
- flags&= ~HA_KEYREAD_ONLY;
+ if (!(table->key_info[idx].key_part[i].field->charset()->state
+ & MY_CS_BINSORT))
+ flags&= ~HA_KEYREAD_ONLY;
break;
default: // Keep compiler happy
break;
diff --git a/sql/ha_heap.cc b/sql/ha_heap.cc
index a7f6cc45831..d7327362286 100644
--- a/sql/ha_heap.cc
+++ b/sql/ha_heap.cc
@@ -430,7 +430,7 @@ int ha_heap::create(const char *name, TABLE *table_arg,
{
if (!f_is_packed(flag) &&
f_packtype(flag) == (int) FIELD_TYPE_DECIMAL &&
- !(flag & FIELDFLAG_BINARY))
+ !(field->charset() == &my_charset_bin))
seg->type= (int) HA_KEYTYPE_TEXT;
else
seg->type= (int) HA_KEYTYPE_BINARY;
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 23bdad1aae5..3c75dba42da 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -303,10 +303,10 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type)
my_coll_agg_error((*a)->collation, (*b)->collation, owner->func_name());
return 1;
}
- if (my_binary_compare(cmp_collation.collation))
+ if (cmp_collation.collation == &my_charset_bin)
{
/*
- We are using binary collation, change to compare byte by byte,
+ We are using BLOB/BINARY/VARBINARY, change to compare byte by byte,
without removing end space
*/
if (func == &Arg_comparator::compare_string)
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 57e4022719e..5aa4a8de156 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -1643,8 +1643,8 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
SHUTDOWN_DEFAULT is 0. If client is >= 4.1.3, the shutdown level is in
packet[0].
*/
- enum enum_shutdown_level level=
- (enum enum_shutdown_level) (uchar) packet[0];
+ enum mysql_enum_shutdown_level level=
+ (enum mysql_enum_shutdown_level) (uchar) packet[0];
DBUG_PRINT("quit",("Got shutdown command for level %u", level));
if (level == SHUTDOWN_DEFAULT)
level= SHUTDOWN_WAIT_ALL_BUFFERS; // soon default will be configurable