summaryrefslogtreecommitdiff
path: root/sql/handler.h
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-10-05 16:38:53 +0200
committerunknown <serg@serg.mylan>2005-10-05 16:38:53 +0200
commit07172cabdf7f36cbbdad2d48c1f12d9531a452df (patch)
tree0500ae3302afa9dcf5089517738646f7a60db952 /sql/handler.h
parentef16a0416007ce940f4e9e12462b78c09797b1bd (diff)
downloadmariadb-git-07172cabdf7f36cbbdad2d48c1f12d9531a452df.tar.gz
Bug#13143 - formatID should not affect XID's uniqueness
Diffstat (limited to 'sql/handler.h')
-rw-r--r--sql/handler.h10
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 *)&gtrid_length;
+ }
+ uint key_length()
+ {
+ return sizeof(gtrid_length)+sizeof(bqual_length)+gtrid_length+bqual_length;
+ }
};
typedef struct xid_t XID;