-
Notifications
You must be signed in to change notification settings - Fork 111
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
feat: enable transactional connection state as an opt-in #3326
base: transactional-connection-state
Are you sure you want to change the base?
feat: enable transactional connection state as an opt-in #3326
Commits on Sep 10, 2024
-
refactor: add internal data structures for transactional connection s…
…tate This change adds internal data structures that can be used for transactional connection state. These data structures also reduces the amount of code that is needed for each connection property that is added. Connection properties are currently represented as actual variables in the ConnectionImpl class. These new data structures removes the need for that. Only the connection property retryAbortsInternally is refactored to use the new data structure. All other connection properties will be refactored in a following change, in order to keep each change as small as possible. The data structure supports both transactional and non-transactional connection state. Transactional state is disabled in the current version in order to be consistent with the current behavior. It will be enabled in a later change when all connection properties have been refactored to use the new data structure.
Configuration menu - View commit details
-
Copy full SHA for 0c61487 - Browse repository at this point
Copy the full SHA 0c61487View commit details -
refactor: replace individual variables with ConnectionProperty
Replace individual variables in ConnectionOptions and ConnectionImpl with references to ConnectionProperties. This reduces the amount of code bloat, especially in ConnectionOptions, as all connection property parsing is now handled by the ConnectionState class in a generic way. This setup also reduces the amount of code that is needed to add a new connection property, as there is only one source of truth: the list of properties in the ConnectionProperties class. Following steps that will reduce the amount of code bloat further are: 1. Replace all the regular expressions for SET and SHOW statements with a simple token-based parser. 2. Cleaning up ConnectionOptions further by removing the duplicate list of ConnectionProperties there. These can be removed once the JDBC driver has been updated to use the new list of properties.
Configuration menu - View commit details
-
Copy full SHA for aec3020 - Browse repository at this point
Copy the full SHA aec3020View commit details -
refactor: add internal data structures for transactional connection s…
…tate This change adds internal data structures that can be used for transactional connection state. These data structures also reduces the amount of code that is needed for each connection property that is added. Connection properties are currently represented as actual variables in the ConnectionImpl class. These new data structures removes the need for that. Only the connection property retryAbortsInternally is refactored to use the new data structure. All other connection properties will be refactored in a following change, in order to keep each change as small as possible. The data structure supports both transactional and non-transactional connection state. Transactional state is disabled in the current version in order to be consistent with the current behavior. It will be enabled in a later change when all connection properties have been refactored to use the new data structure.
Configuration menu - View commit details
-
Copy full SHA for a8735bc - Browse repository at this point
Copy the full SHA a8735bcView commit details -
refactor: replace individual variables with ConnectionProperty
Replace individual variables in ConnectionOptions and ConnectionImpl with references to ConnectionProperties. This reduces the amount of code bloat, especially in ConnectionOptions, as all connection property parsing is now handled by the ConnectionState class in a generic way. This setup also reduces the amount of code that is needed to add a new connection property, as there is only one source of truth: the list of properties in the ConnectionProperties class. Following steps that will reduce the amount of code bloat further are: 1. Replace all the regular expressions for SET and SHOW statements with a simple token-based parser. 2. Cleaning up ConnectionOptions further by removing the duplicate list of ConnectionProperties there. These can be removed once the JDBC driver has been updated to use the new list of properties.
Configuration menu - View commit details
-
Copy full SHA for d15c079 - Browse repository at this point
Copy the full SHA d15c079View commit details -
feat: enable transactional connection state as an opt-in
This change enables transactional connection state for the Connection API. It can be enabled by default for PostgreSQL-dialect databases using a system property, and is always an opt-in for GoogleSQL-dialect databases. Transactional connection state can be enabled for any database connection with the `connection_state_type` connection STARTUP property.
Configuration menu - View commit details
-
Copy full SHA for b74abca - Browse repository at this point
Copy the full SHA b74abcaView commit details
Commits on Sep 16, 2024
-
Merge branch 'transactional-connection-state' into enable-transaction…
…al-connection-state
Configuration menu - View commit details
-
Copy full SHA for 75fc580 - Browse repository at this point
Copy the full SHA 75fc580View commit details -
Configuration menu - View commit details
-
Copy full SHA for a4467d0 - Browse repository at this point
Copy the full SHA a4467d0View commit details