Class: Sequel::Postgres::Dataset
- Includes:
- DatasetMethods
- Defined in:
- lib/sequel_core/adapters/postgres.rb
Overview
Dataset class for PostgreSQL datasets that use the pg, postgres, or postgres-pr driver.
Defined Under Namespace
Modules: ArgumentMapper, BindArgumentMethods, PreparedStatementMethods
Constant Summary collapse
- PREPARED_ARG_PLACEHOLDER =
'$'.lit.freeze
Constants included from DatasetMethods
Sequel::Postgres::DatasetMethods::ACCESS_EXCLUSIVE, Sequel::Postgres::DatasetMethods::ACCESS_SHARE, Sequel::Postgres::DatasetMethods::BOOL_FALSE, Sequel::Postgres::DatasetMethods::BOOL_TRUE, Sequel::Postgres::DatasetMethods::COMMA_SEPARATOR, Sequel::Postgres::DatasetMethods::EXCLUSIVE, Sequel::Postgres::DatasetMethods::EXPLAIN, Sequel::Postgres::DatasetMethods::EXPLAIN_ANALYZE, Sequel::Postgres::DatasetMethods::FOR_SHARE, Sequel::Postgres::DatasetMethods::FOR_UPDATE, Sequel::Postgres::DatasetMethods::LOCK, Sequel::Postgres::DatasetMethods::PG_TIMESTAMP_FORMAT, Sequel::Postgres::DatasetMethods::QUERY_PLAN, Sequel::Postgres::DatasetMethods::ROW_EXCLUSIVE, Sequel::Postgres::DatasetMethods::ROW_SHARE, Sequel::Postgres::DatasetMethods::SHARE, Sequel::Postgres::DatasetMethods::SHARE_ROW_EXCLUSIVE, Sequel::Postgres::DatasetMethods::SHARE_UPDATE_EXCLUSIVE
Constants inherited from Dataset
Dataset::AND_SEPARATOR, Dataset::BOOL_FALSE, Dataset::BOOL_TRUE, Dataset::COLUMN_CHANGE_OPTS, Dataset::COLUMN_REF_RE1, Dataset::COLUMN_REF_RE2, Dataset::COLUMN_REF_RE3, Dataset::COMMA_SEPARATOR, Dataset::COUNT_FROM_SELF_OPTS, Dataset::COUNT_OF_ALL_AS_COUNT, Dataset::DATASET_CLASSES, Dataset::DATE_FORMAT, Dataset::MUTATION_METHODS, Dataset::NOTIMPL_MSG, Dataset::NULL, Dataset::N_ARITY_OPERATORS, Dataset::QUESTION_MARK, Dataset::STOCK_COUNT_OPTS, Dataset::STOCK_TRANSFORMS, Dataset::TIMESTAMP_FORMAT, Dataset::TWO_ARITY_OPERATORS, Dataset::WILDCARD
Instance Attribute Summary
Attributes inherited from Dataset
#db, #opts, #quote_identifiers, #row_proc
Instance Method Summary collapse
-
#call(type, hash, values = nil, &block) ⇒ Object
Execute the given type of statement with the hash of values.
-
#fetch_rows(sql) ⇒ Object
yield all rows returned by executing the given SQL and converting the types.
-
#prepare(type, name, values = nil) ⇒ Object
Prepare the given type of statement with the given name, and store it in the database to be called later.
Methods included from DatasetMethods
#analyze, #explain, #for_share, #for_update, #full_text_search, #insert, #insert_returning_sql, #insert_select, #literal, #lock, #multi_insert_sql, #quoted_identifier, #select_sql
Methods inherited from Dataset
#<<, #[], #[]=, #aliased_expression_sql, #all, #and, #as, #avg, #case_expression_sql, #clone, #column_all_sql, #columns, #columns!, #complex_expression_sql, #count, #create_or_replace_view, #create_view, dataset_classes, #def_mutation_method, def_mutation_method, #delete, #delete_sql, #each, #each_page, #empty?, #except, #exclude, #exists, #filter, #first, #first_source, #from, #from_self, #function_sql, #get, #graph, #grep, #group, #group_and_count, #having, inherited, #initialize, #insert, #insert_multiple, #insert_sql, #inspect, #intersect, #interval, #invert, #irregular_function_sql, #join_clause_sql, #join_on_clause_sql, #join_table, #join_using_clause_sql, #last, #limit, #literal, #map, #max, #min, #model_classes, #multi_insert, #multi_insert_sql, #naked, #or, #order, #order_more, #ordered_expression_sql, #paginate, #polymorphic_key, #print, #qualified_identifier_sql, #query, #quote_identifier, #quote_identifiers?, #quoted_identifier, #range, #reverse_order, #select, #select_all, #select_more, #select_sql, #server, #set, #set_defaults, #set_graph_aliases, #set_model, #set_overrides, #single_record, #single_value, #subscript_sql, #sum, #symbol_to_column_ref, #table_exists?, #to_csv, #to_hash, #transform, #transform_load, #transform_save, #unfiltered, #union, #uniq, #unordered, #update, #update_sql
Methods included from Enumerable
Constructor Details
This class inherits a constructor from Sequel::Dataset
Instance Method Details
#call(type, hash, values = nil, &block) ⇒ Object
Execute the given type of statement with the hash of values.
396 397 398 399 400 |
# File 'lib/sequel_core/adapters/postgres.rb', line 396 def call(type, hash, values=nil, &block) ps = to_prepared_statement(type, values) ps.extend(BindArgumentMethods) ps.call(hash, &block) end |
#fetch_rows(sql) ⇒ Object
yield all rows returned by executing the given SQL and converting the types.
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/sequel_core/adapters/postgres.rb', line 285 def fetch_rows(sql) @columns = [] execute(sql) do |res| (0...res.ntuples).each do |recnum| converted_rec = {} (0...res.nfields).each do |fieldnum| fieldsym = res.fname(fieldnum).to_sym @columns << fieldsym converted_rec[fieldsym] = if value = res.getvalue(recnum,fieldnum) (PG_TYPES[res.ftype(fieldnum)] || lambda{|s| s.to_s}).call(value) else value end end yield converted_rec end end end |
#prepare(type, name, values = nil) ⇒ Object
Prepare the given type of statement with the given name, and store it in the database to be called later.
404 405 406 407 408 409 |
# File 'lib/sequel_core/adapters/postgres.rb', line 404 def prepare(type, name, values=nil) ps = to_prepared_statement(type, values) ps.extend(PreparedStatementMethods) ps.prepared_statement_name = name db.prepared_statements[name] = ps end |