Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
184ef91d
Commit
184ef91d
authored
Aug 31, 2002
by
monty@mashka.mysql.fi
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
b8bf46ca
b17eea55
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
432 additions
and
291 deletions
+432
-291
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-0
Build-tools/Do-compile
Build-tools/Do-compile
+49
-20
Docs/manual.texi
Docs/manual.texi
+4
-1
innobase/configure.in
innobase/configure.in
+2
-0
innobase/os/os0file.c
innobase/os/os0file.c
+25
-0
innobase/os/os0thread.c
innobase/os/os0thread.c
+20
-0
innobase/pars/lexyy.c
innobase/pars/lexyy.c
+139
-114
innobase/pars/pars0grm.c
innobase/pars/pars0grm.c
+145
-145
innobase/pars/pars0grm.y
innobase/pars/pars0grm.y
+2
-2
innobase/pars/pars0lex.l
innobase/pars/pars0lex.l
+2
-0
innobase/row/row0mysql.c
innobase/row/row0mysql.c
+9
-3
mysql-test/r/bdb-alter-table-1.result
mysql-test/r/bdb-alter-table-1.result
+4
-0
mysql-test/r/bdb-alter-table-2.result
mysql-test/r/bdb-alter-table-2.result
+4
-0
mysql-test/t/bdb-alter-table-1.test
mysql-test/t/bdb-alter-table-1.test
+12
-0
mysql-test/t/bdb-alter-table-2.test
mysql-test/t/bdb-alter-table-2.test
+3
-0
sql/ha_innobase.cc
sql/ha_innobase.cc
+3
-1
sql/sql_table.cc
sql/sql_table.cc
+8
-5
No files found.
BitKeeper/etc/logging_ok
View file @
184ef91d
...
...
@@ -28,3 +28,4 @@ serg@sergbook.mysql.com
sinisa@rhols221.adsl.netsonic.fi
zak@balfor.local
bar@bar.mysql.r18.ru
paul@teton.kitebird.com
Build-tools/Do-compile
View file @
184ef91d
...
...
@@ -2,12 +2,12 @@
use
Getopt::
Long
;
$opt_distribution
=
$opt_user
=
$opt_result
=
$opt_config_options
=
$opt_config_env
=
"";
$opt_dbd_options
=
$opt_perl_options
=
$opt_suffix
=
"";
$opt_dbd_options
=
$opt_perl_options
=
$opt_
make_options
=
$opt_
suffix
=
"";
$opt_tmp
=
$opt_version_suffix
=
"";
$opt_help
=
$opt_Information
=
$opt_delete
=
$opt_debug
=
$opt_stage
=
$opt_rsh_mail
=
$opt_no_test
=
$opt_no_perl
=
$opt_with_low_memory
=
$opt_fast_benchmark
=
$opt_static_client
=
$opt_static_server
=
$opt_static_perl
=
$opt_sur
=
$opt_with_small_disk
=
$opt_local_perl
=
$opt_tcpip
=
$opt_build_thread
=
$opt_no_mysqltest
=
$opt_use_old_distribution
=
$opt_enable_shared
=
$opt_no_crash_me
=
$opt_no_strip
=
0
;
$opt_innodb
=
$opt_bdb
=
0
;
$opt_innodb
=
$opt_bdb
=
$opt_raid
=
$opt_libwrap
=
0
;
GetOptions
("
Information
","
help
","
distribution=s
","
user=s
","
result=s
","
delete
","
no-test
","
no-mysqltest
","
perl-files=s
","
debug
","
config-options=s
","
config-env=s
","
stage=i
","
rsh-mail
","
with-low-memory
","
fast-benchmark
","
tmp=s
","
static-client
","
static-server
","
static-perl
","
no-perl
","
local-perl
","
perl-options=s
","
sur
","
with-small-disk
","
dbd-options=s
","
tcpip
","
suffix=s
","
build-thread=i
","
innodb
","
bdb
","
use-old-distribution
","
enable-shared
","
no-crash-me
","
no-strip
","
version-suffix=s
",
"
with-other-libc=s
")
||
usage
();
GetOptions
("
Information
","
help
","
distribution=s
","
user=s
","
result=s
","
delete
","
no-test
","
no-mysqltest
","
perl-files=s
","
debug
","
config-options=s
","
config-env=s
","
stage=i
","
rsh-mail
","
with-low-memory
","
fast-benchmark
","
tmp=s
","
static-client
","
static-server
","
static-perl
","
no-perl
","
local-perl
","
perl-options=s
","
make-options=s
","
sur
","
with-small-disk
","
dbd-options=s
","
tcpip
","
suffix=s
","
build-thread=i
","
innodb
","
bdb
","
raid
","
libwrap
","
use-old-distribution
","
enable-shared
","
no-crash-me
","
no-strip
","
version-suffix=s
",
"
with-other-libc=s
")
||
usage
();
usage
()
if
(
$opt_help
||
$opt_Information
);
usage
()
if
(
!
$opt_distribution
);
...
...
@@ -75,6 +75,19 @@ $ENV{"PERL5LIB"}="$pwd/$host/perl5:$pwd/$host/perl5/site_perl";
$slave_port
=
$mysql_tcp_port
+
16
;
$manager_port
=
$mysql_tcp_port
+
1
;
if
(
$opt_stage
==
0
)
{
system
("
mkdir Logs
")
if
(
!
-
d
"
Logs
");
system
("
mv
$log
${log}
-old
")
if
(
-
f
$log
);
unlink
(
$log
);
}
open
(
LOG
,"
>>
$log
")
||
abort
("
Can't open log file, error $?
");
select
LOG
;
$|
=
1
;
select
STDOUT
;
$|
=
1
;
if
(
-
x
"
$host
/bin/mysqladmin
")
{
log_system
("
$host
/bin/mysqladmin --no-defaults -u root -S
$mysql_unix_port
-s shutdown
");
...
...
@@ -97,25 +110,22 @@ if ($opt_stage == 0)
}
rm_all
("
$host
/test
");
system
("
mkdir
$host
/test
")
if
(
!
-
d
"
$host
/test
");
system
("
mkdir Logs
")
if
(
!
-
d
"
Logs
");
system
("
mv
$log
${log}
-old
")
if
(
-
f
$log
);
unlink
(
$log
);
}
open
(
LOG
,"
>>
$log
")
||
abort
("
Can't open log file, error $?
");
select
LOG
;
$|
=
1
;
select
STDOUT
;
$|
=
1
;
safe_cd
(
$host
);
if
(
$opt_stage
==
0
&&
!
$opt_use_old_distribution
)
{
safe_system
("
gunzip <
$opt_distribution
|
$tar
xf -
");
# Fix file times; This is needed because the time for files may be
# in the future
system
("
touch timestamp; find . -newer timestamp -print | xargs touch; rm -f timestamp
");
# in the future. The following is done this way to ensure that
# we don't get any errors from xargs touch
system
("
touch timestamp
");
sleep
(
2
);
system
("
touch timestamp2
");
system
("
find . -newer timestamp -print | xargs touch
");
unlink
("
timestamp
");
unlink
("
timestamp2
");
sleep
(
2
);
# Ensure that files we don't want to rebuild are newer than other files
safe_cd
(
$ver
);
...
...
@@ -149,7 +159,8 @@ if ($opt_stage <= 1)
}
if
(
$opt_with_other_libc
)
{
$opt_with_other_libc
=
"
--with-other-libc=
$opt_with_other_libc
";
$opt_with_other_libc
=
"
--with-other-libc=
$opt_with_other_libc
";
$opt_config_options
.=
"
$opt_with_other_libc
";
}
if
(
!
$opt_enable_shared
)
{
...
...
@@ -159,11 +170,19 @@ if ($opt_stage <= 1)
{
$opt_config_options
.=
"
--with-berkeley-db
"
}
if
(
$opt_raid
)
{
$opt_config_options
.=
"
--with-raid
"
}
if
(
$opt_innodb
)
{
$opt_config_options
.=
"
--with-innodb
"
}
check_system
("
$opt_config_env
./configure --prefix=/usr/local/mysql
\"
--with-comment=Official MySQL
$opt_version_suffix
binary
\"
--with-extra-charsets=complex
\"
--with-server-suffix=
$opt_version_suffix
\"
--enable-thread-safe-client --enable-local-infile
$opt_config_options
","
Thank you for choosing MySQL
");
if
(
$opt_libwrap
)
{
$opt_config_options
.=
"
--with-libwrap
"
}
check_system
("
$opt_config_env
./configure --prefix=/usr/local/mysql --with-comment=
\"
Official MySQL
$opt_version_suffix
binary
\"
--with-extra-charsets=complex --with-server-suffix=
\"
$opt_version_suffix
\"
--enable-thread-safe-client --enable-local-infile
$opt_config_options
","
Thank you for choosing MySQL
");
if
(
-
d
"
$pwd
/
$host
/include-mysql
")
{
safe_system
("
cp -r
$pwd
/
$host
/include-mysql/*
$pwd
/
$host
/
$ver
/include
");
...
...
@@ -172,8 +191,11 @@ if ($opt_stage <= 1)
if
(
$opt_stage
<=
2
)
{
my
(
$command
);
unlink
(
$opt_distribution
)
if
(
$opt_delete
&&
!
$opt_use_old_distribution
);
safe_system
("
$make
");
$command
=
$make
;
$command
.=
"
$opt_make_options
"
if
(
defined
(
$opt_make_options
)
&&
$opt_make_options
ne
"");
safe_system
(
$command
);
}
#
...
...
@@ -368,6 +390,9 @@ To set up the environment, like 'CC=cc CXX=gcc CXXFLAGS=-O3'
--dbd-options 'options'
Options for Makefile.PL when configuring msql-mysql-modules.
--make-options 'options'
Options to make after configure. (Like 'CXXLD=gcc')
--version-suffix suffix
Can be used to set a suffix (normally 'com' or '-max') for a distribution
...
...
@@ -547,13 +572,17 @@ sub rm_all
sub
kill_all
{
my
(
$pattern
)
=
@_
;
my
(
$USER
,
$BSD
,
$LINUX
,
$pscmd
,
$user
,
$pid
);
my
(
$USER
,
$BSD
,
$LINUX
,
$pscmd
,
$user
,
$pid
);
$user
=
$ENV
{'
USER
'};
$BSD
=
-
f
'
/vmunix
'
||
$ENV
{"
OS
"}
eq
"
SunOS4
";
$BSD
=
-
f
'
/vmunix
'
||
$ENV
{"
OS
"}
eq
"
SunOS4
"
||
$^O
eq
'
darwin
'
;
$LINUX
=
$^O
eq
'
linux
';
$pscmd
=
$BSD
?
"
/bin/ps -auxww
"
:
$LINUX
?
"
/bin/ps axuw
"
:
"
/bin/ps -ef
";
open
(
PS
,
"
$pscmd
|
")
||
die
"
can't run
$pscmd
: $!
";
if
(
!
open
(
PS
,
"
$pscmd
|
"))
{
print
"
Warning: Can't run
$pscmd
: $!
\n
";
exit
;
}
# Catch any errors with eval. A bad pattern, for instance.
process:
...
...
Docs/manual.texi
View file @
184ef91d
...
...
@@ -46929,11 +46929,14 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.53
@itemize @bullet
@item
Fixed a @code{BDB}-related @code{ALTER TABLE} bug with dropping a column
and shutting down immediately thereafter.
@item
Fixed problem with @code{configure ... --localstatedir=...}.
@item
Fixed problem with @code{UNSIGNED BIGINT} on AIX (again).
@item
Fixed bug in pthread_mutex_trylock() on HPUX 11.0
Fixed bug in pthread_mutex_trylock() on HPUX 11.0
.
@item
Multithreaded stress tests for InnoDB.
@end itemize
innobase/configure.in
View file @
184ef91d
...
...
@@ -89,6 +89,8 @@ case "$target_os" in
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";;
hp*)
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
aix*)
CFLAGS="$CFLAGS -DUNIV_AIX";;
irix*)
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
osf*)
...
...
innobase/os/os0file.c
View file @
184ef91d
...
...
@@ -11,6 +11,7 @@ Created 10/21/1995 Heikki Tuuri
#include "ut0mem.h"
#include "srv0srv.h"
#include "fil0fil.h"
#include "buf0buf.h"
#undef HAVE_FDATASYNC
...
...
@@ -2108,6 +2109,7 @@ os_aio_simulated_handle(
ibool
ret
;
ulint
n
;
ulint
i
;
ulint
len2
;
segment
=
os_aio_get_array_and_local_segment
(
&
array
,
global_segment
);
...
...
@@ -2263,6 +2265,29 @@ os_aio_simulated_handle(
/* Do the i/o with ordinary, synchronous i/o functions: */
if
(
slot
->
type
==
OS_FILE_WRITE
)
{
if
(
array
==
os_aio_write_array
)
{
/* Do a 'last millisecond' check that the page end
is sensible; reported page checksum errors from
Linux seem to wipe over the page end */
for
(
len2
=
0
;
len2
+
UNIV_PAGE_SIZE
<=
total_len
;
len2
+=
UNIV_PAGE_SIZE
)
{
if
(
mach_read_from_4
(
combined_buf
+
len2
+
FIL_PAGE_LSN
+
4
)
!=
mach_read_from_4
(
combined_buf
+
len2
+
UNIV_PAGE_SIZE
-
FIL_PAGE_END_LSN
+
4
))
{
ut_print_timestamp
(
stderr
);
fprintf
(
stderr
,
" InnoDB: ERROR: The page to be written seems corrupt!
\n
"
);
page_print
(
combined_buf
+
len2
);
fprintf
(
stderr
,
"InnoDB: ERROR: The page to be written seems corrupt!
\n
"
);
}
}
}
ret
=
os_file_write
(
slot
->
name
,
slot
->
file
,
combined_buf
,
slot
->
offset
,
slot
->
offset_high
,
total_len
);
}
else
{
...
...
innobase/os/os0thread.c
View file @
184ef91d
...
...
@@ -128,8 +128,28 @@ os_thread_create(
pthread_attr_init
(
&
attr
);
#ifdef UNIV_AIX
/* We must make sure a thread stack is at least 32 kB, otherwise
InnoDB might crash; we do not know if the default stack size on
AIX is always big enough. An empirical test on AIX-4.3 suggested
the size was 96 kB, though. */
ret
=
pthread_attr_setstacksize
(
&
attr
,
(
size_t
)(
PTHREAD_STACK_MIN
+
32
*
1024
));
if
(
ret
)
{
fprintf
(
stderr
,
"InnoDB: Error: pthread_attr_setstacksize returned %d
\n
"
,
ret
);
exit
(
1
);
}
#endif
ret
=
pthread_create
(
&
pthread
,
&
attr
,
start_f
,
arg
);
if
(
ret
)
{
fprintf
(
stderr
,
"InnoDB: Error: pthread_create returned %d
\n
"
,
ret
);
exit
(
1
);
}
pthread_attr_destroy
(
&
attr
);
if
(
srv_set_thread_priorities
)
{
...
...
innobase/pars/lexyy.c
View file @
184ef91d
...
...
@@ -583,8 +583,33 @@ SQL parser lexical analyzer: input file for the GNU Flex lexer generator
Created 12/14/1997 Heikki Tuuri
Published under the GPL version 2
The InnoDB parser is frozen because MySQL takes care of SQL parsing.
Therefore we normally keep the InnoDB parser C files as they are, and do
not automatically generate them from pars0grm.y and pars0lex.l.
How to make the InnoDB parser and lexer C files:
1. First do
bison -d pars0grm.y
That generates pars0grm.tab.c and pars0grm.tab.h.
2. Rename pars0grm.tab.c to pars0grm.c and pars0grm.tab.h to pars0grm.h.
3. Copy pars0grm.h also to /innobase/include
4. Do
flex pars0lex.l
That generates lex.yy.c.
5. Rename lex.yy.c to lexyy.c.
6. Remove the #include of unistd.h from about line 2500 of lexyy.c
These instructions seem to work at least with bison-1.28 and flex-2.5.4 on
Linux.
*******************************************************/
#line
11
"pars0lex.l"
#line
36
"pars0lex.l"
#define YYSTYPE que_node_t*
#include "univ.i"
...
...
@@ -603,7 +628,7 @@ Published under the GPL version 2
#define YY_INPUT(buf, result, max_size) pars_get_lex_chars(buf, &result, max_size)
#define comment 1
#line 6
07
"lex.yy.c"
#line 6
32
"lex.yy.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
...
...
@@ -754,10 +779,10 @@ YY_DECL
register
char
*
yy_cp
,
*
yy_bp
;
register
int
yy_act
;
#line
32
"pars0lex.l"
#line
57
"pars0lex.l"
#line 7
61
"lex.yy.c"
#line 7
86
"lex.yy.c"
if
(
yy_init
)
{
...
...
@@ -842,7 +867,7 @@ YY_DECL
case
1
:
YY_RULE_SETUP
#line
34
"pars0lex.l"
#line
59
"pars0lex.l"
{
yylval
=
sym_tab_add_int_lit
(
pars_sym_tab_global
,
atoi
(
yytext
));
...
...
@@ -851,7 +876,7 @@ YY_RULE_SETUP
YY_BREAK
case
2
:
YY_RULE_SETUP
#line
40
"pars0lex.l"
#line
65
"pars0lex.l"
{
ut_error
;
/* not implemented */
...
...
@@ -860,7 +885,7 @@ YY_RULE_SETUP
YY_BREAK
case
3
:
YY_RULE_SETUP
#line
46
"pars0lex.l"
#line
71
"pars0lex.l"
{
/* Remove the single quotes around the string */
...
...
@@ -872,7 +897,7 @@ YY_RULE_SETUP
YY_BREAK
case
4
:
YY_RULE_SETUP
#line
55
"pars0lex.l"
#line
80
"pars0lex.l"
{
yylval
=
sym_tab_add_null_lit
(
pars_sym_tab_global
);
...
...
@@ -881,7 +906,7 @@ YY_RULE_SETUP
YY_BREAK
case
5
:
YY_RULE_SETUP
#line
61
"pars0lex.l"
#line
86
"pars0lex.l"
{
/* Implicit cursor name */
yylval
=
sym_tab_add_str_lit
(
pars_sym_tab_global
,
...
...
@@ -891,511 +916,511 @@ YY_RULE_SETUP
YY_BREAK
case
6
:
YY_RULE_SETUP
#line
68
"pars0lex.l"
#line
93
"pars0lex.l"
{
return
(
PARS_AND_TOKEN
);
}
YY_BREAK
case
7
:
YY_RULE_SETUP
#line
72
"pars0lex.l"
#line
97
"pars0lex.l"
{
return
(
PARS_OR_TOKEN
);
}
YY_BREAK
case
8
:
YY_RULE_SETUP
#line
76
"pars0lex.l"
#line
101
"pars0lex.l"
{
return
(
PARS_NOT_TOKEN
);
}
YY_BREAK
case
9
:
YY_RULE_SETUP
#line
80
"pars0lex.l"
#line
105
"pars0lex.l"
{
return
(
PARS_PROCEDURE_TOKEN
);
}
YY_BREAK
case
10
:
YY_RULE_SETUP
#line
84
"pars0lex.l"
#line
109
"pars0lex.l"
{
return
(
PARS_IN_TOKEN
);
}
YY_BREAK
case
11
:
YY_RULE_SETUP
#line
88
"pars0lex.l"
#line
113
"pars0lex.l"
{
return
(
PARS_OUT_TOKEN
);
}
YY_BREAK
case
12
:
YY_RULE_SETUP
#line
92
"pars0lex.l"
#line
117
"pars0lex.l"
{
return
(
PARS_INT_TOKEN
);
}
YY_BREAK
case
13
:
YY_RULE_SETUP
#line
96
"pars0lex.l"
#line
121
"pars0lex.l"
{
return
(
PARS_INT_TOKEN
);
}
YY_BREAK
case
14
:
YY_RULE_SETUP
#line 1
00
"pars0lex.l"
#line 1
25
"pars0lex.l"
{
return
(
PARS_FLOAT_TOKEN
);
}
YY_BREAK
case
15
:
YY_RULE_SETUP
#line 1
04
"pars0lex.l"
#line 1
29
"pars0lex.l"
{
return
(
PARS_CHAR_TOKEN
);
}
YY_BREAK
case
16
:
YY_RULE_SETUP
#line 1
08
"pars0lex.l"
#line 1
33
"pars0lex.l"
{
return
(
PARS_IS_TOKEN
);
}
YY_BREAK
case
17
:
YY_RULE_SETUP
#line 1
12
"pars0lex.l"
#line 1
37
"pars0lex.l"
{
return
(
PARS_BEGIN_TOKEN
);
}
YY_BREAK
case
18
:
YY_RULE_SETUP
#line 1
16
"pars0lex.l"
#line 1
41
"pars0lex.l"
{
return
(
PARS_END_TOKEN
);
}
YY_BREAK
case
19
:
YY_RULE_SETUP
#line 1
20
"pars0lex.l"
#line 1
45
"pars0lex.l"
{
return
(
PARS_IF_TOKEN
);
}
YY_BREAK
case
20
:
YY_RULE_SETUP
#line 1
24
"pars0lex.l"
#line 1
49
"pars0lex.l"
{
return
(
PARS_THEN_TOKEN
);
}
YY_BREAK
case
21
:
YY_RULE_SETUP
#line 1
28
"pars0lex.l"
#line 1
53
"pars0lex.l"
{
return
(
PARS_ELSE_TOKEN
);
}
YY_BREAK
case
22
:
YY_RULE_SETUP
#line 1
32
"pars0lex.l"
#line 1
57
"pars0lex.l"
{
return
(
PARS_ELSIF_TOKEN
);
}
YY_BREAK
case
23
:
YY_RULE_SETUP
#line 1
36
"pars0lex.l"
#line 1
61
"pars0lex.l"
{
return
(
PARS_LOOP_TOKEN
);
}
YY_BREAK
case
24
:
YY_RULE_SETUP
#line 1
40
"pars0lex.l"
#line 1
65
"pars0lex.l"
{
return
(
PARS_WHILE_TOKEN
);
}
YY_BREAK
case
25
:
YY_RULE_SETUP
#line 1
44
"pars0lex.l"
#line 1
69
"pars0lex.l"
{
return
(
PARS_RETURN_TOKEN
);
}
YY_BREAK
case
26
:
YY_RULE_SETUP
#line 1
48
"pars0lex.l"
#line 1
73
"pars0lex.l"
{
return
(
PARS_SELECT_TOKEN
);
}
YY_BREAK
case
27
:
YY_RULE_SETUP
#line 1
52
"pars0lex.l"
#line 1
77
"pars0lex.l"
{
return
(
PARS_SUM_TOKEN
);
}
YY_BREAK
case
28
:
YY_RULE_SETUP
#line 1
56
"pars0lex.l"
#line 1
81
"pars0lex.l"
{
return
(
PARS_COUNT_TOKEN
);
}
YY_BREAK
case
29
:
YY_RULE_SETUP
#line 1
60
"pars0lex.l"
#line 1
85
"pars0lex.l"
{
return
(
PARS_DISTINCT_TOKEN
);
}
YY_BREAK
case
30
:
YY_RULE_SETUP
#line 1
64
"pars0lex.l"
#line 1
89
"pars0lex.l"
{
return
(
PARS_FROM_TOKEN
);
}
YY_BREAK
case
31
:
YY_RULE_SETUP
#line 1
68
"pars0lex.l"
#line 1
93
"pars0lex.l"
{
return
(
PARS_WHERE_TOKEN
);
}
YY_BREAK
case
32
:
YY_RULE_SETUP
#line 1
72
"pars0lex.l"
#line 1
97
"pars0lex.l"
{
return
(
PARS_FOR_TOKEN
);
}
YY_BREAK
case
33
:
YY_RULE_SETUP
#line
176
"pars0lex.l"
#line
201
"pars0lex.l"
{
return
(
PARS_CONSISTENT_TOKEN
);
}
YY_BREAK
case
34
:
YY_RULE_SETUP
#line
180
"pars0lex.l"
#line
205
"pars0lex.l"
{
return
(
PARS_READ_TOKEN
);
}
YY_BREAK
case
35
:
YY_RULE_SETUP
#line
184
"pars0lex.l"
#line
209
"pars0lex.l"
{
return
(
PARS_ORDER_TOKEN
);
}
YY_BREAK
case
36
:
YY_RULE_SETUP
#line
188
"pars0lex.l"
#line
213
"pars0lex.l"
{
return
(
PARS_BY_TOKEN
);
}
YY_BREAK
case
37
:
YY_RULE_SETUP
#line
192
"pars0lex.l"
#line
217
"pars0lex.l"
{
return
(
PARS_ASC_TOKEN
);
}
YY_BREAK
case
38
:
YY_RULE_SETUP
#line
196
"pars0lex.l"
#line
221
"pars0lex.l"
{
return
(
PARS_DESC_TOKEN
);
}
YY_BREAK
case
39
:
YY_RULE_SETUP
#line 2
00
"pars0lex.l"
#line 2
25
"pars0lex.l"
{
return
(
PARS_INSERT_TOKEN
);
}
YY_BREAK
case
40
:
YY_RULE_SETUP
#line 2
04
"pars0lex.l"
#line 2
29
"pars0lex.l"
{
return
(
PARS_INTO_TOKEN
);
}
YY_BREAK
case
41
:
YY_RULE_SETUP
#line 2
08
"pars0lex.l"
#line 2
33
"pars0lex.l"
{
return
(
PARS_VALUES_TOKEN
);
}
YY_BREAK
case
42
:
YY_RULE_SETUP
#line 2
12
"pars0lex.l"
#line 2
37
"pars0lex.l"
{
return
(
PARS_UPDATE_TOKEN
);
}
YY_BREAK
case
43
:
YY_RULE_SETUP
#line 2
16
"pars0lex.l"
#line 2
41
"pars0lex.l"
{
return
(
PARS_SET_TOKEN
);
}
YY_BREAK
case
44
:
YY_RULE_SETUP
#line 2
20
"pars0lex.l"
#line 2
45
"pars0lex.l"
{
return
(
PARS_DELETE_TOKEN
);
}
YY_BREAK
case
45
:
YY_RULE_SETUP
#line 2
24
"pars0lex.l"
#line 2
49
"pars0lex.l"
{
return
(
PARS_CURRENT_TOKEN
);
}
YY_BREAK
case
46
:
YY_RULE_SETUP
#line 2
28
"pars0lex.l"
#line 2
53
"pars0lex.l"
{
return
(
PARS_OF_TOKEN
);
}
YY_BREAK
case
47
:
YY_RULE_SETUP
#line 2
32
"pars0lex.l"
#line 2
57
"pars0lex.l"
{
return
(
PARS_CREATE_TOKEN
);
}
YY_BREAK
case
48
:
YY_RULE_SETUP
#line 2
36
"pars0lex.l"
#line 2
61
"pars0lex.l"
{
return
(
PARS_TABLE_TOKEN
);
}
YY_BREAK
case
49
:
YY_RULE_SETUP
#line 2
40
"pars0lex.l"
#line 2
65
"pars0lex.l"
{
return
(
PARS_INDEX_TOKEN
);
}
YY_BREAK
case
50
:
YY_RULE_SETUP
#line 2
44
"pars0lex.l"
#line 2
69
"pars0lex.l"
{
return
(
PARS_UNIQUE_TOKEN
);
}
YY_BREAK
case
51
:
YY_RULE_SETUP
#line 2
48
"pars0lex.l"
#line 2
73
"pars0lex.l"
{
return
(
PARS_CLUSTERED_TOKEN
);
}
YY_BREAK
case
52
:
YY_RULE_SETUP
#line 2
52
"pars0lex.l"
#line 2
77
"pars0lex.l"
{
return
(
PARS_DOES_NOT_FIT_IN_MEM_TOKEN
);
}
YY_BREAK
case
53
:
YY_RULE_SETUP
#line 2
56
"pars0lex.l"
#line 2
81
"pars0lex.l"
{
return
(
PARS_ON_TOKEN
);
}
YY_BREAK
case
54
:
YY_RULE_SETUP
#line 2
60
"pars0lex.l"
#line 2
85
"pars0lex.l"
{
return
(
PARS_DECLARE_TOKEN
);
}
YY_BREAK
case
55
:
YY_RULE_SETUP
#line 2
64
"pars0lex.l"
#line 2
89
"pars0lex.l"
{
return
(
PARS_CURSOR_TOKEN
);
}
YY_BREAK
case
56
:
YY_RULE_SETUP
#line 2
68
"pars0lex.l"
#line 2
93
"pars0lex.l"
{
return
(
PARS_OPEN_TOKEN
);
}
YY_BREAK
case
57
:
YY_RULE_SETUP
#line 2
72
"pars0lex.l"
#line 2
97
"pars0lex.l"
{
return
(
PARS_FETCH_TOKEN
);
}
YY_BREAK
case
58
:
YY_RULE_SETUP
#line
276
"pars0lex.l"
#line
301
"pars0lex.l"
{
return
(
PARS_CLOSE_TOKEN
);
}
YY_BREAK
case
59
:
YY_RULE_SETUP
#line
280
"pars0lex.l"
#line
305
"pars0lex.l"
{
return
(
PARS_NOTFOUND_TOKEN
);
}
YY_BREAK
case
60
:
YY_RULE_SETUP
#line
284
"pars0lex.l"
#line
309
"pars0lex.l"
{
return
(
PARS_TO_CHAR_TOKEN
);
}
YY_BREAK
case
61
:
YY_RULE_SETUP
#line
288
"pars0lex.l"
#line
313
"pars0lex.l"
{
return
(
PARS_TO_NUMBER_TOKEN
);
}
YY_BREAK
case
62
:
YY_RULE_SETUP
#line
292
"pars0lex.l"
#line
317
"pars0lex.l"
{
return
(
PARS_TO_BINARY_TOKEN
);
}
YY_BREAK
case
63
:
YY_RULE_SETUP
#line
296
"pars0lex.l"
#line
321
"pars0lex.l"
{
return
(
PARS_BINARY_TO_NUMBER_TOKEN
);
}
YY_BREAK
case
64
:
YY_RULE_SETUP
#line 3
00
"pars0lex.l"
#line 3
25
"pars0lex.l"
{
return
(
PARS_SUBSTR_TOKEN
);
}
YY_BREAK
case
65
:
YY_RULE_SETUP
#line 3
04
"pars0lex.l"
#line 3
29
"pars0lex.l"
{
return
(
PARS_REPLSTR_TOKEN
);
}
YY_BREAK
case
66
:
YY_RULE_SETUP
#line 3
08
"pars0lex.l"
#line 3
33
"pars0lex.l"
{
return
(
PARS_CONCAT_TOKEN
);
}
YY_BREAK
case
67
:
YY_RULE_SETUP
#line 3
12
"pars0lex.l"
#line 3
37
"pars0lex.l"
{
return
(
PARS_INSTR_TOKEN
);
}
YY_BREAK
case
68
:
YY_RULE_SETUP
#line 3
16
"pars0lex.l"
#line 3
41
"pars0lex.l"
{
return
(
PARS_LENGTH_TOKEN
);
}
YY_BREAK
case
69
:
YY_RULE_SETUP
#line 3
20
"pars0lex.l"
#line 3
45
"pars0lex.l"
{
return
(
PARS_SYSDATE_TOKEN
);
}
YY_BREAK
case
70
:
YY_RULE_SETUP
#line 3
24
"pars0lex.l"
#line 3
49
"pars0lex.l"
{
return
(
PARS_PRINTF_TOKEN
);
}
YY_BREAK
case
71
:
YY_RULE_SETUP
#line 3
28
"pars0lex.l"
#line 3
53
"pars0lex.l"
{
return
(
PARS_ASSERT_TOKEN
);
}
YY_BREAK
case
72
:
YY_RULE_SETUP
#line 3
32
"pars0lex.l"
#line 3
57
"pars0lex.l"
{
return
(
PARS_RND_TOKEN
);
}
YY_BREAK
case
73
:
YY_RULE_SETUP
#line 3
36
"pars0lex.l"
#line 3
61
"pars0lex.l"
{
return
(
PARS_RND_STR_TOKEN
);
}
YY_BREAK
case
74
:
YY_RULE_SETUP
#line 3
40
"pars0lex.l"
#line 3
65
"pars0lex.l"
{
return
(
PARS_ROW_PRINTF_TOKEN
);
}
YY_BREAK
case
75
:
YY_RULE_SETUP
#line 3
44
"pars0lex.l"
#line 3
69
"pars0lex.l"
{
return
(
PARS_COMMIT_TOKEN
);
}
YY_BREAK
case
76
:
YY_RULE_SETUP
#line 3
48
"pars0lex.l"
#line 3
73
"pars0lex.l"
{
return
(
PARS_ROLLBACK_TOKEN
);
}
YY_BREAK
case
77
:
YY_RULE_SETUP
#line 3
52
"pars0lex.l"
#line 3
77
"pars0lex.l"
{
return
(
PARS_WORK_TOKEN
);
}
YY_BREAK
case
78
:
YY_RULE_SETUP
#line 3
56
"pars0lex.l"
#line 3
81
"pars0lex.l"
{
yylval
=
sym_tab_add_id
(
pars_sym_tab_global
,
(
byte
*
)
yytext
,
...
...
@@ -1405,42 +1430,42 @@ YY_RULE_SETUP
YY_BREAK
case
79
:
YY_RULE_SETUP
#line 3
63
"pars0lex.l"
#line 3
88
"pars0lex.l"
{
return
(
PARS_DDOT_TOKEN
);
}
YY_BREAK
case
80
:
YY_RULE_SETUP
#line 3
67
"pars0lex.l"
#line 3
92
"pars0lex.l"
{
return
(
PARS_ASSIGN_TOKEN
);
}
YY_BREAK
case
81
:
YY_RULE_SETUP
#line 3
71
"pars0lex.l"
#line 3
96
"pars0lex.l"
{
return
(
PARS_LE_TOKEN
);
}
YY_BREAK
case
82
:
YY_RULE_SETUP
#line
375
"pars0lex.l"
#line
400
"pars0lex.l"
{
return
(
PARS_GE_TOKEN
);
}
YY_BREAK
case
83
:
YY_RULE_SETUP
#line
379
"pars0lex.l"
#line
404
"pars0lex.l"
{
return
(
PARS_NE_TOKEN
);
}
YY_BREAK
case
84
:
YY_RULE_SETUP
#line
383
"pars0lex.l"
#line
408
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1448,7 +1473,7 @@ YY_RULE_SETUP
YY_BREAK
case
85
:
YY_RULE_SETUP
#line
388
"pars0lex.l"
#line
413
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1456,7 +1481,7 @@ YY_RULE_SETUP
YY_BREAK
case
86
:
YY_RULE_SETUP
#line
393
"pars0lex.l"
#line
418
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1464,7 +1489,7 @@ YY_RULE_SETUP
YY_BREAK
case
87
:
YY_RULE_SETUP
#line
398
"pars0lex.l"
#line
423
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1472,7 +1497,7 @@ YY_RULE_SETUP
YY_BREAK
case
88
:
YY_RULE_SETUP
#line 4
03
"pars0lex.l"
#line 4
28
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1480,7 +1505,7 @@ YY_RULE_SETUP
YY_BREAK
case
89
:
YY_RULE_SETUP
#line 4
08
"pars0lex.l"
#line 4
33
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1488,7 +1513,7 @@ YY_RULE_SETUP
YY_BREAK
case
90
:
YY_RULE_SETUP
#line 4
13
"pars0lex.l"
#line 4
38
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1496,7 +1521,7 @@ YY_RULE_SETUP
YY_BREAK
case
91
:
YY_RULE_SETUP
#line 4
18
"pars0lex.l"
#line 4
43
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1504,7 +1529,7 @@ YY_RULE_SETUP
YY_BREAK
case
92
:
YY_RULE_SETUP
#line 4
23
"pars0lex.l"
#line 4
48
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1512,7 +1537,7 @@ YY_RULE_SETUP
YY_BREAK
case
93
:
YY_RULE_SETUP
#line 4
28
"pars0lex.l"
#line 4
53
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1520,7 +1545,7 @@ YY_RULE_SETUP
YY_BREAK
case
94
:
YY_RULE_SETUP
#line 4
33
"pars0lex.l"
#line 4
58
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1528,7 +1553,7 @@ YY_RULE_SETUP
YY_BREAK
case
95
:
YY_RULE_SETUP
#line 4
38
"pars0lex.l"
#line 4
63
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1536,7 +1561,7 @@ YY_RULE_SETUP
YY_BREAK
case
96
:
YY_RULE_SETUP
#line 4
43
"pars0lex.l"
#line 4
68
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1544,7 +1569,7 @@ YY_RULE_SETUP
YY_BREAK
case
97
:
YY_RULE_SETUP
#line 4
48
"pars0lex.l"
#line 4
73
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1552,7 +1577,7 @@ YY_RULE_SETUP
YY_BREAK
case
98
:
YY_RULE_SETUP
#line 4
53
"pars0lex.l"
#line 4
78
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1560,42 +1585,42 @@ YY_RULE_SETUP
YY_BREAK
case
99
:
YY_RULE_SETUP
#line 4
58
"pars0lex.l"
#line 4
83
"pars0lex.l"
BEGIN
(
comment
);
/* eat up comment */
YY_BREAK
case
100
:
YY_RULE_SETUP
#line 4
60
"pars0lex.l"
#line 4
85
"pars0lex.l"
YY_BREAK
case
101
:
YY_RULE_SETUP
#line 4
61
"pars0lex.l"
#line 4
86
"pars0lex.l"
YY_BREAK
case
102
:
YY_RULE_SETUP
#line 4
62
"pars0lex.l"
#line 4
87
"pars0lex.l"
YY_BREAK
case
103
:
YY_RULE_SETUP
#line 4
63
"pars0lex.l"
#line 4
88
"pars0lex.l"
YY_BREAK
case
104
:
YY_RULE_SETUP
#line 4
64
"pars0lex.l"
#line 4
89
"pars0lex.l"
BEGIN
(
INITIAL
);
YY_BREAK
case
105
:
YY_RULE_SETUP
#line 4
66
"pars0lex.l"
#line 4
91
"pars0lex.l"
/* eat up whitespace */
YY_BREAK
case
106
:
YY_RULE_SETUP
#line 4
69
"pars0lex.l"
#line 4
94
"pars0lex.l"
{
printf
(
"Unrecognized character: %s
\n
"
,
yytext
);
...
...
@@ -1606,10 +1631,10 @@ YY_RULE_SETUP
YY_BREAK
case
107
:
YY_RULE_SETUP
#line
477
"pars0lex.l"
#line
502
"pars0lex.l"
ECHO
;
YY_BREAK
#line 16
13
"lex.yy.c"
#line 16
38
"lex.yy.c"
case
YY_STATE_EOF
(
INITIAL
):
case
YY_STATE_EOF
(
comment
):
yyterminate
();
...
...
@@ -2176,7 +2201,7 @@ YY_BUFFER_STATE b;
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
#include<unistd.h>
#endif
#endif
...
...
@@ -2496,5 +2521,5 @@ int main()
return
0
;
}
#endif
#line
477
"pars0lex.l"
#line
502
"pars0lex.l"
innobase/pars/pars0grm.c
View file @
184ef91d
...
...
@@ -89,12 +89,10 @@
#define PARS_WORK_TOKEN 339
#define NEG 340
#line 1
0
"pars0grm.y"
#line 1
3
"pars0grm.y"
/* The value of the semantic attribute is a pointer to a query tree node
que_node_t */
#define YYSTYPE que_node_t*
#define alloca mem_alloc
#include <math.h>
...
...
@@ -105,6 +103,8 @@ que_node_t */
#include "que0que.h"
#include "row0sel.h"
#define YYSTYPE que_node_t*
/* #define __STDC__ */
int
...
...
@@ -242,22 +242,22 @@ static const short yyrhs[] = { 162,
#if YYDEBUG != 0
static
const
short
yyrline
[]
=
{
0
,
12
6
,
128
,
129
,
130
,
131
,
132
,
133
,
134
,
135
,
136
,
1
37
,
138
,
139
,
140
,
141
,
142
,
143
,
144
,
145
,
146
,
1
47
,
148
,
151
,
153
,
157
,
159
,
161
,
162
,
163
,
164
,
16
5
,
166
,
167
,
168
,
169
,
170
,
171
,
172
,
173
,
174
,
17
5
,
176
,
177
,
178
,
179
,
180
,
181
,
183
,
187
,
189
,
19
0
,
191
,
193
,
194
,
195
,
196
,
197
,
198
,
199
,
202
,
20
4
,
205
,
208
,
213
,
218
,
220
,
221
,
224
,
226
,
230
,
23
2
,
233
,
237
,
239
,
240
,
243
,
245
,
250
,
256
,
262
,
26
4
,
265
,
269
,
272
,
274
,
277
,
279
,
282
,
284
,
288
,
29
0
,
294
,
296
,
297
,
300
,
302
,
306
,
316
,
321
,
324
,
3
28
,
332
,
334
,
338
,
344
,
351
,
356
,
361
,
367
,
372
,
3
77
,
382
,
387
,
393
,
395
,
399
,
401
,
403
,
406
,
413
,
4
19
,
427
,
431
,
437
,
443
,
448
,
452
,
454
,
458
,
460
,
46
5
,
471
,
473
,
477
,
479
,
482
,
484
,
487
,
495
,
500
,
50
5
,
507
,
510
,
514
,
519
,
521
,
522
,
526
,
531
,
533
,
53
4
,
537
,
543
,
545
,
546
,
549
12
9
,
131
,
132
,
133
,
134
,
135
,
136
,
137
,
138
,
139
,
1
40
,
141
,
142
,
143
,
144
,
145
,
146
,
147
,
148
,
149
,
1
50
,
151
,
154
,
156
,
160
,
162
,
164
,
165
,
166
,
167
,
16
8
,
169
,
170
,
171
,
172
,
173
,
174
,
175
,
176
,
177
,
17
8
,
179
,
180
,
181
,
182
,
183
,
184
,
186
,
190
,
192
,
19
3
,
194
,
196
,
197
,
198
,
199
,
200
,
201
,
202
,
205
,
20
7
,
208
,
211
,
216
,
221
,
223
,
224
,
227
,
229
,
233
,
23
5
,
236
,
240
,
242
,
243
,
246
,
248
,
253
,
259
,
265
,
26
7
,
268
,
272
,
275
,
277
,
280
,
282
,
285
,
287
,
291
,
29
3
,
297
,
299
,
300
,
303
,
305
,
309
,
319
,
324
,
327
,
3
31
,
335
,
337
,
341
,
347
,
354
,
359
,
364
,
370
,
375
,
3
80
,
385
,
390
,
396
,
398
,
402
,
404
,
406
,
409
,
416
,
4
22
,
430
,
434
,
440
,
446
,
451
,
455
,
457
,
461
,
463
,
46
8
,
474
,
476
,
480
,
482
,
485
,
487
,
490
,
498
,
503
,
50
8
,
510
,
513
,
517
,
522
,
524
,
525
,
529
,
534
,
536
,
53
7
,
540
,
546
,
548
,
549
,
552
};
#endif
...
...
@@ -1122,218 +1122,218 @@ yyparse(YYPARSE_PARAM_ARG)
switch
(
yyn
)
{
case
23
:
#line 15
2
"pars0grm.y"
#line 15
5
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
24
:
#line 15
4
"pars0grm.y"
#line 15
7
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
1
],
yyvsp
[
0
]);
;
break
;}
case
25
:
#line 1
58
"pars0grm.y"
#line 1
61
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];;
break
;}
case
26
:
#line 16
0
"pars0grm.y"
#line 16
3
"pars0grm.y"
{
yyval
=
pars_func
(
yyvsp
[
-
3
],
yyvsp
[
-
1
]);
;
break
;}
case
27
:
#line 16
1
"pars0grm.y"
#line 16
4
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];;
break
;}
case
28
:
#line 16
2
"pars0grm.y"
#line 16
5
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];;
break
;}
case
29
:
#line 16
3
"pars0grm.y"
#line 16
6
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];;
break
;}
case
30
:
#line 16
4
"pars0grm.y"
#line 16
7
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];;
break
;}
case
31
:
#line 16
5
"pars0grm.y"
#line 16
8
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];;
break
;}
case
32
:
#line 16
6
"pars0grm.y"
#line 16
9
"pars0grm.y"
{
yyval
=
pars_op
(
'+'
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
33
:
#line 1
67
"pars0grm.y"
#line 1
70
"pars0grm.y"
{
yyval
=
pars_op
(
'-'
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
34
:
#line 1
68
"pars0grm.y"
#line 1
71
"pars0grm.y"
{
yyval
=
pars_op
(
'*'
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
35
:
#line 1
69
"pars0grm.y"
#line 1
72
"pars0grm.y"
{
yyval
=
pars_op
(
'/'
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
36
:
#line 17
0
"pars0grm.y"
#line 17
3
"pars0grm.y"
{
yyval
=
pars_op
(
'-'
,
yyvsp
[
0
],
NULL
);
;
break
;}
case
37
:
#line 17
1
"pars0grm.y"
#line 17
4
"pars0grm.y"
{
yyval
=
yyvsp
[
-
1
];
;
break
;}
case
38
:
#line 17
2
"pars0grm.y"
#line 17
5
"pars0grm.y"
{
yyval
=
pars_op
(
'='
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
39
:
#line 17
3
"pars0grm.y"
#line 17
6
"pars0grm.y"
{
yyval
=
pars_op
(
'<'
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
40
:
#line 17
4
"pars0grm.y"
#line 17
7
"pars0grm.y"
{
yyval
=
pars_op
(
'>'
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
41
:
#line 17
5
"pars0grm.y"
#line 17
8
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_GE_TOKEN
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
42
:
#line 17
6
"pars0grm.y"
#line 17
9
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_LE_TOKEN
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
43
:
#line 1
77
"pars0grm.y"
#line 1
80
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_NE_TOKEN
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
44
:
#line 1
78
"pars0grm.y"
#line 1
81
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_AND_TOKEN
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
45
:
#line 1
79
"pars0grm.y"
#line 1
82
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_OR_TOKEN
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
46
:
#line 18
0
"pars0grm.y"
#line 18
3
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_NOT_TOKEN
,
yyvsp
[
0
],
NULL
);
;
break
;}
case
47
:
#line 18
2
"pars0grm.y"
#line 18
5
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_NOTFOUND_TOKEN
,
yyvsp
[
-
2
],
NULL
);
;
break
;}
case
48
:
#line 18
4
"pars0grm.y"
#line 18
7
"pars0grm.y"
{
yyval
=
pars_op
(
PARS_NOTFOUND_TOKEN
,
yyvsp
[
-
2
],
NULL
);
;
break
;}
case
49
:
#line 1
88
"pars0grm.y"
#line 1
91
"pars0grm.y"
{
yyval
=
&
pars_to_char_token
;
;
break
;}
case
50
:
#line 1
89
"pars0grm.y"
#line 1
92
"pars0grm.y"
{
yyval
=
&
pars_to_number_token
;
;
break
;}
case
51
:
#line 19
0
"pars0grm.y"
#line 19
3
"pars0grm.y"
{
yyval
=
&
pars_to_binary_token
;
;
break
;}
case
52
:
#line 19
2
"pars0grm.y"
#line 19
5
"pars0grm.y"
{
yyval
=
&
pars_binary_to_number_token
;
;
break
;}
case
53
:
#line 19
3
"pars0grm.y"
#line 19
6
"pars0grm.y"
{
yyval
=
&
pars_substr_token
;
;
break
;}
case
54
:
#line 19
4
"pars0grm.y"
#line 19
7
"pars0grm.y"
{
yyval
=
&
pars_concat_token
;
;
break
;}
case
55
:
#line 19
5
"pars0grm.y"
#line 19
8
"pars0grm.y"
{
yyval
=
&
pars_instr_token
;
;
break
;}
case
56
:
#line 19
6
"pars0grm.y"
#line 19
9
"pars0grm.y"
{
yyval
=
&
pars_length_token
;
;
break
;}
case
57
:
#line
197
"pars0grm.y"
#line
200
"pars0grm.y"
{
yyval
=
&
pars_sysdate_token
;
;
break
;}
case
58
:
#line
198
"pars0grm.y"
#line
201
"pars0grm.y"
{
yyval
=
&
pars_rnd_token
;
;
break
;}
case
59
:
#line
199
"pars0grm.y"
#line
202
"pars0grm.y"
{
yyval
=
&
pars_rnd_str_token
;
;
break
;}
case
63
:
#line 21
0
"pars0grm.y"
#line 21
3
"pars0grm.y"
{
yyval
=
pars_stored_procedure_call
(
yyvsp
[
-
4
]);
;
break
;}
case
64
:
#line 21
5
"pars0grm.y"
#line 21
8
"pars0grm.y"
{
yyval
=
pars_procedure_call
(
yyvsp
[
-
3
],
yyvsp
[
-
1
]);
;
break
;}
case
65
:
#line 2
19
"pars0grm.y"
#line 2
22
"pars0grm.y"
{
yyval
=
&
pars_replstr_token
;
;
break
;}
case
66
:
#line 22
0
"pars0grm.y"
#line 22
3
"pars0grm.y"
{
yyval
=
&
pars_printf_token
;
;
break
;}
case
67
:
#line 22
1
"pars0grm.y"
#line 22
4
"pars0grm.y"
{
yyval
=
&
pars_assert_token
;
;
break
;}
case
68
:
#line 22
5
"pars0grm.y"
#line 22
8
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
69
:
#line 2
27
"pars0grm.y"
#line 2
30
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
70
:
#line 23
1
"pars0grm.y"
#line 23
4
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
71
:
#line 23
2
"pars0grm.y"
#line 23
5
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
72
:
#line 23
4
"pars0grm.y"
#line 23
7
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
73
:
#line 2
38
"pars0grm.y"
#line 2
41
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
74
:
#line 2
39
"pars0grm.y"
#line 2
42
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);;
break
;}
case
75
:
#line 24
0
"pars0grm.y"
#line 24
3
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
76
:
#line 24
4
"pars0grm.y"
#line 24
7
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];
;
break
;}
case
77
:
#line 24
6
"pars0grm.y"
#line 24
9
"pars0grm.y"
{
yyval
=
pars_func
(
&
pars_count_token
,
que_node_list_add_last
(
NULL
,
sym_tab_add_int_lit
(
pars_sym_tab_global
,
1
)));
;
break
;}
case
78
:
#line 25
1
"pars0grm.y"
#line 25
4
"pars0grm.y"
{
yyval
=
pars_func
(
&
pars_count_token
,
que_node_list_add_last
(
NULL
,
pars_func
(
&
pars_distinct_token
,
...
...
@@ -1341,302 +1341,302 @@ case 78:
NULL
,
yyvsp
[
-
1
]))));
;
break
;}
case
79
:
#line 2
57
"pars0grm.y"
#line 2
60
"pars0grm.y"
{
yyval
=
pars_func
(
&
pars_sum_token
,
que_node_list_add_last
(
NULL
,
yyvsp
[
-
1
]));
;
break
;}
case
80
:
#line 26
3
"pars0grm.y"
#line 26
6
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
81
:
#line 26
4
"pars0grm.y"
#line 26
7
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
82
:
#line 26
6
"pars0grm.y"
#line 26
9
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
83
:
#line 27
0
"pars0grm.y"
#line 27
3
"pars0grm.y"
{
yyval
=
pars_select_list
(
&
pars_star_denoter
,
NULL
);
;
break
;}
case
84
:
#line 27
3
"pars0grm.y"
#line 27
6
"pars0grm.y"
{
yyval
=
pars_select_list
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
85
:
#line 27
4
"pars0grm.y"
#line 27
7
"pars0grm.y"
{
yyval
=
pars_select_list
(
yyvsp
[
0
],
NULL
);
;
break
;}
case
86
:
#line 2
78
"pars0grm.y"
#line 2
81
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
87
:
#line 2
79
"pars0grm.y"
#line 2
82
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];
;
break
;}
case
88
:
#line 28
3
"pars0grm.y"
#line 28
6
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
89
:
#line 28
5
"pars0grm.y"
#line 28
8
"pars0grm.y"
{
yyval
=
&
pars_update_token
;
;
break
;}
case
90
:
#line 2
89
"pars0grm.y"
#line 2
92
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
91
:
#line 29
1
"pars0grm.y"
#line 29
4
"pars0grm.y"
{
yyval
=
&
pars_consistent_token
;
;
break
;}
case
92
:
#line 29
5
"pars0grm.y"
#line 29
8
"pars0grm.y"
{
yyval
=
&
pars_asc_token
;
;
break
;}
case
93
:
#line 29
6
"pars0grm.y"
#line 29
9
"pars0grm.y"
{
yyval
=
&
pars_asc_token
;
;
break
;}
case
94
:
#line
297
"pars0grm.y"
#line
300
"pars0grm.y"
{
yyval
=
&
pars_desc_token
;
;
break
;}
case
95
:
#line 30
1
"pars0grm.y"
#line 30
4
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
96
:
#line 30
3
"pars0grm.y"
#line 30
6
"pars0grm.y"
{
yyval
=
pars_order_by
(
yyvsp
[
-
1
],
yyvsp
[
0
]);
;
break
;}
case
97
:
#line 31
2
"pars0grm.y"
#line 31
5
"pars0grm.y"
{
yyval
=
pars_select_statement
(
yyvsp
[
-
6
],
yyvsp
[
-
4
],
yyvsp
[
-
3
],
yyvsp
[
-
2
],
yyvsp
[
-
1
],
yyvsp
[
0
]);
;
break
;}
case
98
:
#line 3
18
"pars0grm.y"
#line 3
21
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];
;
break
;}
case
99
:
#line 32
3
"pars0grm.y"
#line 32
6
"pars0grm.y"
{
yyval
=
pars_insert_statement
(
yyvsp
[
-
4
],
yyvsp
[
-
1
],
NULL
);
;
break
;}
case
100
:
#line 32
5
"pars0grm.y"
#line 32
8
"pars0grm.y"
{
yyval
=
pars_insert_statement
(
yyvsp
[
-
1
],
NULL
,
yyvsp
[
0
]);
;
break
;}
case
101
:
#line 3
29
"pars0grm.y"
#line 3
32
"pars0grm.y"
{
yyval
=
pars_column_assignment
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
102
:
#line 33
3
"pars0grm.y"
#line 33
6
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
103
:
#line 33
5
"pars0grm.y"
#line 33
8
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
104
:
#line 34
1
"pars0grm.y"
#line 34
4
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];
;
break
;}
case
105
:
#line 3
47
"pars0grm.y"
#line 3
50
"pars0grm.y"
{
yyval
=
pars_update_statement_start
(
FALSE
,
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
106
:
#line 35
3
"pars0grm.y"
#line 35
6
"pars0grm.y"
{
yyval
=
pars_update_statement
(
yyvsp
[
-
1
],
NULL
,
yyvsp
[
0
]);
;
break
;}
case
107
:
#line 3
58
"pars0grm.y"
#line 3
61
"pars0grm.y"
{
yyval
=
pars_update_statement
(
yyvsp
[
-
1
],
yyvsp
[
0
],
NULL
);
;
break
;}
case
108
:
#line 36
3
"pars0grm.y"
#line 36
6
"pars0grm.y"
{
yyval
=
pars_update_statement_start
(
TRUE
,
yyvsp
[
0
],
NULL
);
;
break
;}
case
109
:
#line 3
69
"pars0grm.y"
#line 3
72
"pars0grm.y"
{
yyval
=
pars_update_statement
(
yyvsp
[
-
1
],
NULL
,
yyvsp
[
0
]);
;
break
;}
case
110
:
#line 37
4
"pars0grm.y"
#line 37
7
"pars0grm.y"
{
yyval
=
pars_update_statement
(
yyvsp
[
-
1
],
yyvsp
[
0
],
NULL
);
;
break
;}
case
111
:
#line 3
79
"pars0grm.y"
#line 3
82
"pars0grm.y"
{
yyval
=
pars_row_printf_statement
(
yyvsp
[
0
]);
;
break
;}
case
112
:
#line 38
4
"pars0grm.y"
#line 38
7
"pars0grm.y"
{
yyval
=
pars_assignment_statement
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
113
:
#line 39
0
"pars0grm.y"
#line 39
3
"pars0grm.y"
{
yyval
=
pars_elsif_element
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
114
:
#line 39
4
"pars0grm.y"
#line 39
7
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
115
:
#line 39
6
"pars0grm.y"
#line 39
9
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
1
],
yyvsp
[
0
]);
;
break
;}
case
116
:
#line 40
0
"pars0grm.y"
#line 40
3
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
117
:
#line 40
2
"pars0grm.y"
#line 40
5
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];
;
break
;}
case
118
:
#line 40
3
"pars0grm.y"
#line 40
6
"pars0grm.y"
{
yyval
=
yyvsp
[
0
];
;
break
;}
case
119
:
#line 41
0
"pars0grm.y"
#line 41
3
"pars0grm.y"
{
yyval
=
pars_if_statement
(
yyvsp
[
-
5
],
yyvsp
[
-
3
],
yyvsp
[
-
2
]);
;
break
;}
case
120
:
#line 41
6
"pars0grm.y"
#line 41
9
"pars0grm.y"
{
yyval
=
pars_while_statement
(
yyvsp
[
-
4
],
yyvsp
[
-
2
]);
;
break
;}
case
121
:
#line 42
4
"pars0grm.y"
#line 42
7
"pars0grm.y"
{
yyval
=
pars_for_statement
(
yyvsp
[
-
8
],
yyvsp
[
-
6
],
yyvsp
[
-
4
],
yyvsp
[
-
2
]);
;
break
;}
case
122
:
#line 4
28
"pars0grm.y"
#line 4
31
"pars0grm.y"
{
yyval
=
pars_return_statement
();
;
break
;}
case
123
:
#line 43
3
"pars0grm.y"
#line 43
6
"pars0grm.y"
{
yyval
=
pars_open_statement
(
ROW_SEL_OPEN_CURSOR
,
yyvsp
[
0
]);
;
break
;}
case
124
:
#line 4
39
"pars0grm.y"
#line 4
42
"pars0grm.y"
{
yyval
=
pars_open_statement
(
ROW_SEL_CLOSE_CURSOR
,
yyvsp
[
0
]);
;
break
;}
case
125
:
#line 44
5
"pars0grm.y"
#line 44
8
"pars0grm.y"
{
yyval
=
pars_fetch_statement
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
126
:
#line 4
49
"pars0grm.y"
#line 4
52
"pars0grm.y"
{
yyval
=
pars_column_def
(
yyvsp
[
-
1
],
yyvsp
[
0
]);
;
break
;}
case
127
:
#line 45
3
"pars0grm.y"
#line 45
6
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
128
:
#line 45
5
"pars0grm.y"
#line 45
8
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
129
:
#line 4
59
"pars0grm.y"
#line 4
62
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
130
:
#line 46
1
"pars0grm.y"
#line 46
4
"pars0grm.y"
{
yyval
=
&
pars_int_token
;
/* pass any non-NULL pointer */
;
break
;}
case
131
:
#line 4
68
"pars0grm.y"
#line 4
71
"pars0grm.y"
{
yyval
=
pars_create_table
(
yyvsp
[
-
4
],
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
132
:
#line 47
2
"pars0grm.y"
#line 47
5
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
133
:
#line 47
4
"pars0grm.y"
#line 47
7
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
134
:
#line 4
78
"pars0grm.y"
#line 4
81
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
135
:
#line 4
79
"pars0grm.y"
#line 4
82
"pars0grm.y"
{
yyval
=
&
pars_unique_token
;
;
break
;}
case
136
:
#line 48
3
"pars0grm.y"
#line 48
6
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
137
:
#line 48
4
"pars0grm.y"
#line 48
7
"pars0grm.y"
{
yyval
=
&
pars_clustered_token
;
;
break
;}
case
138
:
#line 49
2
"pars0grm.y"
#line 49
5
"pars0grm.y"
{
yyval
=
pars_create_index
(
yyvsp
[
-
8
],
yyvsp
[
-
7
],
yyvsp
[
-
5
],
yyvsp
[
-
3
],
yyvsp
[
-
1
]);
;
break
;}
case
139
:
#line
497
"pars0grm.y"
#line
500
"pars0grm.y"
{
yyval
=
pars_commit_statement
();
;
break
;}
case
140
:
#line 50
2
"pars0grm.y"
#line 50
5
"pars0grm.y"
{
yyval
=
pars_rollback_statement
();
;
break
;}
case
141
:
#line 50
6
"pars0grm.y"
#line 50
9
"pars0grm.y"
{
yyval
=
&
pars_int_token
;
;
break
;}
case
142
:
#line 5
07
"pars0grm.y"
#line 5
10
"pars0grm.y"
{
yyval
=
&
pars_char_token
;
;
break
;}
case
143
:
#line 51
2
"pars0grm.y"
#line 51
5
"pars0grm.y"
{
yyval
=
pars_parameter_declaration
(
yyvsp
[
-
2
],
PARS_INPUT
,
yyvsp
[
0
]);
;
break
;}
case
144
:
#line 51
5
"pars0grm.y"
#line 51
8
"pars0grm.y"
{
yyval
=
pars_parameter_declaration
(
yyvsp
[
-
2
],
PARS_OUTPUT
,
yyvsp
[
0
]);
;
break
;}
case
145
:
#line 52
0
"pars0grm.y"
#line 52
3
"pars0grm.y"
{
yyval
=
NULL
;
;
break
;}
case
146
:
#line 52
1
"pars0grm.y"
#line 52
4
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
NULL
,
yyvsp
[
0
]);
;
break
;}
case
147
:
#line 52
3
"pars0grm.y"
#line 52
6
"pars0grm.y"
{
yyval
=
que_node_list_add_last
(
yyvsp
[
-
2
],
yyvsp
[
0
]);
;
break
;}
case
148
:
#line 5
28
"pars0grm.y"
#line 5
31
"pars0grm.y"
{
yyval
=
pars_variable_declaration
(
yyvsp
[
-
2
],
yyvsp
[
-
1
]);
;
break
;}
case
152
:
#line 54
0
"pars0grm.y"
#line 54
3
"pars0grm.y"
{
yyval
=
pars_cursor_declaration
(
yyvsp
[
-
3
],
yyvsp
[
-
1
]);
;
break
;}
case
156
:
#line 55
6
"pars0grm.y"
#line 55
9
"pars0grm.y"
{
yyval
=
pars_procedure_definition
(
yyvsp
[
-
9
],
yyvsp
[
-
7
],
yyvsp
[
-
1
]);
;
break
;}
...
...
@@ -1866,5 +1866,5 @@ case 156:
#endif
return
1
;
}
#line 56
0
"pars0grm.y"
#line 56
3
"pars0grm.y"
innobase/pars/pars0grm.y
View file @
184ef91d
...
...
@@ -13,8 +13,6 @@ the InnoDB parser.
%{
/* The value of the semantic attribute is a pointer to a query tree node
que_node_t */
#define YYSTYPE que_node_t*
#define alloca mem_alloc
#include <math.h>
...
...
@@ -25,6 +23,8 @@ que_node_t */
#include "que0que.h"
#include "row0sel.h"
#define YYSTYPE que_node_t*
/* #define __STDC__ */
int
...
...
innobase/pars/pars0lex.l
View file @
184ef91d
...
...
@@ -26,6 +26,8 @@ How to make the InnoDB parser and lexer C files:
5. Rename lex.yy.c to lexyy.c.
6. Remove the #include of unistd.h from about line 2500 of lexyy.c
These instructions seem to work at least with bison-1.28 and flex-2.5.4 on
Linux.
*******************************************************/
...
...
innobase/row/row0mysql.c
View file @
184ef91d
...
...
@@ -1348,7 +1348,9 @@ row_create_table_for_mysql(
"InnoDB: creating an InnoDB table with the same name in another
\n
"
"InnoDB: database and moving the .frm file to the current database.
\n
"
"InnoDB: Then MySQL thinks the table exists, and DROP TABLE will
\n
"
"InnoDB: succeed.
\n
"
);
"InnoDB: succeed.
\n
"
"InnoDB: You can look further help from section 15.1 of
\n
"
"InnoDB: http://www.innodb.com/ibman.html
\n
"
);
}
trx
->
error_state
=
DB_SUCCESS
;
...
...
@@ -1867,7 +1869,9 @@ row_drop_table_for_mysql(
" InnoDB: Error: table %s does not exist in the InnoDB internal
\n
"
"InnoDB: data dictionary though MySQL is trying to drop it.
\n
"
"InnoDB: Have you copied the .frm file of the table to the
\n
"
"InnoDB: MySQL database directory from another database?
\n
"
,
"InnoDB: MySQL database directory from another database?
\n
"
"InnoDB: You can look further help from section 15.1 of
\n
"
"InnoDB: http://www.innodb.com/ibman.html
\n
"
,
name
);
goto
funct_exit
;
}
...
...
@@ -2189,7 +2193,9 @@ row_rename_table_for_mysql(
fprintf
(
stderr
,
" InnoDB: Error: table %s exists in the InnoDB internal data
\n
"
"InnoDB: dictionary though MySQL is trying rename table %s to it.
\n
"
"InnoDB: Have you deleted the .frm file and not used DROP TABLE?
\n
"
,
"InnoDB: Have you deleted the .frm file and not used DROP TABLE?
\n
"
"InnoDB: You can look further help from section 15.1 of
\n
"
"InnoDB: http://www.innodb.com/ibman.html
\n
"
,
new_name
,
old_name
);
fprintf
(
stderr
,
...
...
mysql-test/r/bdb-alter-table-1.result
0 → 100644
View file @
184ef91d
objid tablename oid test
1 t1 4 9
2 metatable 1 9
3 metaindex 1 9
mysql-test/r/bdb-alter-table-2.result
0 → 100644
View file @
184ef91d
objid tablename oid
1 t1 4
2 metatable 1
3 metaindex 1
mysql-test/t/bdb-alter-table-1.test
0 → 100644
View file @
184ef91d
--
source
include
/
have_bdb
.
inc
#
# Small basic test for ALTER TABLE bug ..
#
drop
table
if
exists
t1
;
create
table
t1
(
objid
BIGINT
not
null
,
tablename
varchar
(
64
),
oid
BIGINT
not
null
,
test
BIGINT
,
PRIMARY
KEY
(
objid
),
UNIQUE
(
tablename
))
type
=
BDB
;
insert
into
t1
values
(
1
,
't1'
,
4
,
9
);
insert
into
t1
values
(
2
,
'metatable'
,
1
,
9
);
insert
into
t1
values
(
3
,
'metaindex'
,
1
,
9
);
select
*
from
t1
;
alter
table
t1
drop
column
test
;
mysql-test/t/bdb-alter-table-2.test
0 → 100644
View file @
184ef91d
--
source
include
/
have_bdb
.
inc
select
*
from
t1
;
drop
table
t1
;
\ No newline at end of file
sql/ha_innobase.cc
View file @
184ef91d
...
...
@@ -971,7 +971,9 @@ Cannot find table %s from the internal data dictionary\n\
of InnoDB though the .frm file for the table exists. Maybe you
\n
\
have deleted and recreated InnoDB data files but have forgotten
\n
\
to delete the corresponding .frm files of InnoDB tables, or you
\n
\
have moved .frm files to another database?"
,
have moved .frm files to another database?
\n
\
Look from section 15.1 of http://www.innodb.com/ibman.html
\n
\
how you can resolve the problem.
\n
"
,
norm_name
);
free_share
(
share
);
...
...
sql/sql_table.cc
View file @
184ef91d
...
...
@@ -1665,11 +1665,6 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
VOID
(
pthread_cond_broadcast
(
&
COND_refresh
));
goto
err
;
}
#ifdef HAVE_BERKELEY_DB
extern
bool
berkeley_flush_logs
(
void
);
if
(
old_db_type
==
DB_TYPE_BERKELEY_DB
&&
berkeley_flush_logs
())
goto
err
;
#endif
thd
->
proc_info
=
"end"
;
mysql_update_log
.
write
(
thd
,
thd
->
query
,
thd
->
query_length
);
if
(
mysql_bin_log
.
is_open
())
...
...
@@ -1679,6 +1674,14 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
}
VOID
(
pthread_cond_broadcast
(
&
COND_refresh
));
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
#ifdef HAVE_BERKELEY_DB
extern
bool
berkeley_flush_logs
(
void
);
if
(
old_db_type
==
DB_TYPE_BERKELEY_DB
)
{
(
void
)
berkeley_flush_logs
();
table
=
open_ltable
(
thd
,
table_list
,
TL_READ
);
}
#endif
end_temporary:
sprintf
(
tmp_name
,
ER
(
ER_INSERT_INFO
),(
ulong
)
(
copied
+
deleted
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment