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
Free external tables [CORE961] #1364
Comments
Modified by: Maxim (paratruper)description: Firebird don't free external tables (files) after end transaction, where they was uses. => Firebird don't free external tables (files) after end transaction, where they was uses. |
Modified by: @dyemanovassignee: Vlad Horsun [ hvlad ] |
Commented by: Fergus McDonald (fergusm) This would make external tables far more useful, particularly if you're using them as a way to import external data.. for example, if you want some other process ont he server to create the file, and then have firebird access it via external table. |
Commented by: @hvlad External table's file will be closed when relation is not used by the engine. |
Modified by: @hvladstatus: Open [ 1 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 2.1 [ 10041 ] |
Modified by: @pcisarissuetype: Task [ 3 ] => Improvement [ 4 ] |
Commented by: Robert Gilland (robert.gilland_basx.com.au) The external file is not being released. steps to reproduce 1. Create External file result windows error The process cannot access the file because it is being used by another process This task should mean when the external table is not being accessed there should be no file handle open on it. But Using Firebird 2.1 beta to test with |
Commented by: @hvlad Read coment above - "External table's file will be closed when relation is not used by the engine". And this is worked as written. And don't post the same comment in two tickets, please |
Commented by: Robert Gilland (robert.gilland_basx.com.au) No one is using the external file because the stored procedure is finished it's task. So then how can I delete the original external file? |
Commented by: @hvlad When you execute procedure first time engine reads it metadata from disk, compiles BLR into execution tree and remembers (cached) this info as compiled request. This compiled request remains in metadata cache until shutdown or drop\alter procedure. Therefore this request didn't release its interest in used resources (tables, indexes, procedures etc) and engine don't closed external table's file. If you would work with external tables not via procedures, engine (since v2.1) will close external table's file as soon as all interested requests are closed by your application. So as workaround you may use EXECUTE BLOCK instead of stored procedures for work with external tables in v2.1. If you did this report at beta1 stage i sure we would fix it at that time. |
Modified by: @pcisarWorkflow: jira [ 11266 ] => Firebird [ 15359 ] |
Modified by: @pavel-zotovQA Status: No test |
Submitted by: Maxim (paratruper)
Relate to CORE132
Is related to QA58
Jira_subtask_outward CORE1647
Votes: 1
Firebird don't free external tables (files) after end transaction, where they was uses.
I need features, where firebird unlock external tables (files) after commit transaction which they was uses.
Thank you.
Commits: b3dcfed
The text was updated successfully, but these errors were encountered: