Class: Sequel::TinyTDS::Dataset

Inherits:
Dataset show all
Includes:
MSSQL::DatasetMethods
Defined in:
lib/sequel/adapters/tinytds.rb

Constant Summary

Constants included from MSSQL::DatasetMethods

MSSQL::DatasetMethods::BOOL_FALSE, MSSQL::DatasetMethods::BOOL_TRUE, MSSQL::DatasetMethods::COMMA_SEPARATOR, MSSQL::DatasetMethods::CONSTANT_MAP, MSSQL::DatasetMethods::DELETE_CLAUSE_METHODS, MSSQL::DatasetMethods::INSERT_CLAUSE_METHODS, MSSQL::DatasetMethods::NOLOCK, MSSQL::DatasetMethods::SELECT_CLAUSE_METHODS, MSSQL::DatasetMethods::UPDATE_CLAUSE_METHODS, MSSQL::DatasetMethods::UPDLOCK, MSSQL::DatasetMethods::WILDCARD

Constants inherited from Dataset

Dataset::ACTION_METHODS, Dataset::AND_SEPARATOR, Dataset::ARG_BLOCK_ERROR_MSG, Dataset::ARRAY_ACCESS_ERROR_MSG, 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::CONDITIONED_JOIN_TYPES, Dataset::COUNT_FROM_SELF_OPTS, Dataset::COUNT_OF_ALL_AS_COUNT, Dataset::DATASET_ALIAS_BASE_NAME, Dataset::DELETE_CLAUSE_METHODS, Dataset::FOR_UPDATE, Dataset::IMPORT_ERROR_MSG, Dataset::INSERT_CLAUSE_METHODS, Dataset::IS_LITERALS, Dataset::IS_OPERATORS, Dataset::JOIN_METHODS, Dataset::MUTATION_METHODS, Dataset::NON_SQL_OPTIONS, Dataset::NOTIMPL_MSG, Dataset::NULL, Dataset::N_ARITY_OPERATORS, Dataset::PREPARED_ARG_PLACEHOLDER, Dataset::QUALIFY_KEYS, Dataset::QUERY_METHODS, Dataset::QUESTION_MARK, Dataset::SELECT_CLAUSE_METHODS, Dataset::SQL_WITH, Dataset::STANDARD_TIMESTAMP_FORMAT, Dataset::TIMESTAMP_FORMAT, Dataset::TO_DOT_OPTIONS, Dataset::TWO_ARITY_OPERATORS, Dataset::UNCONDITIONED_JOIN_TYPES, Dataset::UPDATE_CLAUSE_METHODS, Dataset::WILDCARD, Dataset::WITH_SUPPORTED

Instance Attribute Summary

Attributes included from MSSQL::DatasetMethods

#mssql_unicode_strings

Attributes inherited from Dataset

#db, #identifier_input_method, #identifier_output_method, #opts, #quote_identifiers, #row_proc

Instance Method Summary collapse

Methods included from MSSQL::DatasetMethods

#complex_expression_sql, #constant_sql, #disable_insert_output, #disable_insert_output!, #full_text_search, #initialize, #insert_select, #into, #join_table, #multi_insert_sql, #nolock, #output, #output!, #quoted_identifier, #select_sql, #server_version, #supports_intersect_except?, #supports_is_true?, #supports_join_using?, #supports_modifying_joins?, #supports_multiple_column_in?, #supports_output_clause?, #supports_window_functions?

Methods inherited from Dataset

#<<, #==, #[], #[]=, #add_graph_aliases, #aliased_expression_sql, #all, #and, #array_sql, #as, #avg, #bind, #boolean_constant_sql, #call, #case_expression_sql, #cast_sql, clause_methods, #clone, #column_all_sql, #columns, #columns!, #complex_expression_sql, #constant_sql, #count, def_mutation_method, #def_mutation_method, #delete, #delete_sql, #distinct, #each, #each_page, #each_server, #empty?, #eql?, #except, #exclude, #exists, #filter, #first, #first_source, #first_source_alias, #first_source_table, #for_update, #from, #from_self, #function_sql, #get, #graph, #grep, #group, #group_and_count, #group_by, #hash, #having, #import, #initialize, #insert, #insert_multiple, #insert_sql, #inspect, #intersect, #interval, introspect_all_columns, #invert, #join, #join_clause_sql, #join_on_clause_sql, #join_table, #join_using_clause_sql, #last, #limit, #literal, #lock_style, #map, #max, #min, #multi_insert, #multi_insert_sql, #naked, #negative_boolean_constant_sql, #or, #order, #order_append, #order_by, #order_more, #order_prepend, #ordered_expression_sql, #paginate, #placeholder_literal_string_sql, #prepare, #print, #provides_accurate_rows_matched?, #qualified_identifier_sql, #qualify, #qualify_to, #qualify_to_first_source, #query, #quote_identifier, #quote_identifiers?, #quote_schema_table, #quoted_identifier, #range, #requires_sql_standard_datetimes?, #reverse, #reverse_order, #schema_and_table, #select, #select_all, #select_append, #select_hash, #select_map, #select_more, #select_order_map, #select_sql, #server, #set, #set_defaults, #set_graph_aliases, #set_overrides, #single_record, #single_value, #split_alias, #sql, #subscript_sql, #sum, #supports_cte?, #supports_distinct_on?, #supports_intersect_except?, #supports_intersect_except_all?, #supports_is_true?, #supports_join_using?, #supports_modifying_joins?, #supports_multiple_column_in?, #supports_timestamp_timezones?, #supports_timestamp_usecs?, #supports_window_functions?, #to_csv, #to_dot, #to_hash, #truncate, #truncate_sql, #unfiltered, #ungraphed, #ungrouped, #union, #unlimited, #unordered, #unused_table_alias, #update, #update_sql, #where, #window_function_sql, #window_sql, #with, #with_recursive, #with_sql

Methods included from Metaprogramming

#meta_def

Instance Method Details

#fetch_rows(sql) ⇒ Object

Yield hashes with symbol keys, attempting to optimize for various cases.



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/sequel/adapters/tinytds.rb', line 89

def fetch_rows(sql)
  execute(sql) do |result|
    each_opts = {:cache_rows=>false}
    each_opts[:timezone] = :utc if Sequel.database_timezone == :utc
    offset = @opts[:offset]
    @columns = cols = result.fields.map{|c| output_identifier(c)}
    if identifier_output_method
      each_opts[:as] = :array
      result.each(each_opts) do |r|
        h = {}
        cols.zip(r).each{|k, v| h[k] = v}
        h.delete(row_number_column) if offset
        yield h
      end
    else
      each_opts[:symbolize_keys] = true
      if offset
        result.each(each_opts) do |r|
          r.delete(row_number_column) if offset
          yield r
        end
      else
        result.each(each_opts, &Proc.new)
      end
    end
  end
  self
end