Module: Torque::PostgreSQL::Adapter
- Includes:
- DatabaseStatements, Quoting, SchemaStatements
- Defined in:
- lib/torque/postgresql/adapter.rb,
lib/torque/postgresql/adapter/oid.rb,
lib/torque/postgresql/adapter/oid/box.rb,
lib/torque/postgresql/adapter/quoting.rb,
lib/torque/postgresql/adapter/oid/enum.rb,
lib/torque/postgresql/adapter/oid/line.rb,
lib/torque/postgresql/adapter/oid/range.rb,
lib/torque/postgresql/adapter/oid/circle.rb,
lib/torque/postgresql/adapter/oid/segment.rb,
lib/torque/postgresql/adapter/oid/enum_set.rb,
lib/torque/postgresql/adapter/oid/interval.rb,
lib/torque/postgresql/adapter/schema_dumper.rb,
lib/torque/postgresql/adapter/schema_creation.rb,
lib/torque/postgresql/adapter/schema_statements.rb,
lib/torque/postgresql/adapter/schema_definitions.rb,
lib/torque/postgresql/adapter/database_statements.rb
Defined Under Namespace
Modules: ColumnDefinition, ColumnMethods, DatabaseStatements, OID, Quoting, SchemaCreation, SchemaDumper, SchemaStatements, TableDefinition
Constant Summary collapse
- INJECT_WHERE_REGEX =
/(DO UPDATE SET.*excluded\.[^ ]+) RETURNING/.freeze
Constants included from SchemaStatements
SchemaStatements::TableDefinition
Constants included from DatabaseStatements
DatabaseStatements::EXTENDED_DATABASE_TYPES
Constants included from Quoting
Instance Method Summary collapse
-
#build_insert_sql(insert) ⇒ Object
Allow filtered bulk insert by adding the where clause.
-
#extract_table_options!(options) ⇒ Object
Add ‘inherits` to the list of extracted table options.
-
#version ⇒ Object
Get the current PostgreSQL version as a Gem Version.
Methods included from SchemaStatements
#add_enum_values, #create_enum, #create_table, #drop_type, #enum_values, #rename_type
Methods included from DatabaseStatements
#column_definitions, #configure_connection, #dump_mode!, #extended_types, #inherited_tables, #initialize_type_map, #load_additional_types, #torque_load_additional_types, #type_exists?, #user_defined_types, #valid_type?
Methods included from Quoting
#quote_default_expression, #quote_type_name
Instance Method Details
#build_insert_sql(insert) ⇒ Object
Allow filtered bulk insert by adding the where clause. This method is only used by InsertAll
, so it somewhat safe to override it
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/torque/postgresql/adapter.rb', line 34 def build_insert_sql(insert) super.tap do |sql| if insert.update_duplicates? && insert.where_condition? if insert.returning sql.gsub!(INJECT_WHERE_REGEX, "\\1 WHERE #{insert.where} RETURNING") else sql << " WHERE #{insert.where}" end end end end |
#extract_table_options!(options) ⇒ Object
Add ‘inherits` to the list of extracted table options
28 29 30 |
# File 'lib/torque/postgresql/adapter.rb', line 28 def () super.merge(.extract!(:inherits)) end |
#version ⇒ Object
Get the current PostgreSQL version as a Gem Version.
21 22 23 24 25 |
# File 'lib/torque/postgresql/adapter.rb', line 21 def version @version ||= Gem::Version.new( select_value('SELECT version()').match(/#{Adapter::ADAPTER_NAME} ([\d\.]+)/)[1] ) end |