Browse Source
Merge bk-internal:/home/bk/mysql-5.0-maint
Merge bk-internal:/home/bk/mysql-5.0-maint
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint Makefile.am: Auto merged client/mysql_upgrade.c: Auto merged sql/mysql_priv.h: Auto merged tests/mysql_client_test.c: Auto mergedpull/374/head
18 changed files with 910 additions and 631 deletions
-
2.bzrignore
-
3CMakeLists.txt
-
4Makefile.am
-
1client/CMakeLists.txt
-
1154client/mysql_upgrade.c
-
28client/mysqltest.c
-
0include/abi_check
-
8include/my_global.h
-
7mysql-test/lib/mtr_cases.pl
-
7mysql-test/lib/mtr_process.pl
-
0mysql-test/r/fix_priv_tabs.result
-
87mysql-test/r/mysql_upgrade.result
-
48mysql-test/t/mysql_upgrade.test
-
31scripts/CMakeLists.txt
-
17scripts/Makefile.am
-
128scripts/comp_sql.c
-
2sql/mysql_priv.h
-
14tests/mysql_client_test.c
1154
client/mysql_upgrade.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,31 @@ |
|||
# Copyright (C) 2006 MySQL AB |
|||
# |
|||
# 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, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
|||
|
|||
|
|||
ADD_EXECUTABLE(comp_sql comp_sql.c) |
|||
TARGET_LINK_LIBRARIES(comp_sql dbug mysys strings) |
|||
|
|||
# Build comp_sql - used for embedding SQL in C or C++ programs |
|||
GET_TARGET_PROPERTY(COMP_SQL_EXE comp_sql LOCATION) |
|||
|
|||
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables_sql.c |
|||
COMMAND ${COMP_SQL_EXE} |
|||
mysql_fix_privilege_tables.sql |
|||
mysql_fix_privilege_tables_sql.c |
|||
DEPENDS comp_sql ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables.sql) |
|||
|
|||
ADD_CUSTOM_TARGET(GenFixPrivs |
|||
ALL |
|||
DEPENDS ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables_sql.c) |
|||
@ -0,0 +1,128 @@ |
|||
/* Copyright (C) 2004 MySQL AB |
|||
|
|||
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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ |
|||
|
|||
/* |
|||
Written by Magnus Svensson |
|||
*/ |
|||
|
|||
/* |
|||
Converts a SQL file into a C file that can be compiled and linked |
|||
into other programs |
|||
*/ |
|||
|
|||
#include <stdarg.h> |
|||
#include <stdlib.h> |
|||
#include <stdio.h> |
|||
|
|||
FILE *in, *out; |
|||
|
|||
static void die(const char *fmt, ...) |
|||
{ |
|||
va_list args; |
|||
|
|||
/* Print the error message */ |
|||
fprintf(stderr, "FATAL ERROR: "); |
|||
if (fmt) |
|||
{ |
|||
va_start(args, fmt); |
|||
vfprintf(stderr, fmt, args); |
|||
va_end(args); |
|||
} |
|||
else |
|||
fprintf(stderr, "unknown error"); |
|||
fprintf(stderr, "\n"); |
|||
fflush(stderr); |
|||
|
|||
/* Close any open files */ |
|||
if (in) |
|||
fclose(in); |
|||
if (out) |
|||
fclose(out); |
|||
|
|||
exit(1); |
|||
} |
|||
|
|||
|
|||
int main(int argc, char *argv[]) |
|||
{ |
|||
char buff[512]; |
|||
char* infile_name= argv[1]; |
|||
char* outfile_name= argv[2]; |
|||
char* end= infile_name; |
|||
|
|||
if (argc != 3) |
|||
die("Usage: comp_sql <sql_filename> <c_filename>"); |
|||
|
|||
/* Open input and output file */ |
|||
if (!(in= fopen(infile_name, "r"))) |
|||
die("Failed to open SQL file '%s'", infile_name); |
|||
if (!(out= fopen(outfile_name, "w"))) |
|||
die("Failed to open output file '%s'", outfile_name); |
|||
|
|||
while(*end && *end != '.') |
|||
end++; |
|||
*end= 0; |
|||
fprintf(out, "const char* %s={\n\"", infile_name); |
|||
|
|||
while (fgets(buff, sizeof(buff), in)) |
|||
{ |
|||
char *curr= buff; |
|||
while (*curr) |
|||
{ |
|||
if (*curr == '\n') |
|||
{ |
|||
/* |
|||
Reached end of line, add escaped newline, escaped |
|||
backslash and a newline to outfile |
|||
*/ |
|||
fprintf(out, "\\n \"\n\""); |
|||
curr++; |
|||
} |
|||
else if (*curr == '\r') |
|||
{ |
|||
curr++; /* Skip */ |
|||
} |
|||
else |
|||
{ |
|||
if (*curr == '"') |
|||
{ |
|||
/* Needs escape */ |
|||
fputc('\\', out); |
|||
} |
|||
|
|||
fputc(*curr, out); |
|||
curr++; |
|||
} |
|||
} |
|||
if (*(curr-1) != '\n') |
|||
{ |
|||
/* |
|||
Some compilers have a max string length, |
|||
insert a newline at every 512th char in long |
|||
strings |
|||
*/ |
|||
fprintf(out, "\"\n\""); |
|||
} |
|||
} |
|||
|
|||
fprintf(out, "\\\n\"};\n"); |
|||
|
|||
fclose(in); |
|||
fclose(out); |
|||
|
|||
exit(0); |
|||
|
|||
} |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue