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
54b7e6e3
Commit
54b7e6e3
authored
Dec 02, 2005
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-merge1-5.0
parents
68a20f3e
b7d7f78f
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
147 additions
and
16 deletions
+147
-16
mysql-test/r/sp.result
mysql-test/r/sp.result
+29
-0
mysql-test/r/update.result
mysql-test/r/update.result
+13
-0
mysql-test/t/query_cache.test
mysql-test/t/query_cache.test
+0
-2
mysql-test/t/sp.test
mysql-test/t/sp.test
+45
-0
mysql-test/t/update.test
mysql-test/t/update.test
+17
-0
ndb/src/kernel/blocks/backup/Backup.cpp
ndb/src/kernel/blocks/backup/Backup.cpp
+10
-5
sql/sp_pcontext.cc
sql/sp_pcontext.cc
+2
-2
sql/sp_pcontext.h
sql/sp_pcontext.h
+17
-0
sql/sql_update.cc
sql/sql_update.cc
+7
-6
sql/sql_yacc.yy
sql/sql_yacc.yy
+7
-1
No files found.
mysql-test/r/sp.result
View file @
54b7e6e3
...
@@ -4070,4 +4070,33 @@ a
...
@@ -4070,4 +4070,33 @@ a
3
3
drop procedure bug14304|
drop procedure bug14304|
drop table t3, t4|
drop table t3, t4|
drop procedure if exists bug14376|
create procedure bug14376()
begin
declare x int default x;
end|
call bug14376()|
ERROR 42S22: Unknown column 'x' in 'field list'
drop procedure bug14376|
create procedure bug14376()
begin
declare x int default 42;
begin
declare x int default x;
select x;
end;
end|
call bug14376()|
x
42
drop procedure bug14376|
create procedure bug14376(x int)
begin
declare x int default x;
select x;
end|
call bug14376(4711)|
x
4711
drop procedure bug14376|
drop table t1,t2;
drop table t1,t2;
mysql-test/r/update.result
View file @
54b7e6e3
...
@@ -345,3 +345,16 @@ f1
...
@@ -345,3 +345,16 @@ f1
2000-01-01
2000-01-01
2002-02-02
2002-02-02
drop table t1;
drop table t1;
create table t1 (f1 int);
create table t2 (f2 int);
insert into t1 values(1),(2);
insert into t2 values(1),(1);
update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
affected rows: 3
info: Rows matched: 3 Changed: 3 Warnings: 0
update t2 set f2=1;
update t1 set f1=1 where f1=3;
update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
affected rows: 3
info: Rows matched: 3 Changed: 3 Warnings: 0
drop table t1,t2;
mysql-test/t/query_cache.test
View file @
54b7e6e3
...
@@ -756,8 +756,6 @@ show status like "Qcache_queries_in_cache";
...
@@ -756,8 +756,6 @@ show status like "Qcache_queries_in_cache";
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
show
status
like
"Qcache_hits"
;
drop
table
t1
;
drop
table
t1
;
#
# SP cursors and selects with query cache (BUG#9715)
# SP cursors and selects with query cache (BUG#9715)
#
#
create
table
t1
(
a
int
);
create
table
t1
(
a
int
);
...
...
mysql-test/t/sp.test
View file @
54b7e6e3
...
@@ -4855,6 +4855,51 @@ call bug14304()|
...
@@ -4855,6 +4855,51 @@ call bug14304()|
drop
procedure
bug14304
|
drop
procedure
bug14304
|
drop
table
t3
,
t4
|
drop
table
t3
,
t4
|
#
# BUG#14376: MySQL crash on scoped variable (re)initialization
#
--
disable_warnings
drop
procedure
if
exists
bug14376
|
--
enable_warnings
create
procedure
bug14376
()
begin
declare
x
int
default
x
;
end
|
# Not the error we want, but that's what we got for now...
--
error
ER_BAD_FIELD_ERROR
call
bug14376
()
|
drop
procedure
bug14376
|
create
procedure
bug14376
()
begin
declare
x
int
default
42
;
begin
declare
x
int
default
x
;
select
x
;
end
;
end
|
call
bug14376
()
|
drop
procedure
bug14376
|
create
procedure
bug14376
(
x
int
)
begin
declare
x
int
default
x
;
select
x
;
end
|
call
bug14376
(
4711
)
|
drop
procedure
bug14376
|
#
#
# BUG#NNNN: New bug synopsis
# BUG#NNNN: New bug synopsis
#
#
...
...
mysql-test/t/update.test
View file @
54b7e6e3
...
@@ -270,4 +270,21 @@ insert into t1 values('2000-01-01'),('0000-00-00');
...
@@ -270,4 +270,21 @@ insert into t1 values('2000-01-01'),('0000-00-00');
update
t1
set
f1
=
'2002-02-02'
where
f1
is
null
;
update
t1
set
f1
=
'2002-02-02'
where
f1
is
null
;
select
*
from
t1
;
select
*
from
t1
;
drop
table
t1
;
drop
table
t1
;
#
# Bug#15028 Multitable update returns different numbers of matched rows
# depending on table order
create
table
t1
(
f1
int
);
create
table
t2
(
f2
int
);
insert
into
t1
values
(
1
),(
2
);
insert
into
t2
values
(
1
),(
1
);
--
enable_info
update
t1
,
t2
set
f1
=
3
,
f2
=
3
where
f1
=
f2
and
f1
=
1
;
--
disable_info
update
t2
set
f2
=
1
;
update
t1
set
f1
=
1
where
f1
=
3
;
--
enable_info
update
t2
,
t1
set
f1
=
3
,
f2
=
3
where
f1
=
f2
and
f1
=
1
;
--
disable_info
drop
table
t1
,
t2
;
# End of 4.1 tests
# End of 4.1 tests
ndb/src/kernel/blocks/backup/Backup.cpp
View file @
54b7e6e3
...
@@ -886,13 +886,17 @@ Backup::checkNodeFail(Signal* signal,
...
@@ -886,13 +886,17 @@ Backup::checkNodeFail(Signal* signal,
pos
=
&
ref
->
nodeId
-
signal
->
getDataPtr
();
pos
=
&
ref
->
nodeId
-
signal
->
getDataPtr
();
break
;
break
;
}
}
case
GSN_WAIT_GCP_REQ
:
case
GSN_DROP_TRIG_REQ
:
case
GSN_CREATE_TRIG_REQ
:
case
GSN_CREATE_TRIG_REQ
:
case
GSN_ALTER_TRIG_REQ
:
case
GSN_ALTER_TRIG_REQ
:
case
GSN_WAIT_GCP_REQ
:
ptr
.
p
->
setErrorCode
(
AbortBackupOrd
::
BackupFailureDueToNodeFail
);
return
;
case
GSN_UTIL_SEQUENCE_REQ
:
case
GSN_UTIL_SEQUENCE_REQ
:
case
GSN_UTIL_LOCK_REQ
:
case
GSN_UTIL_LOCK_REQ
:
case
GSN_DROP_TRIG_REQ
:
return
;
return
;
default:
ndbrequire
(
false
);
}
}
for
(
Uint32
i
=
0
;
(
i
=
mask
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
;
)
for
(
Uint32
i
=
0
;
(
i
=
mask
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
;
)
...
@@ -1903,7 +1907,7 @@ Backup::execBACKUP_FRAGMENT_CONF(Signal* signal)
...
@@ -1903,7 +1907,7 @@ Backup::execBACKUP_FRAGMENT_CONF(Signal* signal)
const
Uint32
nodeId
=
refToNode
(
signal
->
senderBlockRef
());
const
Uint32
nodeId
=
refToNode
(
signal
->
senderBlockRef
());
const
Uint32
noOfBytes
=
conf
->
noOfBytes
;
const
Uint32
noOfBytes
=
conf
->
noOfBytes
;
const
Uint32
noOfRecords
=
conf
->
noOfRecords
;
const
Uint32
noOfRecords
=
conf
->
noOfRecords
;
BackupRecordPtr
ptr
;
BackupRecordPtr
ptr
;
c_backupPool
.
getPtr
(
ptr
,
ptrI
);
c_backupPool
.
getPtr
(
ptr
,
ptrI
);
...
@@ -1980,7 +1984,7 @@ Backup::execBACKUP_FRAGMENT_REF(Signal* signal)
...
@@ -1980,7 +1984,7 @@ Backup::execBACKUP_FRAGMENT_REF(Signal* signal)
}
}
}
}
}
}
ndbrequire
(
false
)
;
goto
err
;
done:
done:
ptr
.
p
->
masterData
.
sendCounter
--
;
ptr
.
p
->
masterData
.
sendCounter
--
;
...
@@ -1992,7 +1996,8 @@ done:
...
@@ -1992,7 +1996,8 @@ done:
masterAbort
(
signal
,
ptr
);
masterAbort
(
signal
,
ptr
);
return
;
return
;
}
//if
}
//if
err:
AbortBackupOrd
*
ord
=
(
AbortBackupOrd
*
)
signal
->
getDataPtrSend
();
AbortBackupOrd
*
ord
=
(
AbortBackupOrd
*
)
signal
->
getDataPtrSend
();
ord
->
backupId
=
ptr
.
p
->
backupId
;
ord
->
backupId
=
ptr
.
p
->
backupId
;
ord
->
backupPtr
=
ptr
.
i
;
ord
->
backupPtr
=
ptr
.
i
;
...
...
sql/sp_pcontext.cc
View file @
54b7e6e3
...
@@ -52,7 +52,7 @@ sp_cond_check(LEX_STRING *sqlstate)
...
@@ -52,7 +52,7 @@ sp_cond_check(LEX_STRING *sqlstate)
sp_pcontext
::
sp_pcontext
(
sp_pcontext
*
prev
)
sp_pcontext
::
sp_pcontext
(
sp_pcontext
*
prev
)
:
Sql_alloc
(),
m_psubsize
(
0
),
m_csubsize
(
0
),
m_hsubsize
(
0
),
:
Sql_alloc
(),
m_psubsize
(
0
),
m_csubsize
(
0
),
m_hsubsize
(
0
),
m_handlers
(
0
),
m_parent
(
prev
)
m_handlers
(
0
),
m_parent
(
prev
)
,
m_pboundary
(
0
)
{
{
VOID
(
my_init_dynamic_array
(
&
m_pvar
,
sizeof
(
sp_pvar_t
*
),
16
,
8
));
VOID
(
my_init_dynamic_array
(
&
m_pvar
,
sizeof
(
sp_pvar_t
*
),
16
,
8
));
VOID
(
my_init_dynamic_array
(
&
m_cond
,
sizeof
(
sp_cond_type_t
*
),
16
,
8
));
VOID
(
my_init_dynamic_array
(
&
m_cond
,
sizeof
(
sp_cond_type_t
*
),
16
,
8
));
...
@@ -150,7 +150,7 @@ sp_pcontext::diff_cursors(sp_pcontext *ctx)
...
@@ -150,7 +150,7 @@ sp_pcontext::diff_cursors(sp_pcontext *ctx)
sp_pvar_t
*
sp_pvar_t
*
sp_pcontext
::
find_pvar
(
LEX_STRING
*
name
,
my_bool
scoped
)
sp_pcontext
::
find_pvar
(
LEX_STRING
*
name
,
my_bool
scoped
)
{
{
uint
i
=
m_pvar
.
elements
;
uint
i
=
m_pvar
.
elements
-
m_pboundary
;
while
(
i
--
)
while
(
i
--
)
{
{
...
...
sql/sp_pcontext.h
View file @
54b7e6e3
...
@@ -174,6 +174,16 @@ class sp_pcontext : public Sql_alloc
...
@@ -174,6 +174,16 @@ class sp_pcontext : public Sql_alloc
sp_pvar_t
*
sp_pvar_t
*
find_pvar
(
uint
offset
);
find_pvar
(
uint
offset
);
/*
Set the current scope boundary (for default values)
The argument is the number of variables to skip.
*/
inline
void
declare_var_boundary
(
uint
n
)
{
m_pboundary
=
n
;
}
//
//
// Labels
// Labels
//
//
...
@@ -282,6 +292,13 @@ private:
...
@@ -282,6 +292,13 @@ private:
uint
m_poffset
;
// Variable offset for this context
uint
m_poffset
;
// Variable offset for this context
uint
m_coffset
;
// Cursor offset for this context
uint
m_coffset
;
// Cursor offset for this context
/*
Boundary for finding variables in this context. This is the number
of variables currently "invisible" to default clauses.
This is normally 0, but will be larger during parsing of
DECLARE ... DEFAULT, to get the scope right for DEFAULT values.
*/
uint
m_pboundary
;
DYNAMIC_ARRAY
m_pvar
;
// Parameters/variables
DYNAMIC_ARRAY
m_pvar
;
// Parameters/variables
DYNAMIC_ARRAY
m_cond
;
// Conditions
DYNAMIC_ARRAY
m_cond
;
// Conditions
...
...
sql/sql_update.cc
View file @
54b7e6e3
...
@@ -1290,22 +1290,23 @@ bool multi_update::send_data(List<Item> ¬_used_values)
...
@@ -1290,22 +1290,23 @@ bool multi_update::send_data(List<Item> ¬_used_values)
int
error
;
int
error
;
TABLE
*
tmp_table
=
tmp_tables
[
offset
];
TABLE
*
tmp_table
=
tmp_tables
[
offset
];
fill_record
(
thd
,
tmp_table
->
field
+
1
,
*
values_for_table
[
offset
],
1
);
fill_record
(
thd
,
tmp_table
->
field
+
1
,
*
values_for_table
[
offset
],
1
);
found
++
;
/* Store pointer to row */
/* Store pointer to row */
memcpy
((
char
*
)
tmp_table
->
field
[
0
]
->
ptr
,
memcpy
((
char
*
)
tmp_table
->
field
[
0
]
->
ptr
,
(
char
*
)
table
->
file
->
ref
,
table
->
file
->
ref_length
);
(
char
*
)
table
->
file
->
ref
,
table
->
file
->
ref_length
);
/* Write row, ignoring duplicated updates to a row */
/* Write row, ignoring duplicated updates to a row */
if
((
error
=
tmp_table
->
file
->
write_row
(
tmp_table
->
record
[
0
]))
&&
if
(
error
=
tmp_table
->
file
->
write_row
(
tmp_table
->
record
[
0
]))
(
error
!=
HA_ERR_FOUND_DUPP_KEY
&&
error
!=
HA_ERR_FOUND_DUPP_UNIQUE
))
{
{
if
(
create_myisam_from_heap
(
thd
,
tmp_table
,
tmp_table_param
+
offset
,
if
(
error
!=
HA_ERR_FOUND_DUPP_KEY
&&
error
,
1
))
error
!=
HA_ERR_FOUND_DUPP_UNIQUE
&&
create_myisam_from_heap
(
thd
,
tmp_table
,
tmp_table_param
+
offset
,
error
,
1
))
{
{
do_update
=
0
;
do_update
=
0
;
DBUG_RETURN
(
1
);
// Not a table_is_full error
DBUG_RETURN
(
1
);
// Not a table_is_full error
}
}
}
}
else
found
++
;
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
...
...
sql/sql_yacc.yy
View file @
54b7e6e3
...
@@ -1592,7 +1592,12 @@ sp_decls:
...
@@ -1592,7 +1592,12 @@ sp_decls:
sp_decl:
sp_decl:
DECLARE_SYM sp_decl_idents type
DECLARE_SYM sp_decl_idents type
{ Lex->sphead->reset_lex(YYTHD); }
{
LEX *lex= Lex;
lex->sphead->reset_lex(YYTHD);
lex->spcont->declare_var_boundary($2);
}
sp_opt_default
sp_opt_default
{
{
LEX *lex= Lex;
LEX *lex= Lex;
...
@@ -1623,6 +1628,7 @@ sp_decl:
...
@@ -1623,6 +1628,7 @@ sp_decl:
lex->sphead->add_instr(in);
lex->sphead->add_instr(in);
ctx->set_default(off, it);
ctx->set_default(off, it);
}
}
ctx->declare_var_boundary(0);
lex->sphead->restore_lex(YYTHD);
lex->sphead->restore_lex(YYTHD);
$$.vars= $2;
$$.vars= $2;
$$.conds= $$.hndlrs= $$.curs= 0;
$$.conds= $$.hndlrs= $$.curs= 0;
...
...
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