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 |