Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

alter procedure - object is in use [CORE4016] #4347

Closed
firebird-automations opened this issue Dec 24, 2012 · 7 comments
Closed

alter procedure - object is in use [CORE4016] #4347

firebird-automations opened this issue Dec 24, 2012 · 7 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Alex Gilev (xstarter)

Duplicates CORE3108

It's not possible to alter procedure1 in transaction1 what used in another procedure2, queried in NOT read only transaction2.

How to reproduce. Open IBExpert, in the Script executive:

SET TERM ^ ;
CREATE OR ALTER PROCEDURE TestProc1
returns (TestParam numeric (15,2))
AS
BEGIN
TestParam=1;

suspend;
END ^

CREATE OR ALTER PROCEDURE TestProc2
returns (TestParam numeric (15,2))
AS
BEGIN
select TestParam
from TestProc1
into :TestParam;

suspend;
END ^

SET TERM ; ^

select * from TestProc2;

SET TERM ^ ;
ALTER PROCEDURE TestProc1
returns (TestParam numeric (15,3))
AS
BEGIN
TestParam=1;

suspend;
END ^
SET TERM ; ^

Executed well. Open another IBExpert, in SQL Editor window execute such query:
select * from TestProc2;

Now returning into the first IBExpert and trying to execute the same script, receive 3 errors like this:
lock conflict on no wait transaction.
unsuccessful metadata update.
object TESTPROC1 is in use.

Firebird 1.5.x had not such issue. Problem is critical for us because our autoupdate system for databases can not work well if users working and have write transactions.

Note: This is maybe duplicate of CORE1081, but not duplicate of CORE888.

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

I suppose you're using Classic, right? Try running the DDL script in WAIT transaction, it should work.

@firebird-automations
Copy link
Collaborator Author

Commented by: Alex Gilev (xstarter)

Yes, Classic and SuperClassic. Right now tried in WAIT transaction and it works! Thanks a lot!
Will change transactions in our autoupdate system...

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue duplicates CORE3108 [ CORE3108 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

It seems being a duplicate for CORE3108 (despite various unrelated comments posted there).

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Duplicate [ 3 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

QA Status: No test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment