feat(FIR-46457): Add full transaction support #471
                
     Merged
            
            
          
  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.
  
    
  
    


This pull request introduces support for transaction management in the Firebolt database connection, including autocommit mode, explicit transaction control (begin, commit, rollback), and correct propagation of transaction state via HTTP headers. It also refactors how transaction-related parameters are handled and ensures thread safety for transaction operations. Additionally, some code cleanup and simplification around parameter parsing and header handling have been performed.
Design decisions:
Transaction Management Enhancements:
_transaction_id,_transaction_sequence_id) and autocommit mode toConnectionandBaseConnection, with new methods for starting, committing, and rolling back transactions. The connection now manages transaction state based on HTTP response headers and propagates transaction parameters in outgoing requests.trio.Lockto ensure only one transaction operation is in progress at a time.Parameter and Header Handling Refactor:
base_cursor.pyand reused them in connection and cursor logic.Cursor and Query Execution Updates:
Constants and Utility Updates:
These changes collectively enable robust transaction handling for async Firebolt connections and lay the groundwork for future enhancements around transactional consistency and error handling.