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::SELECT_CLAUSE_ORDER, 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::SELECT_CLAUSE_ORDER, 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, #upcase_identifiers
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 = nil, 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
Methods inherited from Dataset
#<<, #[], #[]=, #add_graph_aliases, #aliased_expression_sql, #all, #and, #array_sql, #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, #placeholder_literal_string_sql, #polymorphic_key, #print, #qualified_identifier_sql, #query, #quote_identifier, #quote_identifiers?, #quote_schema_table, #quoted_identifier, #range, #reverse_order, #schema_and_table, #select, #select_all, #select_more, #select_sql, #server, #set, #set_defaults, #set_graph_aliases, #set_model, #set_overrides, #single_record, #single_value, #sql, #subscript_sql, #sum, #symbol_to_column_ref, #table_exists?, #to_csv, #to_hash, #transform, #transform_load, #transform_save, #unfiltered, #union, #uniq, #unordered, #upcase_identifiers?, #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.
416 417 418 419 420 |
# File 'lib/sequel_core/adapters/postgres.rb', line 416 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.
313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
# File 'lib/sequel_core/adapters/postgres.rb', line 313 def fetch_rows(sql) cols = [] execute(sql) do |res| res.nfields.times do |fieldnum| cols << [fieldnum, PG_TYPES[res.ftype(fieldnum)], res.fname(fieldnum).to_sym] end @columns = cols.map{|c| c.at(2)} res.ntuples.times do |recnum| converted_rec = {} cols.each do |fieldnum, type_proc, fieldsym| value = res.getvalue(recnum, fieldnum) converted_rec[fieldsym] = (value && type_proc) ? type_proc.call(value) : value end yield converted_rec end end end |
#prepare(type, name = nil, values = nil) ⇒ Object
Prepare the given type of statement with the given name, and store it in the database to be called later.
424 425 426 427 428 429 430 431 432 |
# File 'lib/sequel_core/adapters/postgres.rb', line 424 def prepare(type, name=nil, values=nil) ps = to_prepared_statement(type, values) ps.extend(PreparedStatementMethods) if name ps.prepared_statement_name = name db.prepared_statements[name] = ps end ps end |