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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
b2c810e8
Commit
b2c810e8
authored
Apr 24, 2006
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Plain Diff
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.1
parents
92a8da8b
5c7955bd
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
110 additions
and
6 deletions
+110
-6
config/ac-macros/misc.m4
config/ac-macros/misc.m4
+4
-1
configure.in
configure.in
+5
-0
mysql-test/r/func_op.result
mysql-test/r/func_op.result
+11
-0
mysql-test/r/view.result
mysql-test/r/view.result
+23
-0
mysql-test/t/func_op.test
mysql-test/t/func_op.test
+14
-0
mysql-test/t/view.test
mysql-test/t/view.test
+31
-0
sql/item_func.cc
sql/item_func.cc
+1
-4
sql/share/errmsg.txt
sql/share/errmsg.txt
+2
-0
sql/sql_view.cc
sql/sql_view.cc
+19
-1
No files found.
config/ac-macros/misc.m4
View file @
b2c810e8
...
...
@@ -361,7 +361,8 @@ AC_CACHE_VAL(mysql_cv_termcap_lib,
[AC_CHECK_LIB(ncurses, tgetent, mysql_cv_termcap_lib=libncurses,
[AC_CHECK_LIB(curses, tgetent, mysql_cv_termcap_lib=libcurses,
[AC_CHECK_LIB(termcap, tgetent, mysql_cv_termcap_lib=libtermcap,
mysql_cv_termcap_lib=NOT_FOUND)])])])
[AC_CHECK_LIB(tinfo, tgetent, mysql_cv_termcap_lib=libtinfo,
mysql_cv_termcap_lib=NOT_FOUND)])])])])
AC_MSG_CHECKING(for termcap functions library)
if test "$mysql_cv_termcap_lib" = "NOT_FOUND"; then
AC_MSG_ERROR([No curses/termcap library found])
...
...
@@ -369,6 +370,8 @@ elif test "$mysql_cv_termcap_lib" = "libtermcap"; then
TERMCAP_LIB=-ltermcap
elif test "$mysql_cv_termcap_lib" = "libncurses"; then
TERMCAP_LIB=-lncurses
elif test "$mysql_cv_termcap_lib" = "libtinfo"; then
TERMCAP_LIB=-ltinfo
else
TERMCAP_LIB=-lcurses
fi
...
...
configure.in
View file @
b2c810e8
...
...
@@ -775,6 +775,9 @@ AC_SUBST(WRAPLIBS)
if
test
"
$TARGET_LINUX
"
=
"true"
;
then
AC_MSG_CHECKING
([
for
atomic operations]
)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
atom_ops
=
AC_TRY_RUN
([
#include <asm/atomic.h>
...
...
@@ -810,6 +813,8 @@ int main()
if
test
-z
"
$atom_ops
"
;
then
atom_ops
=
"no"
;
fi
AC_MSG_RESULT
(
$atom_ops
)
AC_LANG_RESTORE
AC_ARG_WITH
(
pstack,
[
--with-pstack
Use the pstack backtrace library],
[
USE_PSTACK
=
$withval
]
,
...
...
mysql-test/r/func_op.result
View file @
b2c810e8
...
...
@@ -35,3 +35,14 @@ select -1 >> 0, -1 << 0;
select -1 >> 1, -1 << 1;
-1 >> 1 -1 << 1
9223372036854775807 18446744073709551614
drop table if exists t1,t2;
create table t1(a int);
create table t2(a int, b int);
insert into t1 values (1), (2), (3);
insert into t2 values (1, 7), (3, 7);
select t1.a, t2.a, t2.b, bit_count(t2.b) from t1 left join t2 on t1.a=t2.a;
a a b bit_count(t2.b)
1 1 7 3
2 NULL NULL NULL
3 3 7 3
drop table t1, t2;
mysql-test/r/view.result
View file @
b2c810e8
...
...
@@ -2600,3 +2600,26 @@ id td
5 2005-01-04
DROP VIEW v1;
DROP TABLE t1;
create table t1 (a int);
create view v1 as select * from t1;
create view v2 as select * from v1;
drop table t1;
rename table v2 to t1;
select * from v1;
ERROR HY000: `test`.`v1` contain view recursion
drop view t1, v1;
create table t1 (a int);
create function f1() returns int
begin
declare mx int;
select max(a) from t1 into mx;
return mx;
end//
create view v1 as select f1() as a;
create view v2 as select * from v1;
drop table t1;
rename table v2 to t1;
select * from v1;
ERROR HY000: Recursive stored functions and triggers are not allowed.
drop function f1;
drop view t1, v1;
mysql-test/t/func_op.test
View file @
b2c810e8
...
...
@@ -17,4 +17,18 @@ select 0 | -1, 0 ^ -1, 0 & -1;
select
-
1
>>
0
,
-
1
<<
0
;
select
-
1
>>
1
,
-
1
<<
1
;
#
# Bug 13044: wrong bit_count() results
#
--
disable_warnings
drop
table
if
exists
t1
,
t2
;
--
enable_warnings
create
table
t1
(
a
int
);
create
table
t2
(
a
int
,
b
int
);
insert
into
t1
values
(
1
),
(
2
),
(
3
);
insert
into
t2
values
(
1
,
7
),
(
3
,
7
);
select
t1
.
a
,
t2
.
a
,
t2
.
b
,
bit_count
(
t2
.
b
)
from
t1
left
join
t2
on
t1
.
a
=
t2
.
a
;
drop
table
t1
,
t2
;
# End of 4.1 tests
mysql-test/t/view.test
View file @
b2c810e8
...
...
@@ -2459,3 +2459,34 @@ SELECT * FROM v1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
DROP
VIEW
v1
;
DROP
TABLE
t1
;
#
# BUG#14308: Recursive view definitions
#
# using view only
create
table
t1
(
a
int
);
create
view
v1
as
select
*
from
t1
;
create
view
v2
as
select
*
from
v1
;
drop
table
t1
;
rename
table
v2
to
t1
;
--
error
ER_VIEW_RECURSIVE
select
*
from
v1
;
drop
view
t1
,
v1
;
# using SP function
create
table
t1
(
a
int
);
delimiter
//;
create
function
f1
()
returns
int
begin
declare
mx
int
;
select
max
(
a
)
from
t1
into
mx
;
return
mx
;
end
//
delimiter
;
//
create
view
v1
as
select
f1
()
as
a
;
create
view
v2
as
select
*
from
v1
;
drop
table
t1
;
rename
table
v2
to
t1
;
--
error
ER_SP_NO_RECURSION
select
*
from
v1
;
drop
function
f1
;
drop
view
t1
,
v1
;
sql/item_func.cc
View file @
b2c810e8
...
...
@@ -2489,11 +2489,8 @@ longlong Item_func_bit_count::val_int()
{
DBUG_ASSERT
(
fixed
==
1
);
ulonglong
value
=
(
ulonglong
)
args
[
0
]
->
val_int
();
if
(
args
[
0
]
->
null_value
)
{
null_value
=
1
;
/* purecov: inspected */
if
((
null_value
=
args
[
0
]
->
null_value
))
return
0
;
/* purecov: inspected */
}
return
(
longlong
)
my_count_bits
(
value
);
}
...
...
sql/share/errmsg.txt
View file @
b2c810e8
...
...
@@ -5836,3 +5836,5 @@ ER_WRONG_PARTITION_NAME
swe "Felaktigt partitionsnamn"
ER_MAX_PREPARED_STMT_COUNT_REACHED 42000
eng "Can't create more than max_prepared_stmt_count statements (current value: %lu)"
ER_VIEW_RECURSIVE
eng "`%-.64s`.`%-.64s` contain view recursion"
sql/sql_view.cc
View file @
b2c810e8
...
...
@@ -773,6 +773,7 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table)
SELECT_LEX
*
end
,
*
view_select
;
LEX
*
old_lex
,
*
lex
;
Query_arena
*
arena
,
backup
;
TABLE_LIST
*
top_view
=
table
->
top_table
();
int
res
;
bool
result
;
DBUG_ENTER
(
"mysql_make_view"
);
...
...
@@ -800,6 +801,24 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table)
DBUG_RETURN
(
0
);
}
/* check loop via view definition */
for
(
TABLE_LIST
*
precedent
=
table
->
referencing_view
;
precedent
;
precedent
=
precedent
->
referencing_view
)
{
if
(
precedent
->
view_name
.
length
==
table
->
table_name_length
&&
precedent
->
view_db
.
length
==
table
->
db_length
&&
my_strcasecmp
(
system_charset_info
,
precedent
->
view_name
.
str
,
table
->
table_name
)
==
0
&&
my_strcasecmp
(
system_charset_info
,
precedent
->
view_db
.
str
,
table
->
db
)
==
0
)
{
my_error
(
ER_VIEW_RECURSIVE
,
MYF
(
0
),
top_view
->
view_db
.
str
,
top_view
->
view_name
.
str
);
DBUG_RETURN
(
TRUE
);
}
}
/*
For now we assume that tables will not be changed during PS life (it
will be TRUE as far as we make new table cache).
...
...
@@ -898,7 +917,6 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table)
}
if
(
!
res
&&
!
thd
->
is_fatal_error
)
{
TABLE_LIST
*
top_view
=
table
->
top_table
();
TABLE_LIST
*
view_tables
=
lex
->
query_tables
;
TABLE_LIST
*
view_tables_tail
=
0
;
TABLE_LIST
*
tbl
;
...
...
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