Skip to content

Add AUTO RELEASE TEMP BLOBID transaction option#8323

Merged
ilya071294 merged 6 commits intoFirebirdSQL:masterfrom
red-soft-ru:fb_m_auto_release_temp_blobid
Nov 25, 2024
Merged

Add AUTO RELEASE TEMP BLOBID transaction option#8323
ilya071294 merged 6 commits intoFirebirdSQL:masterfrom
red-soft-ru:fb_m_auto_release_temp_blobid

Conversation

@ilya071294
Copy link
Copy Markdown
Contributor

It makes the transaction release temporary ID of user BLOB just after its materialization. It's useful for massive insertions of records with user-defined BLOBs because it eliminates the memory overhead caused by creating and keeping temporary IDs until the transaction ends. This option is used during the database restore.

It makes the transaction release temporary ID of user BLOB just after its materialization. It's useful for massive insertions of records with user-defined BLOBs because it eliminates the memory overhead caused by creating and keeping temporary IDs until the transaction ends. This option is used during the database restore.
@dyemanov dyemanov requested a review from hvlad November 21, 2024 16:29
Comment thread src/dsql/parse.y
Comment thread src/burp/restore.epp Outdated
Comment thread doc/sql.extensions/README.set_transaction.txt
Comment thread src/dsql/parse.y Outdated
Comment thread src/common/ParserTokens.h
Comment thread doc/sql.extensions/README.set_transaction.txt Outdated
@ilya071294 ilya071294 requested a review from hvlad November 23, 2024 13:19
Comment thread src/burp/restore.epp Outdated
Comment thread src/burp/BurpTasks.cpp Outdated
@ilya071294 ilya071294 merged commit babd741 into FirebirdSQL:master Nov 25, 2024
@ilya071294 ilya071294 deleted the fb_m_auto_release_temp_blobid branch November 25, 2024 08:32
ilya071294 added a commit that referenced this pull request Nov 25, 2024
…#8323)

* Add AUTO RELEASE TEMP BLOBID transaction option

It makes the transaction release temporary ID of user BLOB just after its materialization. It's useful for massive insertions of records with user-defined BLOBs because it eliminates the memory overhead caused by creating and keeping temporary IDs until the transaction ends. This option is used during the database restore.

* Place tokens in the correct sections

* Avoid repeated attempts to start a transaction with options that are not supported by the target server

* Correct AUTO RELEASE TEMP BLOBID description

* Check bad_tpb_form error for more reliable detection of unsupported transaction options

* Do not use unsupported options for transactions of parallel workers performing RestoreRelationTask
@ilya071294 ilya071294 self-assigned this Nov 25, 2024
@pavel-zotov
Copy link
Copy Markdown

::: QA notes :::

  1. Test verifies only syntax extension of SET TRANSACTION, i.e. ability to use 'AUTO RELEASE TEMP BLOBID' clause.
    Handling with temporary BLOBID can not be tested in ISQL and will be checked when firebird-driver will support this.
  2. Presense of mon$transactions.mon$auto_release_temp_blobid column not checked: FB 5.x currently missed it.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants