Identical signature for a procedure
Posted in 2011
After migrating from IDS 7.31 to 11.50, a user's own stored procedure named to_number() clashed with a new built-in routine of the same signature, producing "Identical signatures for user-defined routine" warnings; calls resolved to the built-in, breaking applications that expected the custom logic. Art Kagel explained the engine picks the routine with the lowest procid (normally the system one) and said there is no way to force selection of the user procedure. The suggested workaround was to rename the procedure (or change its parameters) and update the applications; no other fix was recorded.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Versions, Editions & End-of-Life
Hi, Recently, I've migrated from version 7.31 to version 11.50 In version 7.31, I had a procedure called to_number. In version 11.50, "to_number" is a signature of a built-in routine. I noticed that when I run the command: select to_number("123")... the built-in routine is executed, not the procedure. The question is: the database server will choose the built-in routine, always? in which cases the server will choose the procedure ? This message shows in the log when I migrated. WARNING: Identical signatures for user-defined routine to_number() (procid 12) and a built-in routine. Thanks in advance.
Hello. Did you check the sysprocedures table, looking for your original procedure? Did you find it? I don´t think so, since it´s with the same signature of the built-in routine. Doesn´t it do the same as the built in one? If not, I think you´ll have to change it´s name, or even it´s parameters, in order to differ from the built-in one. Hope it helps. Best regards. Em 26/04/2011 15:47, ROGER VILCA escreveu: > Hi, > Recently, I've migrated from version 7.31 to version 11.50 > In version 7.31, I had a procedure called to_number. In version 11.50, > "to_number" is a signature of a built-in routine. > I noticed that when I run the command: > select to_number("123")... the built-in routine is executed, not the > procedure. > > The question is: > the database server will choose the built-in routine, always? in which cases > the server will choose the procedure ? > > This message shows in the log when I migrated. > > WARNING: Identical signatures for user-defined routine to_number() (procid 12) > and a built-in routine. > > Thanks in advance. > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > -- Alexandre Marini Tecnologia da Informação - DBA msn: alexandre_marini@hotmail.com SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix Cert-Info-Mgmt_color <Cert-Info-Mgmt_color.jpg> IBM Certified System Administrator - Informix Dynamic Server V10 / V11 <http://www.iiug.org/conf/2011/iiug/>
If the signatures are identical the engine will choose the procedure with the lowest procid which will usually be the system procedure. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Tue, Apr 26, 2011 at 3:47 PM, ROGER VILCA <rvilca@luzdelsur.com.pe>wrote: > Hi, > Recently, I've migrated from version 7.31 to version 11.50 > In version 7.31, I had a procedure called to_number. In version 11.50, > "to_number" is a signature of a built-in routine. > I noticed that when I run the command: > select to_number("123")... the built-in routine is executed, not the > procedure. > > The question is: > the database server will choose the built-in routine, always? in which > cases > the server will choose the procedure ? > > This message shows in the log when I migrated. > > WARNING: Identical signatures for user-defined routine to_number() (procid > 12) > and a built-in routine. > > Thanks in advance. > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --20cf301afb3967c78b04a1e88ca6
Yes, the original procedure exists in sysprocedures table. As I said, the problem occurs after migration from 7.31 to 11.50 The sequence is: 1. We had the version 7.31 and the applications used the procedure "to_number" created by "create procedure". 2. We migrated to version 11.50. In the process of migration the log shows the messages "identical signatures..." 3. After migration, some applications had errors because the routine procedure and the built-in doesn't do the same. Can I force the engine chooses my routine (that means that created with "create procedure") ? Thanks in advance
Hi Art, Only the procedure created with "create procedure" appears in the sysprocedures with procid = 11. The built-in routine is not listed. Can I force the engine to choose the procedure, rather than built-in routine? Thanks in advance
I don't think so. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Wed, Apr 27, 2011 at 12:20 PM, ROGER VILCA <rvilca@luzdelsur.com.pe>wrote: > Hi Art, > Only the procedure created with "create procedure" appears in the > sysprocedures with procid = 11. The built-in routine is not listed. > Can I force the engine to choose the procedure, rather than built-in > routine? > > Thanks in advance > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --20cf300e4c67e16b4304a1ead263