Repository navigation
feat(ios): show an open transaction on every tab, with Commit and Roll Back - #3688
Merged
Merged
Conversation
datlechin
enabled auto-merge (squash)
October 20, 2026 03:12
… redial drops a transaction
…indicator # Conflicts: # apple/TableProMobile/TableProMobile/Helpers/ConnectionListRowModel.swift # apple/TableProMobile/TableProMobile/Views/ConnectedView.swift # apple/TableProMobile/TableProMobile/Views/DataBrowserView.swift # apple/TableProMobile/TableProMobileTests/BackgroundReleaseCoordinatorTests.swift # apple/TableProMobile/TableProMobileTests/ConnectionLibrary/ConnectionListRowModelTests.swift
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SessionTransactionMonitorowns the state per connection. It refreshes after every run, grid load, row write and table refresh. A session that ends clears it.DriverTransactionState.abortedTransaction. A grid write joins an aborted or autocommit-off transaction instead of sending its own BEGIN, so MySQL with autocommit off no longer commits pending work on save.TableProOracleCore: DDL closes the tracked transaction, and asks the server after a failed DDL. The macOS Oracle plugin links it.Test plan
SessionTransactionMonitorTests,ConnectionCoordinatorReconnectTests,TransactionIndicatorContentTests. Extended: PostgreSQL, MySQL and DuckDB driver tests,RowInserterTests,QueryEditorViewModelTests,ConnectionListRowModelTests,BottomSafeAreaBarLayoutTests,ConnectionManagerTests, Oracle role and session tests.WriteTransactionPolicyTests,DatabaseDriverWriteTestsandRowInserterTests(an autocommit-off session is joined, not wrapped),PostgreSQLSessionTransactionTests(INERROR is aborted; ACTIVE reads the status from when the statement was sent).verify.sh: ios (359 tests), package TableProCore and TableProOracle, build OracleDriver, lint, l10n pass.--autocommit=0: opening a table shows the bar and the list mark; Commit clears both. The iOS 18 to 26.0 bar is covered byBottomSafeAreaBarLayoutTestsonly: no older runtime is installed here.Part of #3669
Not in this PR
transaction_control; Linux buttons.EXECUTE IMMEDIATEstays untracked. MySQL Truncate and Drop confirmations do not say they commit pending work.