Module ActiveRecord::ConnectionAdapters::DatabaseStatements
In: vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb

Methods

Public Instance methods

Alias for add_limit_offset!.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 75
75:       def add_limit!(sql, options)
76:         add_limit_offset!(sql, options) if options
77:       end

Appends LIMIT and OFFSET options to a SQL statement. This method modifies the sql parameter.

Examples
 add_limit_offset!('SELECT * FROM suppliers', {:limit => 10, :offset => 50})

generates

 SELECT * FROM suppliers LIMIT 10 OFFSET 50

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 85
85:       def add_limit_offset!(sql, options)
86:         if limit = options[:limit]
87:           sql << " LIMIT #{limit}"
88:           if offset = options[:offset]
89:             sql << " OFFSET #{offset}"
90:           end
91:         end
92:       end

Appends a locking clause to a SQL statement. *Modifies the sql parameter*.

  # SELECT * FROM suppliers FOR UPDATE
  add_lock! 'SELECT * FROM suppliers', :lock => true
  add_lock! 'SELECT * FROM suppliers', :lock => ' FOR UPDATE'

[Source]

     # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 98
 98:       def add_lock!(sql, options)
 99:         case lock = options[:lock]
100:           when true:   sql << ' FOR UPDATE'
101:           when String: sql << " #{lock}"
102:         end
103:       end

Begins the transaction (and turns off auto-committing).

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 65
65:       def begin_db_transaction()    end

Commits the transaction (and turns on auto-committing).

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 68
68:       def commit_db_transaction()   end

[Source]

     # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 105
105:       def default_sequence_name(table, column)
106:         nil
107:       end

Executes the delete statement and returns the number of rows affected.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 40
40:       def delete(sql, name = nil) end

Executes the SQL statement in the context of this connection. This abstract method raises a NotImplementedError.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 29
29:       def execute(sql, name = nil)
30:         raise NotImplementedError, "execute is an abstract method"
31:       end

Returns the last auto-generated ID from the affected table.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 34
34:       def insert(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) end

Set the sequence to the max value of the table’s column.

[Source]

     # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 110
110:       def reset_sequence!(table, column, sequence = nil)
111:         # Do nothing by default.  Implement for PostgreSQL, Oracle, ...
112:       end

Rolls back the transaction (and turns on auto-committing). Must be done if the transaction block raises an exception or returns false.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 72
72:       def rollback_db_transaction() end

Returns an array of record hashes with the column names as keys and column values as values.

[Source]

   # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 6
6:       def select_all(sql, name = nil)
7:       end

Returns a record hash with the column names as keys and column values as values.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 11
11:       def select_one(sql, name = nil)
12:       end

Returns a single value from a record

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 15
15:       def select_value(sql, name = nil)
16:         result = select_one(sql, name)
17:         result.nil? ? nil : result.values.first
18:       end

Returns an array of the values of the first column in a select:

  select_values("SELECT id FROM companies LIMIT 3") => [1,2,3]

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 22
22:       def select_values(sql, name = nil)
23:         result = select_all(sql, name)
24:         result.map{ |v| v.values.first }
25:       end

Wrap a block in a transaction. Returns result of block.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 43
43:       def transaction(start_db_transaction = true)
44:         transaction_open = false
45:         begin
46:           if block_given?
47:             if start_db_transaction
48:               begin_db_transaction 
49:               transaction_open = true
50:             end
51:             yield
52:           end
53:         rescue Exception => database_transaction_rollback
54:           if transaction_open
55:             transaction_open = false
56:             rollback_db_transaction
57:           end
58:           raise
59:         end
60:       ensure
61:         commit_db_transaction if transaction_open
62:       end

Executes the update statement and returns the number of rows affected.

[Source]

    # File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 37
37:       def update(sql, name = nil) end

[Validate]