diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2019-06-25 23:53:09 +0200 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2019-06-25 23:53:42 +0200 |
commit | 9e0ed0fabd960097c94e94345ffd86d0af98a28d (patch) | |
tree | 1be0e47c65e52b5776eac37f9ee61fd87c931327 | |
parent | 1a518aa1d297dd8bbbf1898e799bc274c9ef66ba (diff) | |
download | mariadb-git-9e0ed0fabd960097c94e94345ffd86d0af98a28d.tar.gz |
MDEV-19860 - do not produce huge strings wtih comp_sql anymore.
Limit lines to ~16K
-rw-r--r-- | cmake/create_initial_db.cmake | 2 | ||||
-rw-r--r-- | scripts/comp_sql.c | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/cmake/create_initial_db.cmake b/cmake/create_initial_db.cmake index 9d061d86711..3c42bb24ead 100644 --- a/cmake/create_initial_db.cmake +++ b/cmake/create_initial_db.cmake @@ -52,7 +52,7 @@ SET(BOOTSTRAP_COMMAND --datadir=. --default-storage-engine=MyISAM --max_allowed_packet=8M - --net_buffer_length=16K + --net_buffer_length=32K ) GET_FILENAME_COMPONENT(CWD . ABSOLUTE) diff --git a/scripts/comp_sql.c b/scripts/comp_sql.c index 748b2320f2a..5cd5642c9d0 100644 --- a/scripts/comp_sql.c +++ b/scripts/comp_sql.c @@ -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); |