summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2019-06-25 23:53:09 +0200
committerVladislav Vaintroub <wlad@mariadb.com>2019-06-25 23:53:42 +0200
commit9e0ed0fabd960097c94e94345ffd86d0af98a28d (patch)
tree1be0e47c65e52b5776eac37f9ee61fd87c931327
parent1a518aa1d297dd8bbbf1898e799bc274c9ef66ba (diff)
downloadmariadb-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.cmake2
-rw-r--r--scripts/comp_sql.c11
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);