activetokyocabinet 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,25 +23,25 @@ module ActiveRecord
23
23
  tdbopen(parsed_sql) do |tdb|
24
24
  select_list = parsed_sql[:select_list]
25
25
 
26
- rkeys(tdb, parsed_sql).each do |rkey|
27
- rcols = tdb.get(rkey)
28
- next if rcols.nil?
29
-
30
- unless select_list.nil? or select_list.empty?
31
- rcols = select_list.each do |k|
32
- k = k.split('.').last
33
- r[k] = rcols[k]
26
+ if (count = parsed_sql[:count])
27
+ rows = [{count => count_rkey(tdb, parsed_sql)}]
28
+ else
29
+ rkeys(tdb, parsed_sql).each do |rkey|
30
+ rcols = tdb.get(rkey)
31
+ next if rcols.nil?
32
+
33
+ unless select_list.nil? or select_list.empty?
34
+ rcols = select_list.each do |k|
35
+ k = k.split('.').last
36
+ r[k] = rcols[k]
37
+ end
34
38
  end
39
+
40
+ rcols['id'] = rkey.to_i
41
+ rows << rcols
35
42
  end
36
-
37
- rcols['id'] = rkey.to_i
38
- rows << rcols
39
43
  end
40
44
  end
41
-
42
- if (count = parsed_sql[:count])
43
- rows = [{count => rows.length}]
44
- end
45
45
  end
46
46
 
47
47
  return rows
@@ -125,13 +125,19 @@ module ActiveRecord
125
125
  end
126
126
 
127
127
  def rkeys(tdb, parsed_sql)
128
- condition, order, limit, offset = parsed_sql.values_at(:condition, :order, :limit, :offset)
129
- condition ||= []
128
+ condition = parsed_sql[:condition] || []
130
129
 
131
130
  unless condition.kind_of?(Array) and condition.all? {|i| i.kind_of?(Hash) }
132
- return [parsed_sql[:condition]].flatten
131
+ return [condition].flatten
133
132
  end
134
133
 
134
+ query(tdb, parsed_sql).search
135
+ end
136
+
137
+ def query(tdb, parsed_sql)
138
+ condition, order, limit, offset = parsed_sql.values_at(:condition, :order, :limit, :offset)
139
+ condition ||= []
140
+
135
141
  qry = @query_klass::new(tdb)
136
142
 
137
143
  condition.each do |cond|
@@ -152,9 +158,9 @@ module ActiveRecord
152
158
  qry.setlimit(limit || 0, offset || 0)
153
159
  end
154
160
 
155
- return qry.search
161
+ return qry
156
162
  end
157
- private :rkeys
163
+ private :query
158
164
  end
159
165
  end
160
166
  end
@@ -61,6 +61,11 @@ module ActiveRecord
61
61
  end
62
62
  private :tdbpath
63
63
 
64
+ def count_rkey(tdb, parsed_sql)
65
+ rkeys(tdb, parsed_sql).length
66
+ end
67
+ private :count_rkey
68
+
64
69
  def setindex(table_name, name, type)
65
70
  type = {
66
71
  :lexical => TokyoCabinet::TDB::ITLEXICAL,
@@ -67,6 +67,11 @@ module ActiveRecord
67
67
  end
68
68
  private :tdbopen
69
69
 
70
+ def count_rkey(tdb, parsed_sql)
71
+ query(tdb, parsed_sql).searchcount
72
+ end
73
+ private :count_rkey
74
+
70
75
  def setindex(table_name, name, type)
71
76
  type = {
72
77
  :lexical => TokyoTyrant::RDBTBL::ITLEXICAL,
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activetokyocabinet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-10 00:00:00 +09:00
12
+ date: 2010-01-11 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency