- add_limit!
- add_limit_offset!
- begin_db_transaction
- commit_db_transaction
- default_sequence_name
- delete
- execute
- insert
- reset_sequence!
- rollback_db_transaction
- select_all
- select_one
- select_value
- select_values
- transaction
- update
Alias for add_limit_offset!.
[ show 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
[ show 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
Begins the transaction (and turns off auto-committing).
[ show 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).
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 68 68: def commit_db_transaction() end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 94 94: def default_sequence_name(table, column) 95: nil 96: end
Executes the delete statement and returns the number of rows affected.
[ show 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.
[ show 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.
[ show 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.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 99 99: def reset_sequence!(table, column, sequence = nil) 100: # Do nothing by default. Implement for PostgreSQL, Oracle, ... 101: end
Rolls back the transaction (and turns on auto-committing). Must be done if the transaction block raises an exception or returns false.
[ show 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.
[ show 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.
[ show 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
[ show 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]
[ show 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.
[ show 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.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 37 37: def update(sql, name = nil) end