mariadb/sql/sql_bootstrap.h
Sergei Golubchik fe7c2aaeea MDEV-3816 init-file stops getting executed if a long enough line is encountered; on a debug version, assertion `! is_set() || can_overwrite_status' fails
backport improved bootstrap error handling from 5.6

Was:
  revno: 3768.1.1
  committer: Christopher Powers <chris.powers@oracle.com>
  timestamp: Wed 2012-05-02 22:16:40 -0500
  message:
    Bug#11766342 INITIAL DB CREATION FAILS ON WINDOWS WITH AN ASSERT IN SQL_ERROR.CC
    Improved bootstrap error handling:
    - Detect and report file i/o errors
    - Report query size errors with nearest query text
2012-12-16 21:11:24 +01:00

47 lines
1.6 KiB
C

/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
#ifndef SQL_BOOTSTRAP_H
#define SQL_BOOTSTRAP_H
/**
The maximum size of a bootstrap query.
Increase this size if parsing a longer query during bootstrap is necessary.
The longest query in use depends on the documentation content,
see the file fill_help_tables.sql
*/
#define MAX_BOOTSTRAP_QUERY_SIZE 20000
/**
The maximum size of a bootstrap query, expressed in a single line.
Do not increase this size, use the multiline syntax instead.
*/
#define MAX_BOOTSTRAP_LINE_SIZE 20000
#define MAX_BOOTSTRAP_ERROR_LEN 256
#define READ_BOOTSTRAP_SUCCESS 0
#define READ_BOOTSTRAP_EOF 1
#define READ_BOOTSTRAP_ERROR 2
#define READ_BOOTSTRAP_QUERY_SIZE 3
typedef void *fgets_input_t;
typedef char * (*fgets_fn_t)(char *, size_t, fgets_input_t, int *error);
int read_bootstrap_query(char *query, int *query_length,
fgets_input_t input, fgets_fn_t fgets_fn, int *error);
#endif