mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
libmysql.c:
New function mysql_hex_string() libmysql/libmysql.c: New function mysql_hex_string()
This commit is contained in:
@ -3153,6 +3153,39 @@ void my_net_local_init(NET *net)
|
|||||||
net->max_packet_size= max(net_buffer_length, max_allowed_packet);
|
net->max_packet_size= max(net_buffer_length, max_allowed_packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
This function is used to create HEX string that you
|
||||||
|
can use in a SQL statement in of the either ways:
|
||||||
|
INSERT INTO blob_column VALUES (0xAABBCC); (any MySQL version)
|
||||||
|
INSERT INTO blob_column VALUES (X'AABBCC'); (4.1 and higher)
|
||||||
|
|
||||||
|
The string in "from" is encoded to a HEX string.
|
||||||
|
The result is placed in "to" and a terminating null byte is appended.
|
||||||
|
|
||||||
|
The string pointed to by "from" must be "length" bytes long.
|
||||||
|
You must allocate the "to" buffer to be at least length*2+1 bytes long.
|
||||||
|
Each character needs two bytes, and you need room for the terminating
|
||||||
|
null byte. When mysql_hex_string() returns, the contents of "to" will
|
||||||
|
be a null-terminated string. The return value is the length of the
|
||||||
|
encoded string, not including the terminating null character.
|
||||||
|
*/
|
||||||
|
|
||||||
|
unsigned long
|
||||||
|
mysql_hex_string(char *to, const char *from, unsigned long length)
|
||||||
|
{
|
||||||
|
char *to0= to;
|
||||||
|
const char *end;
|
||||||
|
static char hex[]= "0123456789ABCDEF";
|
||||||
|
|
||||||
|
for (end= from + length; from < end; from++)
|
||||||
|
{
|
||||||
|
*to++= hex[((unsigned char) *from) >> 4];
|
||||||
|
*to++= hex[((unsigned char) *from) & 0x0F];
|
||||||
|
}
|
||||||
|
*to= '\0';
|
||||||
|
return to-to0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Add escape characters to a string (blob?) to make it suitable for a insert
|
Add escape characters to a string (blob?) to make it suitable for a insert
|
||||||
to should at least have place for length*2+1 chars
|
to should at least have place for length*2+1 chars
|
||||||
|
Reference in New Issue
Block a user