Bug #29050 Creation of a legal stored procedure fails if a database is not selected prior
| Submitted: | 12 Jun 2007 13:18 | Modified: | 18 Jul 2007 19:08 |
|---|---|---|---|
| Reporter: | Harrison Fisk | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S2 (Serious) |
| Version: | 5.0.42 | OS: | Any |
| Assigned to: | Konstantin Osipov | CPU Architecture: | Any |
| Tags: | backport_050044SP1, bfsm_2007_06_21, bfsm_2007_06_28, No database selected, regression | ||
[12 Jun 2007 13:18]
Harrison Fisk
[29 Jun 2007 15:20]
Marc ALFF
See related Bug#28318
[4 Jul 2007 23:18]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/30341 ChangeSet@1.2515, 2007-07-05 03:18:23+04:00, kostja@bodhi.(none) +6 -0 A fix and a test case for Bug#29050 Creation of a legal stored procedure fails if a database is not selected prior. The problem manifested itself when a user tried to create a routine that had non-fully-qualified identifiers in its bodies and there was no current database selected. This is a regression introduced by the fix for Bug 19022: The patch for Bug 19022 changes the code to always produce a warning if we can't resolve the current database in the parser. In this case this was not necessary, since even though the produced parsed tree was incorrect, we never re-use sphead that was obtained at first parsing of CREATE PROCEDURE. The sphead that is anyhow used is always obtained through db_load_routine, and there we change the current database to sphead->m_db before calling yyparse. The idea of the fix is to resolve the current database directly using lex->sphead->m_db member when parsing a stored routine body, when such is present. This patch removes the need to reset the current database when loading a trigger or routine definition into SP cache. The redundant code will be removed in 5.1.
[5 Jul 2007 7:34]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/30349 ChangeSet@1.2515, 2007-07-05 11:34:04+04:00, kostja@bodhi.(none) +8 -0 A fix and a test case for Bug#29050 Creation of a legal stored procedure fails if a database is not selected prior. The problem manifested itself when a user tried to create a routine that had non-fully-qualified identifiers in its bodies and there was no current database selected. This is a regression introduced by the fix for Bug 19022: The patch for Bug 19022 changes the code to always produce a warning if we can't resolve the current database in the parser. In this case this was not necessary, since even though the produced parsed tree was incorrect, we never re-use sphead that was obtained at first parsing of CREATE PROCEDURE. The sphead that is anyhow used is always obtained through db_load_routine, and there we change the current database to sphead->m_db before calling yyparse. The idea of the fix is to resolve the current database directly using lex->sphead->m_db member when parsing a stored routine body, when such is present. This patch removes the need to reset the current database when loading a trigger or routine definition into SP cache. The redundant code will be removed in 5.1.
[12 Jul 2007 18:29]
Konstantin Osipov
Actually queued it into 5.0 (a small patch).
[16 Jul 2007 19:37]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/30985 ChangeSet@1.2522, 2007-07-16 23:37:02+04:00, kostja@bodhi.(none) +1 -0 Bug#29050 Creation of a legal stored procedure fails if a database is not selected prior: ensure the fix also works for information_schema tables.
[17 Jul 2007 15:29]
Bugs System
Pushed into 5.0.48
[17 Jul 2007 15:30]
Bugs System
Pushed into 5.1.21-beta
[18 Jul 2007 19:08]
Paul DuBois
Noted in 5.0.48, 5.1.21 changelog. Creation of a legal stored procedure could fail if no default database had been selected.
[7 Aug 2007 6:56]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/32178 ChangeSet@1.2490, 2007-08-07 00:54:47-06:00, tsmith@ramayana.hindu.god +8 -0 Backport fix for bug #29050, Creation of a legal stored procedure fails if a database is not selected prior
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.048 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.