sdbcli 1.3.5 → 1.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -80,6 +80,10 @@ https://bitbucket.org/winebarrel/sdbcli
80
80
  displays a continuation of a result
81
81
  (NEXT statement is published after SELECT statement)
82
82
 
83
+ CUR[RENT]
84
+ displays a present result
85
+ (CURRENT statement is published after SELECT statement)
86
+
83
87
  DESC domain_name
84
88
  displays information about the domain
85
89
 
data/bin/sdbcli CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
3
3
 
4
- Version = '1.3.5'
4
+ Version = '1.3.6'
5
5
  HISTORY_FILE = File.join((ENV['HOME'] || ENV['USERPROFILE'] || '.'), '.sdbcli_history')
6
6
  HISTSIZE = 500
7
7
  SELECT_LIMIT = 2500
@@ -394,6 +394,10 @@ NEXT
394
394
  displays a continuation of a result
395
395
  (NEXT statement is published after SELECT statement)
396
396
 
397
+ CUR[RENT]
398
+ displays a present result
399
+ (CURRENT statement is published after SELECT statement)
400
+
397
401
  DESC domain_name
398
402
  displays information about the domain
399
403
 
@@ -12,6 +12,7 @@ module SimpleDB
12
12
  @client = Client.new(accessKeyId, secretAccessKey, endpoint)
13
13
  @select_expr = nil
14
14
  @next_token = nil
15
+ @current_token = nil
15
16
  end
16
17
 
17
18
  def endpoint
@@ -119,6 +120,7 @@ module SimpleDB
119
120
 
120
121
  if persist
121
122
  @select_expr = expr
123
+ @current_token = nil
122
124
  @next_token = token
123
125
  end
124
126
 
@@ -133,7 +135,27 @@ module SimpleDB
133
135
  params = {:SelectExpression => @select_expr, :ConsistentRead => consistent}
134
136
  items = []
135
137
 
136
- @next_token = iterate(:select, params, @next_token) do |doc|
138
+ token = iterate(:select, params, @next_token) do |doc|
139
+ doc.css('Item').map do |i|
140
+ items << [i.at_css('Name').content, attrs_to_hash(i)]
141
+ end
142
+ end
143
+
144
+ @current_token = @next_token
145
+ @next_token = token
146
+
147
+ return items
148
+ end
149
+
150
+ def current_list(consistent = false)
151
+ unless @select_expr
152
+ return []
153
+ end
154
+
155
+ params = {:SelectExpression => @select_expr, :ConsistentRead => consistent}
156
+ items = []
157
+
158
+ iterate(:select, params, @current_token || :first) do |doc|
137
159
  doc.css('Item').map do |i|
138
160
  items << [i.at_css('Name').content, attrs_to_hash(i)]
139
161
  end
@@ -13,7 +13,7 @@ module SimpleDB
13
13
 
14
14
  class Parser < Racc::Parser
15
15
 
16
- module_eval(<<'...end sdb-parser.y/module_eval...', 'sdb-parser.y', 256)
16
+ module_eval(<<'...end sdb-parser.y/module_eval...', 'sdb-parser.y', 263)
17
17
 
18
18
  KEYWORDS = %w(
19
19
  ADD
@@ -90,6 +90,8 @@ def scan
90
90
  yield [:SELECT, tok + @ss.scan(/.*/)]
91
91
  elsif (tok = @ss.scan /NEXT\b/i)
92
92
  yield [:NEXT, @ss.scan(/\s*\|\s*.*/)]
93
+ elsif (tok = @ss.scan /CUR(RENT)?\b/i)
94
+ yield [:CURRENT, @ss.scan(/\s*\|\s*.*/)]
93
95
  elsif (tok = @ss.scan /NULL\b/i)
94
96
  yield [:NULL, nil]
95
97
  elsif (tok = @ss.scan /`([^`]|``)*`/)
@@ -98,8 +100,8 @@ def scan
98
100
  yield [:VALUE, tok.slice(1...-1).gsub(/''/, "'")]
99
101
  elsif (tok = @ss.scan /"([^"]|"")*"/) #"
100
102
  yield [:VALUE, tok.slice(1...-1).gsub(/""/, '"')]
101
- elsif (tok = @ss.scan /(0|[1-9]\d*)/)
102
- yield [:NATURAL_NUMBER, tok.to_i]
103
+ elsif (tok = @ss.scan /\d+(\.\d+)?/)
104
+ yield [:VALUE, tok]
103
105
  elsif (tok = @ss.scan /[,\(\)\*]/)
104
106
  yield [tok, tok]
105
107
  elsif (tok = @ss.scan /[a-z_$][-0-9a-z_$.]*\b/i)
@@ -133,57 +135,57 @@ end
133
135
  ##### State transition tables begin ###
134
136
 
135
137
  racc_action_table = [
136
- 14, 15, 69, 66, 27, 65, 31, 64, 44, 67,
137
- 67, 29, 16, 45, 65, 17, 64, 46, 18, 19,
138
- 20, 21, 42, 22, 23, 100, 96, 24, 25, 26,
139
- 73, 74, 38, 39, 95, 96, 59, 60, 47, 48,
140
- 49, 45, 50, 51, 52, 53, 54, 57, 57, 41,
141
- 61, 40, 37, 68, 43, 70, 71, 72, 36, 75,
142
- 57, 77, 78, 79, 80, 81, 31, 83, 84, 85,
143
- 86, 87, 89, 90, 91, 93, 94, 33, 97, 98,
144
- 93, 32 ]
138
+ 15, 9, 16, 71, 68, 29, 67, 33, 66, 46,
139
+ 69, 69, 31, 17, 47, 67, 18, 66, 48, 19,
140
+ 20, 21, 22, 23, 44, 24, 25, 102, 98, 26,
141
+ 27, 28, 75, 76, 40, 41, 97, 98, 61, 62,
142
+ 49, 50, 51, 47, 52, 53, 54, 55, 56, 59,
143
+ 59, 43, 63, 42, 39, 70, 45, 72, 73, 74,
144
+ 38, 77, 59, 79, 80, 81, 82, 83, 33, 85,
145
+ 86, 87, 88, 89, 91, 92, 93, 95, 96, 35,
146
+ 99, 100, 95, 34 ]
145
147
 
146
148
  racc_action_check = [
147
- 0, 0, 58, 55, 1, 54, 15, 54, 28, 58,
148
- 55, 15, 0, 30, 74, 0, 74, 32, 0, 0,
149
- 0, 0, 26, 0, 0, 99, 99, 0, 0, 0,
150
- 62, 62, 23, 23, 92, 92, 49, 49, 33, 33,
151
- 34, 35, 36, 37, 44, 45, 46, 47, 48, 25,
152
- 52, 24, 22, 57, 27, 59, 60, 61, 21, 66,
153
- 67, 68, 69, 70, 72, 73, 18, 75, 78, 79,
154
- 80, 81, 83, 84, 85, 87, 88, 17, 94, 96,
155
- 97, 16 ]
149
+ 0, 0, 0, 60, 57, 1, 56, 16, 56, 30,
150
+ 60, 57, 16, 0, 32, 76, 0, 76, 34, 0,
151
+ 0, 0, 0, 0, 28, 0, 0, 101, 101, 0,
152
+ 0, 0, 64, 64, 25, 25, 94, 94, 51, 51,
153
+ 35, 35, 36, 37, 38, 39, 46, 47, 48, 49,
154
+ 50, 27, 54, 26, 24, 59, 29, 61, 62, 63,
155
+ 23, 68, 69, 70, 71, 72, 74, 75, 19, 77,
156
+ 80, 81, 82, 83, 85, 86, 87, 89, 90, 18,
157
+ 96, 98, 99, 17 ]
156
158
 
157
159
  racc_action_pointer = [
158
- -1, 4, nil, nil, nil, nil, nil, nil, nil, nil,
159
- nil, nil, nil, nil, nil, 2, 67, 73, 62, nil,
160
- nil, 35, 29, 6, 47, 45, 18, 54, 5, nil,
161
- 1, nil, 13, 21, 37, 29, 38, 39, nil, nil,
162
- nil, nil, nil, nil, 40, 41, 36, 43, 44, 32,
163
- nil, nil, 45, nil, 1, -2, nil, 46, -3, 50,
164
- 50, 51, 19, nil, nil, nil, 53, 56, 53, 56,
165
- 57, nil, 57, 50, 10, 60, nil, nil, 61, 62,
166
- 62, 61, nil, 64, 65, 66, nil, 67, 64, nil,
167
- nil, nil, 23, nil, 68, nil, 71, 72, nil, 14,
168
- nil ]
160
+ -1, 5, nil, nil, nil, nil, nil, nil, nil, nil,
161
+ nil, nil, nil, nil, nil, nil, 2, 68, 74, 63,
162
+ nil, nil, nil, 35, 29, 6, 48, 46, 19, 56,
163
+ 5, nil, 1, nil, 13, 22, 38, 30, 39, 40,
164
+ nil, nil, nil, nil, nil, nil, 41, 42, 37, 44,
165
+ 45, 33, nil, nil, 46, nil, 1, -2, nil, 47,
166
+ -3, 51, 51, 52, 20, nil, nil, nil, 54, 57,
167
+ 54, 57, 58, nil, 58, 51, 10, 61, nil, nil,
168
+ 62, 63, 63, 62, nil, 65, 66, 67, nil, 68,
169
+ 65, nil, nil, nil, 24, nil, 69, nil, 72, 73,
170
+ nil, 15, nil ]
169
171
 
170
172
  racc_action_default = [
171
- -55, -55, -1, -2, -3, -4, -5, -6, -7, -8,
172
- -9, -10, -11, -12, -13, -15, -55, -55, -40, -42,
173
- -43, -55, -55, -55, -55, -55, -55, -55, -55, -16,
174
- -17, -51, -55, -55, -55, -41, -55, -55, -46, -47,
175
- -48, -49, -50, 101, -55, -55, -55, -55, -55, -55,
176
- -44, -45, -55, -52, -55, -26, -33, -55, -30, -37,
177
- -38, -55, -55, -21, -23, -24, -27, -55, -55, -31,
178
- -55, -39, -55, -55, -55, -28, -34, -35, -32, -55,
179
- -55, -55, -22, -55, -55, -55, -14, -55, -20, -25,
180
- -29, -36, -55, -53, -55, -18, -55, -55, -54, -55,
181
- -19 ]
173
+ -57, -57, -1, -2, -3, -4, -5, -6, -7, -8,
174
+ -9, -10, -11, -12, -13, -14, -16, -57, -57, -41,
175
+ -43, -44, -45, -57, -57, -57, -57, -57, -57, -57,
176
+ -57, -17, -18, -53, -57, -57, -57, -42, -57, -57,
177
+ -48, -49, -50, -51, -52, 103, -57, -57, -57, -57,
178
+ -57, -57, -46, -47, -57, -54, -57, -27, -34, -57,
179
+ -31, -38, -39, -57, -57, -22, -24, -25, -28, -57,
180
+ -57, -32, -57, -40, -57, -57, -57, -29, -35, -36,
181
+ -33, -57, -57, -57, -23, -57, -57, -57, -15, -57,
182
+ -21, -26, -30, -37, -57, -55, -57, -19, -57, -57,
183
+ -56, -57, -20 ]
182
184
 
183
185
  racc_goto_table = [
184
- 63, 92, 30, 55, 58, 35, 12, 6, 7, 8,
185
- 9, 99, 10, 11, 5, 13, 28, 1, 88, 4,
186
- 82, 62, 3, 2, 76, 34 ]
186
+ 65, 94, 32, 57, 60, 37, 13, 6, 7, 8,
187
+ 10, 101, 11, 12, 5, 14, 30, 1, 90, 4,
188
+ 84, 64, 3, 2, 78, 36 ]
187
189
 
188
190
  racc_goto_check = [
189
191
  19, 17, 15, 20, 20, 15, 12, 6, 7, 8,
@@ -192,109 +194,113 @@ racc_goto_check = [
192
194
 
193
195
  racc_goto_pointer = [
194
196
  nil, 17, 23, 22, 19, 14, 7, 8, 9, 10,
195
- 12, 13, 6, 15, 1, -13, -63, -86, -33, -54,
196
- -44, -43, 7 ]
197
+ 12, 13, 6, 15, 0, -14, -65, -88, -35, -56,
198
+ -46, -45, 6 ]
197
199
 
198
200
  racc_goto_default = [
199
201
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
200
202
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
201
- nil, 56, nil ]
203
+ nil, 58, nil ]
202
204
 
203
205
  racc_reduce_table = [
204
206
  0, 0, :racc_error,
205
- 1, 32, :_reduce_none,
206
- 1, 32, :_reduce_none,
207
- 1, 32, :_reduce_none,
208
- 1, 32, :_reduce_none,
209
- 1, 32, :_reduce_none,
210
- 1, 32, :_reduce_none,
211
- 1, 32, :_reduce_none,
212
- 1, 32, :_reduce_none,
213
- 1, 32, :_reduce_none,
214
- 1, 32, :_reduce_none,
215
- 1, 32, :_reduce_none,
216
- 1, 32, :_reduce_none,
217
- 1, 32, :_reduce_13,
218
- 8, 33, :_reduce_14,
219
- 0, 45, :_reduce_15,
220
- 1, 45, :_reduce_16,
221
- 1, 45, :_reduce_none,
222
- 3, 47, :_reduce_18,
223
- 5, 47, :_reduce_19,
224
- 8, 34, :_reduce_20,
225
- 1, 49, :_reduce_21,
226
- 3, 49, :_reduce_22,
227
- 1, 50, :_reduce_none,
228
- 1, 50, :_reduce_none,
229
- 8, 35, :_reduce_25,
230
- 4, 35, :_reduce_26,
231
- 5, 35, :_reduce_27,
232
- 6, 35, :_reduce_28,
233
- 8, 36, :_reduce_29,
234
- 4, 36, :_reduce_30,
235
- 5, 36, :_reduce_31,
236
- 6, 36, :_reduce_32,
237
- 1, 51, :_reduce_33,
238
- 3, 51, :_reduce_34,
239
- 3, 52, :_reduce_35,
240
- 8, 37, :_reduce_36,
241
- 4, 37, :_reduce_37,
242
- 4, 37, :_reduce_38,
243
- 5, 37, :_reduce_39,
244
- 0, 53, :_reduce_40,
245
- 1, 53, :_reduce_none,
246
- 1, 38, :_reduce_42,
247
- 1, 39, :_reduce_43,
248
- 3, 40, :_reduce_44,
249
- 3, 41, :_reduce_45,
250
- 2, 42, :_reduce_46,
251
- 2, 42, :_reduce_47,
252
- 2, 43, :_reduce_48,
207
+ 1, 34, :_reduce_none,
208
+ 1, 34, :_reduce_none,
209
+ 1, 34, :_reduce_none,
210
+ 1, 34, :_reduce_none,
211
+ 1, 34, :_reduce_none,
212
+ 1, 34, :_reduce_none,
213
+ 1, 34, :_reduce_none,
214
+ 1, 34, :_reduce_none,
215
+ 1, 34, :_reduce_none,
216
+ 1, 34, :_reduce_none,
217
+ 1, 34, :_reduce_none,
218
+ 1, 34, :_reduce_none,
219
+ 1, 34, :_reduce_none,
220
+ 1, 34, :_reduce_14,
221
+ 8, 35, :_reduce_15,
222
+ 0, 47, :_reduce_16,
223
+ 1, 47, :_reduce_17,
224
+ 1, 47, :_reduce_none,
225
+ 3, 49, :_reduce_19,
226
+ 5, 49, :_reduce_20,
227
+ 8, 36, :_reduce_21,
228
+ 1, 51, :_reduce_22,
229
+ 3, 51, :_reduce_23,
230
+ 1, 52, :_reduce_none,
231
+ 1, 52, :_reduce_none,
232
+ 8, 37, :_reduce_26,
233
+ 4, 37, :_reduce_27,
234
+ 5, 37, :_reduce_28,
235
+ 6, 37, :_reduce_29,
236
+ 8, 38, :_reduce_30,
237
+ 4, 38, :_reduce_31,
238
+ 5, 38, :_reduce_32,
239
+ 6, 38, :_reduce_33,
240
+ 1, 53, :_reduce_34,
241
+ 3, 53, :_reduce_35,
242
+ 3, 54, :_reduce_36,
243
+ 8, 39, :_reduce_37,
244
+ 4, 39, :_reduce_38,
245
+ 4, 39, :_reduce_39,
246
+ 5, 39, :_reduce_40,
247
+ 0, 55, :_reduce_41,
248
+ 1, 55, :_reduce_none,
249
+ 1, 40, :_reduce_43,
250
+ 1, 41, :_reduce_44,
251
+ 1, 41, :_reduce_45,
252
+ 3, 42, :_reduce_46,
253
+ 3, 43, :_reduce_47,
254
+ 2, 44, :_reduce_48,
253
255
  2, 44, :_reduce_49,
254
- 2, 44, :_reduce_50,
255
- 1, 46, :_reduce_51,
256
- 3, 46, :_reduce_52,
256
+ 2, 45, :_reduce_50,
257
+ 2, 46, :_reduce_51,
258
+ 2, 46, :_reduce_52,
257
259
  1, 48, :_reduce_53,
258
- 3, 48, :_reduce_54 ]
260
+ 3, 48, :_reduce_54,
261
+ 1, 50, :_reduce_55,
262
+ 3, 50, :_reduce_56 ]
259
263
 
260
- racc_reduce_n = 55
264
+ racc_reduce_n = 57
261
265
 
262
- racc_shift_n = 101
266
+ racc_shift_n = 103
263
267
 
264
268
  racc_token_table = {
265
269
  false => 0,
266
270
  :error => 1,
267
- :GET => 2,
268
- :FROM => 3,
269
- :IDENTIFIER => 4,
270
- :WHERE => 5,
271
- :ITEMNAME => 6,
272
- "=" => 7,
273
- :VALUE => 8,
274
- "*" => 9,
275
- "(" => 10,
276
- ")" => 11,
277
- "," => 12,
278
- :INSERT => 13,
279
- :INTO => 14,
280
- :VALUES => 15,
281
- :UPDATE => 16,
282
- :SET => 17,
283
- :ADD => 18,
284
- :DELETE => 19,
285
- :SELECT => 20,
286
- :NEXT => 21,
287
- :CREATE => 22,
288
- :DOMAIN => 23,
289
- :DROP => 24,
290
- :SHOW => 25,
291
- :DOMAINS => 26,
292
- :REGIONS => 27,
293
- :USE => 28,
294
- :DESC => 29,
295
- :DESCRIBE => 30 }
296
-
297
- racc_nt_base = 31
271
+ :current_stmt => 2,
272
+ :GET => 3,
273
+ :FROM => 4,
274
+ :IDENTIFIER => 5,
275
+ :WHERE => 6,
276
+ :ITEMNAME => 7,
277
+ "=" => 8,
278
+ :VALUE => 9,
279
+ "*" => 10,
280
+ "(" => 11,
281
+ ")" => 12,
282
+ "," => 13,
283
+ :INSERT => 14,
284
+ :INTO => 15,
285
+ :VALUES => 16,
286
+ :UPDATE => 17,
287
+ :SET => 18,
288
+ :ADD => 19,
289
+ :DELETE => 20,
290
+ :SELECT => 21,
291
+ :NEXT => 22,
292
+ :CURRENT => 23,
293
+ :CREATE => 24,
294
+ :DOMAIN => 25,
295
+ :DROP => 26,
296
+ :SHOW => 27,
297
+ :DOMAINS => 28,
298
+ :REGIONS => 29,
299
+ :USE => 30,
300
+ :DESC => 31,
301
+ :DESCRIBE => 32 }
302
+
303
+ racc_nt_base = 33
298
304
 
299
305
  racc_use_result_var = false
300
306
 
@@ -317,6 +323,7 @@ Racc_arg = [
317
323
  Racc_token_to_s_table = [
318
324
  "$end",
319
325
  "error",
326
+ "current_stmt",
320
327
  "GET",
321
328
  "FROM",
322
329
  "IDENTIFIER",
@@ -337,6 +344,7 @@ Racc_token_to_s_table = [
337
344
  "DELETE",
338
345
  "SELECT",
339
346
  "NEXT",
347
+ "CURRENT",
340
348
  "CREATE",
341
349
  "DOMAIN",
342
350
  "DROP",
@@ -400,52 +408,54 @@ Racc_debug_parser = false
400
408
 
401
409
  # reduce 12 omitted
402
410
 
403
- module_eval(<<'.,.,', 'sdb-parser.y', 17)
404
- def _reduce_13(val, _values)
411
+ # reduce 13 omitted
412
+
413
+ module_eval(<<'.,.,', 'sdb-parser.y', 18)
414
+ def _reduce_14(val, _values)
405
415
  @stmt_with_expr
406
416
 
407
417
  end
408
418
  .,.,
409
419
 
410
- module_eval(<<'.,.,', 'sdb-parser.y', 22)
411
- def _reduce_14(val, _values)
420
+ module_eval(<<'.,.,', 'sdb-parser.y', 23)
421
+ def _reduce_15(val, _values)
412
422
  struct(:GET, :domain => val[3], :item_name => val[7], :attr_names => val[1])
413
423
 
414
424
  end
415
425
  .,.,
416
426
 
417
- module_eval(<<'.,.,', 'sdb-parser.y', 27)
418
- def _reduce_15(val, _values)
427
+ module_eval(<<'.,.,', 'sdb-parser.y', 28)
428
+ def _reduce_16(val, _values)
419
429
  []
420
430
 
421
431
  end
422
432
  .,.,
423
433
 
424
- module_eval(<<'.,.,', 'sdb-parser.y', 31)
425
- def _reduce_16(val, _values)
434
+ module_eval(<<'.,.,', 'sdb-parser.y', 32)
435
+ def _reduce_17(val, _values)
426
436
  []
427
437
 
428
438
  end
429
439
  .,.,
430
440
 
431
- # reduce 17 omitted
441
+ # reduce 18 omitted
432
442
 
433
- module_eval(<<'.,.,', 'sdb-parser.y', 37)
434
- def _reduce_18(val, _values)
443
+ module_eval(<<'.,.,', 'sdb-parser.y', 38)
444
+ def _reduce_19(val, _values)
435
445
  [val[1]]
436
446
 
437
447
  end
438
448
  .,.,
439
449
 
440
- module_eval(<<'.,.,', 'sdb-parser.y', 41)
441
- def _reduce_19(val, _values)
450
+ module_eval(<<'.,.,', 'sdb-parser.y', 42)
451
+ def _reduce_20(val, _values)
442
452
  val[0] + [val[3]]
443
453
 
444
454
  end
445
455
  .,.,
446
456
 
447
- module_eval(<<'.,.,', 'sdb-parser.y', 46)
448
- def _reduce_20(val, _values)
457
+ module_eval(<<'.,.,', 'sdb-parser.y', 47)
458
+ def _reduce_21(val, _values)
449
459
  items = val[7].map do |vals|
450
460
  unless val[4].length == vals.length
451
461
  raise Racc::ParseError, 'The number of an attribute and values differs'
@@ -470,26 +480,26 @@ module_eval(<<'.,.,', 'sdb-parser.y', 46)
470
480
  end
471
481
  .,.,
472
482
 
473
- module_eval(<<'.,.,', 'sdb-parser.y', 70)
474
- def _reduce_21(val, _values)
483
+ module_eval(<<'.,.,', 'sdb-parser.y', 71)
484
+ def _reduce_22(val, _values)
475
485
  [val[0]]
476
486
 
477
487
  end
478
488
  .,.,
479
489
 
480
- module_eval(<<'.,.,', 'sdb-parser.y', 74)
481
- def _reduce_22(val, _values)
490
+ module_eval(<<'.,.,', 'sdb-parser.y', 75)
491
+ def _reduce_23(val, _values)
482
492
  val[0] + [val[2]]
483
493
 
484
494
  end
485
495
  .,.,
486
496
 
487
- # reduce 23 omitted
488
-
489
497
  # reduce 24 omitted
490
498
 
491
- module_eval(<<'.,.,', 'sdb-parser.y', 82)
492
- def _reduce_25(val, _values)
499
+ # reduce 25 omitted
500
+
501
+ module_eval(<<'.,.,', 'sdb-parser.y', 83)
502
+ def _reduce_26(val, _values)
493
503
  attrs = {}
494
504
  val[3].each {|k, v| attrs[k] = v }
495
505
  struct(:UPDATE, :domain => val[1], :items => [[val[7], attrs]])
@@ -497,8 +507,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 82)
497
507
  end
498
508
  .,.,
499
509
 
500
- module_eval(<<'.,.,', 'sdb-parser.y', 88)
501
- def _reduce_26(val, _values)
510
+ module_eval(<<'.,.,', 'sdb-parser.y', 89)
511
+ def _reduce_27(val, _values)
502
512
  attrs = {}
503
513
  val[3].each {|k, v| attrs[k] = v }
504
514
  @stmt_with_expr = struct(:UPDATE_WITH_EXPR, :domain => val[1], :attrs => attrs, :expr => '')
@@ -506,8 +516,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 88)
506
516
  end
507
517
  .,.,
508
518
 
509
- module_eval(<<'.,.,', 'sdb-parser.y', 94)
510
- def _reduce_27(val, _values)
519
+ module_eval(<<'.,.,', 'sdb-parser.y', 95)
520
+ def _reduce_28(val, _values)
511
521
  attrs = {}
512
522
  val[3].each {|k, v| attrs[k] = v }
513
523
  @stmt_with_expr = struct(:UPDATE_WITH_EXPR, :domain => val[1], :attrs => attrs, :expr => 'WHERE ')
@@ -515,8 +525,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 94)
515
525
  end
516
526
  .,.,
517
527
 
518
- module_eval(<<'.,.,', 'sdb-parser.y', 100)
519
- def _reduce_28(val, _values)
528
+ module_eval(<<'.,.,', 'sdb-parser.y', 101)
529
+ def _reduce_29(val, _values)
520
530
  attrs = {}
521
531
  val[3].each {|k, v| attrs[k] = v }
522
532
  @stmt_with_expr = struct(:UPDATE_WITH_EXPR, :domain => val[1], :attrs => attrs, :expr => 'WHERE itemName')
@@ -524,8 +534,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 100)
524
534
  end
525
535
  .,.,
526
536
 
527
- module_eval(<<'.,.,', 'sdb-parser.y', 107)
528
- def _reduce_29(val, _values)
537
+ module_eval(<<'.,.,', 'sdb-parser.y', 108)
538
+ def _reduce_30(val, _values)
529
539
  attrs = {}
530
540
  val[3].each {|k, v| attrs[k] = v }
531
541
  struct(:MERGE, :domain => val[1], :items => [[val[7], attrs]])
@@ -533,8 +543,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 107)
533
543
  end
534
544
  .,.,
535
545
 
536
- module_eval(<<'.,.,', 'sdb-parser.y', 113)
537
- def _reduce_30(val, _values)
546
+ module_eval(<<'.,.,', 'sdb-parser.y', 114)
547
+ def _reduce_31(val, _values)
538
548
  attrs = {}
539
549
  val[3].each {|k, v| attrs[k] = v }
540
550
  @stmt_with_expr = struct(:MERGE_WITH_EXPR, :domain => val[1], :attrs => attrs, :expr => '')
@@ -542,8 +552,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 113)
542
552
  end
543
553
  .,.,
544
554
 
545
- module_eval(<<'.,.,', 'sdb-parser.y', 119)
546
- def _reduce_31(val, _values)
555
+ module_eval(<<'.,.,', 'sdb-parser.y', 120)
556
+ def _reduce_32(val, _values)
547
557
  attrs = {}
548
558
  val[3].each {|k, v| attrs[k] = v }
549
559
  @stmt_with_expr = struct(:MERGE_WITH_EXPR, :domain => val[1], :attrs => attrs, :expr => 'WHERE ')
@@ -551,8 +561,8 @@ module_eval(<<'.,.,', 'sdb-parser.y', 119)
551
561
  end
552
562
  .,.,
553
563
 
554
- module_eval(<<'.,.,', 'sdb-parser.y', 125)
555
- def _reduce_32(val, _values)
564
+ module_eval(<<'.,.,', 'sdb-parser.y', 126)
565
+ def _reduce_33(val, _values)
556
566
  attrs = {}
557
567
  val[3].each {|k, v| attrs[k] = v }
558
568
  @stmt_with_expr = struct(:MERGE_WITH_EXPR, :domain => val[1], :attrs => attrs, :expr => 'WHERE itemName')
@@ -560,66 +570,66 @@ module_eval(<<'.,.,', 'sdb-parser.y', 125)
560
570
  end
561
571
  .,.,
562
572
 
563
- module_eval(<<'.,.,', 'sdb-parser.y', 132)
564
- def _reduce_33(val, _values)
573
+ module_eval(<<'.,.,', 'sdb-parser.y', 133)
574
+ def _reduce_34(val, _values)
565
575
  [val[0]]
566
576
 
567
577
  end
568
578
  .,.,
569
579
 
570
- module_eval(<<'.,.,', 'sdb-parser.y', 136)
571
- def _reduce_34(val, _values)
580
+ module_eval(<<'.,.,', 'sdb-parser.y', 137)
581
+ def _reduce_35(val, _values)
572
582
  val[0] + [val[2]]
573
583
 
574
584
  end
575
585
  .,.,
576
586
 
577
- module_eval(<<'.,.,', 'sdb-parser.y', 141)
578
- def _reduce_35(val, _values)
587
+ module_eval(<<'.,.,', 'sdb-parser.y', 142)
588
+ def _reduce_36(val, _values)
579
589
  [val[0], val[2]]
580
590
 
581
591
  end
582
592
  .,.,
583
593
 
584
- module_eval(<<'.,.,', 'sdb-parser.y', 146)
585
- def _reduce_36(val, _values)
594
+ module_eval(<<'.,.,', 'sdb-parser.y', 147)
595
+ def _reduce_37(val, _values)
586
596
  struct(:DELETE, :domain => val[3], :items => [[val[7], val[1]]])
587
597
 
588
598
  end
589
599
  .,.,
590
600
 
591
- module_eval(<<'.,.,', 'sdb-parser.y', 150)
592
- def _reduce_37(val, _values)
601
+ module_eval(<<'.,.,', 'sdb-parser.y', 151)
602
+ def _reduce_38(val, _values)
593
603
  @stmt_with_expr = struct(:DELETE_WITH_EXPR, :domain => val[3], :attrs => val[1], :expr => '')
594
604
 
595
605
  end
596
606
  .,.,
597
607
 
598
- module_eval(<<'.,.,', 'sdb-parser.y', 154)
599
- def _reduce_38(val, _values)
608
+ module_eval(<<'.,.,', 'sdb-parser.y', 155)
609
+ def _reduce_39(val, _values)
600
610
  @stmt_with_expr = struct(:DELETE_WITH_EXPR, :domain => val[3], :attrs => val[1], :expr => 'WHERE ')
601
611
 
602
612
  end
603
613
  .,.,
604
614
 
605
- module_eval(<<'.,.,', 'sdb-parser.y', 158)
606
- def _reduce_39(val, _values)
615
+ module_eval(<<'.,.,', 'sdb-parser.y', 159)
616
+ def _reduce_40(val, _values)
607
617
  @stmt_with_expr = struct(:DELETE_WITH_EXPR, :domain => val[3], :attrs => val[1], :expr => 'WHERE itemName')
608
618
 
609
619
  end
610
620
  .,.,
611
621
 
612
- module_eval(<<'.,.,', 'sdb-parser.y', 163)
613
- def _reduce_40(val, _values)
622
+ module_eval(<<'.,.,', 'sdb-parser.y', 164)
623
+ def _reduce_41(val, _values)
614
624
  []
615
625
 
616
626
  end
617
627
  .,.,
618
628
 
619
- # reduce 41 omitted
629
+ # reduce 42 omitted
620
630
 
621
- module_eval(<<'.,.,', 'sdb-parser.y', 169)
622
- def _reduce_42(val, _values)
631
+ module_eval(<<'.,.,', 'sdb-parser.y', 170)
632
+ def _reduce_43(val, _values)
623
633
  query = ''
624
634
  ruby = nil
625
635
 
@@ -646,86 +656,94 @@ module_eval(<<'.,.,', 'sdb-parser.y', 169)
646
656
  end
647
657
  .,.,
648
658
 
649
- module_eval(<<'.,.,', 'sdb-parser.y', 195)
650
- def _reduce_43(val, _values)
659
+ module_eval(<<'.,.,', 'sdb-parser.y', 196)
660
+ def _reduce_44(val, _values)
651
661
  ruby = val[0].sub(/\A\s*\|\s*/, '') if val[0]
652
662
  struct(:NEXT, :ruby => ruby)
653
663
 
654
664
  end
655
665
  .,.,
656
666
 
657
- module_eval(<<'.,.,', 'sdb-parser.y', 201)
658
- def _reduce_44(val, _values)
667
+ module_eval(<<'.,.,', 'sdb-parser.y', 202)
668
+ def _reduce_45(val, _values)
669
+ ruby = val[0].sub(/\A\s*\|\s*/, '') if val[0]
670
+ struct(:CURRENT, :ruby => ruby)
671
+
672
+ end
673
+ .,.,
674
+
675
+ module_eval(<<'.,.,', 'sdb-parser.y', 208)
676
+ def _reduce_46(val, _values)
659
677
  struct(:CREATE, :domain => val[2])
660
678
 
661
679
  end
662
680
  .,.,
663
681
 
664
- module_eval(<<'.,.,', 'sdb-parser.y', 206)
665
- def _reduce_45(val, _values)
682
+ module_eval(<<'.,.,', 'sdb-parser.y', 213)
683
+ def _reduce_47(val, _values)
666
684
  struct(:DROP, :domain => val[2])
667
685
 
668
686
  end
669
687
  .,.,
670
688
 
671
- module_eval(<<'.,.,', 'sdb-parser.y', 211)
672
- def _reduce_46(val, _values)
689
+ module_eval(<<'.,.,', 'sdb-parser.y', 218)
690
+ def _reduce_48(val, _values)
673
691
  struct(:SHOW, :operand => :domains)
674
692
 
675
693
  end
676
694
  .,.,
677
695
 
678
- module_eval(<<'.,.,', 'sdb-parser.y', 215)
679
- def _reduce_47(val, _values)
696
+ module_eval(<<'.,.,', 'sdb-parser.y', 222)
697
+ def _reduce_49(val, _values)
680
698
  struct(:SHOW, :operand => :regions)
681
699
 
682
700
  end
683
701
  .,.,
684
702
 
685
- module_eval(<<'.,.,', 'sdb-parser.y', 219)
686
- def _reduce_48(val, _values)
703
+ module_eval(<<'.,.,', 'sdb-parser.y', 226)
704
+ def _reduce_50(val, _values)
687
705
  struct(:USE, :endpoint => val[1])
688
706
 
689
707
  end
690
708
  .,.,
691
709
 
692
- module_eval(<<'.,.,', 'sdb-parser.y', 223)
693
- def _reduce_49(val, _values)
710
+ module_eval(<<'.,.,', 'sdb-parser.y', 230)
711
+ def _reduce_51(val, _values)
694
712
  struct(:DESCRIBE, :domain => val[1])
695
713
 
696
714
  end
697
715
  .,.,
698
716
 
699
- module_eval(<<'.,.,', 'sdb-parser.y', 227)
700
- def _reduce_50(val, _values)
717
+ module_eval(<<'.,.,', 'sdb-parser.y', 234)
718
+ def _reduce_52(val, _values)
701
719
  struct(:DESCRIBE, :domain => val[1])
702
720
 
703
721
  end
704
722
  .,.,
705
723
 
706
- module_eval(<<'.,.,', 'sdb-parser.y', 232)
707
- def _reduce_51(val, _values)
724
+ module_eval(<<'.,.,', 'sdb-parser.y', 239)
725
+ def _reduce_53(val, _values)
708
726
  [val[0]]
709
727
 
710
728
  end
711
729
  .,.,
712
730
 
713
- module_eval(<<'.,.,', 'sdb-parser.y', 236)
714
- def _reduce_52(val, _values)
731
+ module_eval(<<'.,.,', 'sdb-parser.y', 243)
732
+ def _reduce_54(val, _values)
715
733
  val[0] + [val[2]]
716
734
 
717
735
  end
718
736
  .,.,
719
737
 
720
- module_eval(<<'.,.,', 'sdb-parser.y', 241)
721
- def _reduce_53(val, _values)
738
+ module_eval(<<'.,.,', 'sdb-parser.y', 248)
739
+ def _reduce_55(val, _values)
722
740
  [val[0]]
723
741
 
724
742
  end
725
743
  .,.,
726
744
 
727
- module_eval(<<'.,.,', 'sdb-parser.y', 245)
728
- def _reduce_54(val, _values)
745
+ module_eval(<<'.,.,', 'sdb-parser.y', 252)
746
+ def _reduce_56(val, _values)
729
747
  [val[0], val[2]].flatten
730
748
 
731
749
  end
@@ -8,6 +8,7 @@ rule
8
8
  | delete_stmt
9
9
  | select_stmt
10
10
  | next_stmt
11
+ | current_stmt
11
12
  | create_stmt
12
13
  | drop_stmt
13
14
  | show_stmt
@@ -197,6 +198,12 @@ rule
197
198
  struct(:NEXT, :ruby => ruby)
198
199
  }
199
200
 
201
+ next_stmt : CURRENT
202
+ {
203
+ ruby = val[0].sub(/\A\s*\|\s*/, '') if val[0]
204
+ struct(:CURRENT, :ruby => ruby)
205
+ }
206
+
200
207
  create_stmt : CREATE DOMAIN IDENTIFIER
201
208
  {
202
209
  struct(:CREATE, :domain => val[2])
@@ -329,6 +336,8 @@ def scan
329
336
  yield [:SELECT, tok + @ss.scan(/.*/)]
330
337
  elsif (tok = @ss.scan /NEXT\b/i)
331
338
  yield [:NEXT, @ss.scan(/\s*\|\s*.*/)]
339
+ elsif (tok = @ss.scan /CUR(RENT)?\b/i)
340
+ yield [:CURRENT, @ss.scan(/\s*\|\s*.*/)]
332
341
  elsif (tok = @ss.scan /NULL\b/i)
333
342
  yield [:NULL, nil]
334
343
  elsif (tok = @ss.scan /`([^`]|``)*`/)
@@ -337,8 +346,8 @@ def scan
337
346
  yield [:VALUE, tok.slice(1...-1).gsub(/''/, "'")]
338
347
  elsif (tok = @ss.scan /"([^"]|"")*"/) #"
339
348
  yield [:VALUE, tok.slice(1...-1).gsub(/""/, '"')]
340
- elsif (tok = @ss.scan /(0|[1-9]\d*)/)
341
- yield [:NATURAL_NUMBER, tok.to_i]
349
+ elsif (tok = @ss.scan /\d+(\.\d+)?/)
350
+ yield [:VALUE, tok]
342
351
  elsif (tok = @ss.scan /[,\(\)\*]/)
343
352
  yield [tok, tok]
344
353
  elsif (tok = @ss.scan /[a-z_$][-0-9a-z_$.]*\b/i)
@@ -132,12 +132,14 @@ module SimpleDB
132
132
  rownum = items.length
133
133
  @driver.delete(parsed.domain, items)
134
134
  Rownum.new(rownum)
135
- when :SELECT, :NEXT
135
+ when :SELECT, :NEXT, :CURRENT
136
136
  items = case command
137
137
  when :SELECT
138
138
  @driver.select(parsed.query, consistent, true)
139
139
  when :NEXT
140
140
  @driver.next_list(consistent)
141
+ when :CURRENT
142
+ @driver.current_list(consistent)
141
143
  else
142
144
  raise 'must not happen'
143
145
  end
metadata CHANGED
@@ -1,59 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sdbcli
3
- version: !ruby/object:Gem::Version
4
- hash: 17
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.6
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 5
10
- version: 1.3.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - winebarrel
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-02-04 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-02-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: nokogiri
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: json
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
38
33
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
46
38
  type: :runtime
47
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
48
46
  description:
49
47
  email: sgwr_dts@yahoo.co.jp
50
- executables:
48
+ executables:
51
49
  - sdbcli
52
50
  extensions: []
53
-
54
51
  extra_rdoc_files: []
55
-
56
- files:
52
+ files:
57
53
  - README
58
54
  - bin/sdbcli
59
55
  - lib/sdbcli/sdb-client.rb
@@ -64,36 +60,26 @@ files:
64
60
  - lib/sdbcli.rb
65
61
  homepage: https://bitbucket.org/winebarrel/sdbcli
66
62
  licenses: []
67
-
68
63
  post_install_message:
69
64
  rdoc_options: []
70
-
71
- require_paths:
65
+ require_paths:
72
66
  - lib
73
- required_ruby_version: !ruby/object:Gem::Requirement
67
+ required_ruby_version: !ruby/object:Gem::Requirement
74
68
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 0
81
- version: "0"
82
- required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
74
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
91
79
  requirements: []
92
-
93
80
  rubyforge_project:
94
- rubygems_version: 1.8.24
81
+ rubygems_version: 1.8.23
95
82
  signing_key:
96
83
  specification_version: 3
97
84
  summary: sdbcli is an interactive command-line client of Amazon SimpleDB.
98
85
  test_files: []
99
-