Class: Sequel::MySQL::Dataset

Inherits:
Dataset
  • Object
show all
Defined in:
lib/sequel/mysql.rb

Instance Method Summary collapse

Instance Method Details

#count(opts = nil) ⇒ Object



60
61
62
# File 'lib/sequel/mysql.rb', line 60

def count(opts = nil)
  query_single_value(count_sql(opts)).to_i
end

#delete(opts = nil) ⇒ Object



72
73
74
# File 'lib/sequel/mysql.rb', line 72

def delete(opts = nil)
  @db.execute_affected(delete_sql(opts))
end

#each(opts = nil, &block) ⇒ Object



51
52
53
54
# File 'lib/sequel/mysql.rb', line 51

def each(opts = nil, &block)
  query_each(select_sql(opts), true, &block)
  self
end

#first_record(opts = nil) ⇒ Object



56
57
58
# File 'lib/sequel/mysql.rb', line 56

def first_record(opts = nil)
  query_first(select_sql(opts), true)
end

#insert(values = nil, opts = nil) ⇒ Object



64
65
66
# File 'lib/sequel/mysql.rb', line 64

def insert(values = nil, opts = nil)
  @db.execute_insert(insert_sql(values, opts))
end

#query_each(sql, use_record_class = false) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/sequel/mysql.rb', line 76

def query_each(sql, use_record_class = false)
  @db.synchronize do
    result = @db.execute(sql)
    begin
      if use_record_class && @record_class
        result.each_hash {|r| yield @record_class.new(r)}
      else
        result.each_hash {|r| yield r}
      end
    ensure
      result.free
    end
  end
  self
end

#query_first(sql, use_record_class = false) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/sequel/mysql.rb', line 92

def query_first(sql, use_record_class = false)
  @db.synchronize do
    result = @db.execute(sql)
    begin
      if use_record_class && @record_class
        @record_class.new(result.fetch_hash)
      else
        result.fetch_hash
      end
    ensure
      result.free
    end
    row
  end
end

#query_single_value(sql) ⇒ Object



108
109
110
111
112
113
114
115
116
117
# File 'lib/sequel/mysql.rb', line 108

def query_single_value(sql)
  @db.synchronize do
    result = @db.execute(sql)
    begin
      return result.fetch_hash.values[0]
    ensure
      result.free
    end
  end
end

#update(values, opts = nil) ⇒ Object



68
69
70
# File 'lib/sequel/mysql.rb', line 68

def update(values, opts = nil)
  @db.execute_affected(update_sql(values, opts))
end