activerecord-spanner-adapter - Class ActiveRecord::ConnectionAdapters::SpannerAdapter (v2.2.0)
Stay organized with collections
Save and categorize content based on your preferences.
Reference documentation and code samples for the activerecord-spanner-adapter class ActiveRecord::ConnectionAdapters::SpannerAdapter.
Methods
.database_exists?
def self.database_exists?(config) -> Boolean
#active?
#arel_visitor
#build_insert_sql
def build_insert_sql(insert)
#current_spanner_transaction
def current_spanner_transaction()
#default_sequence_kind
def default_sequence_kind()
Returns the value of attribute default_sequence_kind.
#default_sequence_kind=
def default_sequence_kind=(value)
Sets the attribute default_sequence_kind
#disconnect!
#initialize
def initialize(config_or_deprecated_connection, deprecated_logger = nil, deprecated_connection_options = nil, deprecated_config = nil) -> SpannerAdapter
#log
def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil, *args)
#max_identifier_length
def max_identifier_length()
#native_database_types
def native_database_types()
#next_sequence_value
def next_sequence_value(_sequence_name)
Generate next sequence number for primary key
#prefetch_primary_key?
def prefetch_primary_key?(_table_name = nil) -> Boolean
#reconnect!
#reset!
#return_value_after_insert?
def return_value_after_insert?(column) -> Boolean
#spanner_schema_cache
def spanner_schema_cache()
#supports_bulk_alter?
def supports_bulk_alter?() -> Boolean
#supports_check_constraints?
def supports_check_constraints?() -> Boolean
#supports_common_table_expressions?
def supports_common_table_expressions?() -> Boolean
#supports_explain?
def supports_explain?() -> Boolean
#supports_foreign_keys?
def supports_foreign_keys?() -> Boolean
#supports_index_sort_order?
def supports_index_sort_order?() -> Boolean
#supports_insert_conflict_target?
def supports_insert_conflict_target?() -> Boolean
#supports_insert_on_conflict?
def supports_insert_on_conflict?() -> Boolean
#supports_insert_on_duplicate_skip?
def supports_insert_on_duplicate_skip?() -> Boolean
#supports_insert_on_duplicate_update?
def supports_insert_on_duplicate_update?() -> Boolean
#supports_insert_returning?
def supports_insert_returning?() -> Boolean
#supports_multi_insert?
def supports_multi_insert?() -> Boolean
#supports_optimizer_hints?
def supports_optimizer_hints?() -> Boolean
#supports_primary_key?
def supports_primary_key?() -> Boolean
#supports_transaction_isolation?
def supports_transaction_isolation?() -> Boolean
#supports_virtual_columns?
def supports_virtual_columns?() -> Boolean
#translate_exception
def translate_exception(exception, message:, sql:, binds:)
#use_auto_increment?
def use_auto_increment?() -> Boolean
#use_client_side_id_for_mutations
def use_client_side_id_for_mutations()
Returns the value of attribute use_client_side_id_for_mutations.
#use_client_side_id_for_mutations=
def use_client_side_id_for_mutations=(value)
Sets the attribute use_client_side_id_for_mutations
#use_identity?
def use_identity?() -> Boolean
Constants
ADAPTER_NAME
NATIVE_DATABASE_TYPES
value: {
primary_key: "INT64",
parent_key: "INT64",
string: { name: "STRING", limit: "MAX" },
text: { name: "STRING", limit: "MAX" },
integer: { name: "INT64" },
bigint: { name: "INT64" },
float: { name: "FLOAT64" },
decimal: { name: "NUMERIC" },
numeric: { name: "NUMERIC" },
datetime: { name: "TIMESTAMP" },
time: { name: "TIMESTAMP" },
date: { name: "DATE" },
binary: { name: "BYTES", limit: "MAX" },
boolean: { name: "BOOL" },
json: { name: "JSON" }
}.freeze
TYPE_MAP
value: Type::TypeMap.new.tap { |m| initialize_type_map m }
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-09 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-09 UTC."],[],[],null,["# activerecord-spanner-adapter - Class ActiveRecord::ConnectionAdapters::SpannerAdapter (v2.2.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.2.0 (latest)](/ruby/docs/reference/activerecord-spanner-adapter/latest/ActiveRecord-ConnectionAdapters-SpannerAdapter)\n- [2.1.0](/ruby/docs/reference/activerecord-spanner-adapter/2.1.0/ActiveRecord-ConnectionAdapters-SpannerAdapter)\n- [2.0.0](/ruby/docs/reference/activerecord-spanner-adapter/2.0.0/ActiveRecord-ConnectionAdapters-SpannerAdapter) \nReference documentation and code samples for the activerecord-spanner-adapter class ActiveRecord::ConnectionAdapters::SpannerAdapter. \n\nInherits\n--------\n\n- AbstractAdapter \n\nExtended By\n-----------\n\n- [ActiveRecord::ConnectionAdapters::SpannerAdapter::TypeMapBuilder](./ActiveRecord-ConnectionAdapters-SpannerAdapter-TypeMapBuilder) \n\nIncludes\n--------\n\n- [ActiveRecord::ConnectionAdapters::Spanner::DatabaseStatements](./ActiveRecord-ConnectionAdapters-Spanner-DatabaseStatements)\n- [ActiveRecord::ConnectionAdapters::Spanner::Quoting](./ActiveRecord-ConnectionAdapters-Spanner-Quoting)\n- [ActiveRecord::ConnectionAdapters::Spanner::SchemaStatements](./ActiveRecord-ConnectionAdapters-Spanner-SchemaStatements)\n- [ActiveRecord::ConnectionAdapters::SpannerAdapter::TypeMapBuilder](./ActiveRecord-ConnectionAdapters-SpannerAdapter-TypeMapBuilder)\n\nMethods\n-------\n\n### .database_exists?\n\n def self.database_exists?(config) -\u003e Boolean\n\nDatabase \n**Returns**\n\n- (Boolean)\n\n### #active?\n\n def active?() -\u003e Boolean\n\nConnection management \n**Returns**\n\n- (Boolean)\n\n### #arel_visitor\n\n def arel_visitor()\n\n### #build_insert_sql\n\n def build_insert_sql(insert)\n\n### #current_spanner_transaction\n\n def current_spanner_transaction()\n\n### #default_sequence_kind\n\n def default_sequence_kind()\n\nReturns the value of attribute default_sequence_kind.\n\n### #default_sequence_kind=\n\n def default_sequence_kind=(value)\n\nSets the attribute default_sequence_kind\n\n### #disconnect!\n\n def disconnect!()\n\n### #initialize\n\n def initialize(config_or_deprecated_connection, deprecated_logger = nil, deprecated_connection_options = nil, deprecated_config = nil) -\u003e SpannerAdapter\n\n**Returns**\n\n- ([SpannerAdapter](./ActiveRecord-ConnectionAdapters-SpannerAdapter)) --- a new instance of SpannerAdapter\n\n### #log\n\n def log(sql, name = \"SQL\", binds = [], type_casted_binds = [], statement_name = nil, *args)\n\n### #max_identifier_length\n\n def max_identifier_length()\n\n### #native_database_types\n\n def native_database_types()\n\n### #next_sequence_value\n\n def next_sequence_value(_sequence_name)\n\nGenerate next sequence number for primary key\n\n### #prefetch_primary_key?\n\n def prefetch_primary_key?(_table_name = nil) -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #reconnect!\n\n def reconnect!()\n\n**Alias Of** : [#reset!](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_reset!_instance_)\n\n### #reset!\n\n def reset!()\n\n**Aliases**\n\n- [#reconnect!](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_reconnect!_instance_)\n\n### #return_value_after_insert?\n\n def return_value_after_insert?(column) -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #spanner_schema_cache\n\n def spanner_schema_cache()\n\n### #supports_bulk_alter?\n\n def supports_bulk_alter?() -\u003e Boolean\n\nSupported features \n**Returns**\n\n- (Boolean)\n\n### #supports_check_constraints?\n\n def supports_check_constraints?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_common_table_expressions?\n\n def supports_common_table_expressions?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_explain?\n\n def supports_explain?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_foreign_keys?\n\n def supports_foreign_keys?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_index_sort_order?\n\n def supports_index_sort_order?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_insert_conflict_target?\n\n def supports_insert_conflict_target?() -\u003e Boolean\n\n**Alias Of** : [#supports_insert_on_conflict?](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_supports_insert_on_conflict?_instance_) \n**Returns**\n\n- (Boolean)\n\n### #supports_insert_on_conflict?\n\n def supports_insert_on_conflict?() -\u003e Boolean\n\n**Aliases**\n\n- [#supports_insert_on_duplicate_skip?](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_supports_insert_on_duplicate_skip?_instance_)\n- [#supports_insert_on_duplicate_update?](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_supports_insert_on_duplicate_update?_instance_)\n- [#supports_insert_conflict_target?](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_supports_insert_conflict_target?_instance_) \n**Returns**\n\n- (Boolean)\n\n### #supports_insert_on_duplicate_skip?\n\n def supports_insert_on_duplicate_skip?() -\u003e Boolean\n\n**Alias Of** : [#supports_insert_on_conflict?](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_supports_insert_on_conflict?_instance_) \n**Returns**\n\n- (Boolean)\n\n### #supports_insert_on_duplicate_update?\n\n def supports_insert_on_duplicate_update?() -\u003e Boolean\n\n**Alias Of** : [#supports_insert_on_conflict?](./ActiveRecord-ConnectionAdapters-SpannerAdapter#ActiveRecord__ConnectionAdapters__SpannerAdapter_supports_insert_on_conflict?_instance_) \n**Returns**\n\n- (Boolean)\n\n### #supports_insert_returning?\n\n def supports_insert_returning?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_multi_insert?\n\n def supports_multi_insert?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_optimizer_hints?\n\n def supports_optimizer_hints?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_primary_key?\n\n def supports_primary_key?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_transaction_isolation?\n\n def supports_transaction_isolation?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #supports_virtual_columns?\n\n def supports_virtual_columns?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #transform\n\n def transform(sql)\n\n### #translate_exception\n\n def translate_exception(exception, message:, sql:, binds:)\n\n### #use_auto_increment?\n\n def use_auto_increment?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\n### #use_client_side_id_for_mutations\n\n def use_client_side_id_for_mutations()\n\nReturns the value of attribute use_client_side_id_for_mutations.\n\n### #use_client_side_id_for_mutations=\n\n def use_client_side_id_for_mutations=(value)\n\nSets the attribute use_client_side_id_for_mutations\n\n### #use_identity?\n\n def use_identity?() -\u003e Boolean\n\n**Returns**\n\n- (Boolean)\n\nConstants\n---------\n\n### ADAPTER_NAME\n\n**value:**\"spanner\".freeze\n\n### NATIVE_DATABASE_TYPES\n\n**value:**{\nprimary_key: \"INT64\",\nparent_key: \"INT64\",\nstring: { name: \"STRING\", limit: \"MAX\" },\ntext: { name: \"STRING\", limit: \"MAX\" },\ninteger: { name: \"INT64\" },\nbigint: { name: \"INT64\" },\nfloat: { name: \"FLOAT64\" },\ndecimal: { name: \"NUMERIC\" },\nnumeric: { name: \"NUMERIC\" },\ndatetime: { name: \"TIMESTAMP\" },\ntime: { name: \"TIMESTAMP\" },\ndate: { name: \"DATE\" },\nbinary: { name: \"BYTES\", limit: \"MAX\" },\nboolean: { name: \"BOOL\" },\njson: { name: \"JSON\" }\n}.freeze\n\n### TYPE_MAP\n\n**value:**Type::TypeMap.new.tap { \\|m\\| initialize_type_map m }"]]