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

EXECUTE BLOCK prepare fails [CORE4113] #4441

Closed
firebird-automations opened this issue Jun 7, 2013 · 9 comments
Closed

EXECUTE BLOCK prepare fails [CORE4113] #4441

firebird-automations opened this issue Jun 7, 2013 · 9 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Attila Molnár (e_pluribus_unum)

Is duplicated by CORE4115
Is related to QA605

Attachments:
execute block.sql
TEST.ZIP

Hi!

I get error when prepare an EXECUTE BLOCK :
"This column cannot be updated because it is derived from an SQL function or expression.
attempted update of read-only column."

sql and database files are attached

Note, when I pu t the last insert statement to first there is no error.

Commits: 81c4023 FirebirdSQL/fbt-repository@52e3cb4 FirebirdSQL/fbt-repository@1c594fa

====== Test Details ======

Confirmed for 2.5.2: error raises, text:
Statement failed, SQLSTATE = 42000
attempted update of read-only column

@firebird-automations
Copy link
Collaborator Author

Modified by: Attila Molnár (e_pluribus_unum)

Attachment: execute block.sql [ 12332 ]

Attachment: TEST.ZIP [ 12333 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

The problem is that length of the generated BLR oveflows the 64KB limit and some engine parts are not ready for that.

@firebird-automations
Copy link
Collaborator Author

Commented by: Attila Molnár (e_pluribus_unum)

Again : Note, when I pu t the last insert statement to first there is no error.
The sql text has the same length, only command order changes and the BLR in 1st case is >64k in 2nd case smaller? That is strange.

How can I avoid this?

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

v3 is not affected.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

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

resolution: Fixed [ 1 ]

Fix Version: 2.5.3 [ 10461 ]

assignee: Dmitry Yemanov [ dimitr ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

I've committed a bugfix. But generally, I'd avoid such long blocks.

The issue is not that its BLR is bigger or smaller. It's about wrapping the BLR offset over the 64KB boundary (thus becoming kinda random) and either occasionally matching some value inside the debug info table or not. In other words, it's about pure luck.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue is duplicated by CORE4115 [ CORE4115 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

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

QA Status: Done successfully

Test Details: Confirmed for 2.5.2: error raises, text:
Statement failed, SQLSTATE = 42000
attempted update of read-only column

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Link: This issue is related to QA605 [ QA605 ]

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

No branches or pull requests

2 participants