diff options
author | unknown <serg@serg.mylan> | 2005-10-05 16:38:53 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2005-10-05 16:38:53 +0200 |
commit | 07172cabdf7f36cbbdad2d48c1f12d9531a452df (patch) | |
tree | 0500ae3302afa9dcf5089517738646f7a60db952 /sql/handler.h | |
parent | ef16a0416007ce940f4e9e12462b78c09797b1bd (diff) | |
download | mariadb-git-07172cabdf7f36cbbdad2d48c1f12d9531a452df.tar.gz |
Bug#13143 - formatID should not affect XID's uniqueness
Diffstat (limited to 'sql/handler.h')
-rw-r--r-- | sql/handler.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/handler.h b/sql/handler.h index 664427fe5c4..d58d28ad7b0 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -228,7 +228,7 @@ struct xid_t { char data[XIDDATASIZE]; // not \0-terminated ! bool eq(struct xid_t *xid) - { return !memcmp(this, xid, length()); } + { return eq(xid->gtrid_length, xid->bqual_length, xid->data); } bool eq(long g, long b, const char *d) { return g == gtrid_length && b == bqual_length && !memcmp(d, data, g+b); } void set(struct xid_t *xid) @@ -276,6 +276,14 @@ struct xid_t { return sizeof(formatID)+sizeof(gtrid_length)+sizeof(bqual_length)+ gtrid_length+bqual_length; } + byte *key() + { + return (byte *)>rid_length; + } + uint key_length() + { + return sizeof(gtrid_length)+sizeof(bqual_length)+gtrid_length+bqual_length; + } }; typedef struct xid_t XID; |