summaryrefslogtreecommitdiff
path: root/sql/field.h
diff options
context:
space:
mode:
authorbar@bar.intranet.mysql.r18.ru <>2004-02-10 15:42:46 +0400
committerbar@bar.intranet.mysql.r18.ru <>2004-02-10 15:42:46 +0400
commit5219fc269b61f9d1000f736763ad166cb869d8d0 (patch)
tree1c55fe3d1d94455f6e139c9434c12d2a2388fd8b /sql/field.h
parentbccca8f7cb5cb8de21e8cc76984c739fc5316ffe (diff)
downloadmariadb-git-5219fc269b61f9d1000f736763ad166cb869d8d0.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.h9
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);