diff options
author | unknown <bar@bar.intranet.mysql.r18.ru> | 2004-02-10 15:42:46 +0400 |
---|---|---|
committer | unknown <bar@bar.intranet.mysql.r18.ru> | 2004-02-10 15:42:46 +0400 |
commit | 102a9c6f50416b3faf79abd3ea360dd3b49b7513 (patch) | |
tree | 1c55fe3d1d94455f6e139c9434c12d2a2388fd8b /sql/field.h | |
parent | 2282ec0f81360b477c2dec81e25a4bdafd0bce69 (diff) | |
download | mariadb-git-102a9c6f50416b3faf79abd3ea360dd3b49b7513.tar.gz |
http://bugs.mysql.com/bug.php?id=2368
Multibyte charsets do not check that incoming data is well-formed
Diffstat (limited to 'sql/field.h')
-rw-r--r-- | sql/field.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/field.h b/sql/field.h index 9a12fd48e54..b62b7a7859e 100644 --- a/sql/field.h +++ b/sql/field.h @@ -949,6 +949,15 @@ public: void sort_string(char *buff,uint length); uint32 pack_length() const { return (uint32) (packlength+table->blob_ptr_size); } + uint32 max_data_length() const + { + switch (packlength) { + case 1: return 255; + case 2: return (uint32) 0xFFFFL; + case 3: return (uint32) 0xFFFFFF; + default: return (uint32) 0xFFFFFFFF; + } + } void reset(void) { bzero(ptr, packlength+sizeof(char*)); } void reset_fields() { bzero((char*) &value,sizeof(value)); } void store_length(uint32 number); |