feat: support IDENTITY columns for auto-generated primary keys #352
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.
Adds support for using IDENTITY columns for auto-generated primary keys.
IDENTITY columns are backed by bit-reversed sequences in Spanner. This means
that IDENTITY columns produce unique non-monotonically-increasing values
that are safe to use for primary keys in Spanner.
The default
idfield and:primary_keytype in Ruby ActiveRecord aremapped to IDENTITY columns.
This feature is disabled by default, as it changes the default behavior
of
idand:primary_keyfields. These currently use a client-sidegenerated value. Client-side generated values support mutations, while
server-side generated primary key values cannot be used in combination
with mutations, as Spanner cannot use a THEN RETURN clause to return
these to Ruby ActiveRecord.
Add the following configuration value to your configuration to enable
auto-generated primary keys with IDENTITY columns:
This feature will be enabled by default in the next major version of
this provider.