mirror of
https://github.com/MariaDB/server.git
synced 2025-06-20 21:01:21 +03:00
MDEV-19860 - do not produce huge strings wtih comp_sql anymore.
Limit lines to ~16K
This commit is contained in:
@ -74,6 +74,8 @@ char *fgets_fn(char *buffer, size_t size, fgets_input_t input, int *error)
|
||||
return line;
|
||||
}
|
||||
|
||||
#define MAX_COLUMN 16000
|
||||
|
||||
static void print_query(FILE *out, const char *query)
|
||||
{
|
||||
const char *ptr= query;
|
||||
@ -82,6 +84,12 @@ static void print_query(FILE *out, const char *query)
|
||||
fprintf(out, "\"");
|
||||
while (*ptr)
|
||||
{
|
||||
if(column >= MAX_COLUMN)
|
||||
{
|
||||
/* Wrap to the next line, tabulated. */
|
||||
fprintf(out, "\"\n \"");
|
||||
column= 2;
|
||||
}
|
||||
switch(*ptr)
|
||||
{
|
||||
case '\n':
|
||||
@ -97,10 +105,11 @@ static void print_query(FILE *out, const char *query)
|
||||
break;
|
||||
case '\"':
|
||||
fprintf(out, "\\\"");
|
||||
column++;
|
||||
column+=2;
|
||||
break;
|
||||
case '\\':
|
||||
fprintf(out, "\\\\");
|
||||
column+=2;
|
||||
break;
|
||||
default:
|
||||
putc(*ptr, out);
|
||||
|
Reference in New Issue
Block a user