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

Add AUTO RELEASE TEMP BLOBID transaction option #8323

Merged

Conversation

ilya071294
Copy link
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
src/burp/restore.epp Outdated Show resolved Hide resolved
src/dsql/parse.y Outdated Show resolved Hide resolved
src/common/ParserTokens.h Show resolved Hide resolved
doc/sql.extensions/README.set_transaction.txt Outdated Show resolved Hide resolved
src/burp/restore.epp Outdated Show resolved Hide resolved
src/burp/BurpTasks.cpp Outdated Show resolved Hide resolved
@ilya071294 ilya071294 merged commit babd741 into FirebirdSQL:master Nov 25, 2024
23 of 24 checks passed
@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

::: 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.

4 participants