ddbcli 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 989847bbd044a7f8b55277fcf79d6f87497ce6dc
4
- data.tar.gz: ebd92af86e25aa7f696851966c09ff62706f0667
3
+ metadata.gz: 0ed0ee9d9dc097573bbdf49182bcef2a8751af2e
4
+ data.tar.gz: 112ce4939ccb1cbfb083bc785cae474427b1f03d
5
5
  SHA512:
6
- metadata.gz: fd546866388539e3f4881b098c734fffe1c9c6237de8f6edb28164d9007d3bcd00d088457ae3100fc4c49b92d11a9c6e40785aa27586a2e4db24bc9a918707d8
7
- data.tar.gz: cd554bcd559c6d3e396d43e754844412e421d02f23e21e071fec7df14a8e476e470b9958e4c1c492329d37437b276c3c063dbed2d9463954b27d8cf4e1181bfb
6
+ metadata.gz: 9fe3469ade8447b7a46fe768a75e8939b01b1486193e69b201d2ae4c4f0d4452b37db3dd9c17a3dea76b4a5215fa38766b5d6243559771bffbecfae696935a35
7
+ data.tar.gz: 4edef9cd083130f4f1f39abb280c1e28c272fec6769817b98de87cca7bb4978c77c2b9b478d6dce9792a4ef0b741778f1998a84377b832ed6878b72da066aaab
data/README.md CHANGED
@@ -11,12 +11,13 @@ ddbcli is an interactive command-line client of Amazon DynamoDB.
11
11
 
12
12
  If you are not using RubyGems, you can use the script files that depend on only Ruby.
13
13
 
14
- [ddbcli-0.3.5](https://bitbucket.org/winebarrel/ddbcli/downloads/ddbcli-0.3.5)
14
+ [ddbcli-0.3.6](https://bitbucket.org/winebarrel/ddbcli/downloads/ddbcli-0.3.6)
15
15
 
16
16
  ```sh
17
- wget https://bitbucket.org/winebarrel/ddbcli/downloads/ddbcli-0.3.5
18
- sudo cp ddbcli-0.3.5 /usr/local/bin/ddbcli
19
- sudo chmod 755 /usr/local/bin/ddbcli
17
+ wget https://bitbucket.org/winebarrel/ddbcli/downloads/ddbcli-0.3.6
18
+ mv ddbcli-0.3.6 ddbcli
19
+ chmod 755 ddbcli
20
+ ./ddbcli # show prompt
20
21
  ```
21
22
 
22
23
  ## Usage
@@ -61,7 +62,7 @@ DEBUG: 'i' contains: [{"gender"=>"F"}, {"gender"=>"F"}, {"gender"=>"F"}] ...
61
62
 
62
63
  * [https://gist.github.com/winebarrel/7938971](https://gist.github.com/winebarrel/7938971)
63
64
 
64
- ## Enabling ctrl-r (reverse-search-history) on OS X
65
+ ## Enable ctrl-r (reverse-search-history) on OS X
65
66
 
66
67
  $ echo 'bind "^R" em-inc-search-prev' >> ~/.editrc
67
68
 
@@ -121,7 +122,7 @@ DELETE ALL FROM table_name WHERE [WHERE attr1 = '...' AND ...] [ORDER {ASC|DESC}
121
122
  deletes items
122
123
  ("DELETE" can delete only one record. Please use "DELETE ALL", when you update more than one.)
123
124
 
124
- SELECT {*|attr1,attr2,...|COUNT(*)} FROM table_name [USE INDEX (index_name)] [WHERE key1 = '...' AND ...] [ORDER {ASC|DESC}] [LIMIT limit]
125
+ SELECT {*|attr1,attr2,...|COUNT(*)} FROM table_name [USE INDEX (index_name)] [WHERE key1 = '...' AND ...] [HAVING attr1 = '...' AND ...] [ORDER {ASC|DESC}] [LIMIT limit]
125
126
  SELECT ALL {*|attr1,attr2,...|COUNT(*)} FROM table_name [WHERE attr1 = '...' AND ...] [LIMIT limit]
126
127
  SELECT segment/total_segments {*|attr1,attr2,...|COUNT(*)} FROM table_name [WHERE attr1 = '...' AND ...] [LIMIT limit]
127
128
  queries using the Query/Scan action
@@ -162,9 +163,10 @@ Query (SELECT)
162
163
  = | <= | < | >= | > | BEGINS_WITH | BETWEEN
163
164
  see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-KeyConditions
164
165
 
165
- Scan (SELECT ALL)
166
+ Scan (SELECT ALL), QueryFilter (HAVING)
166
167
  = | <> | != | <= | < | >= | > | IS NOT NULL | IS NULL | CONTAINS | NOT CONTAINS | BEGINS_WITH | IN | BETWEEN
167
- see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request-ScanFilter
168
+ see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request-ScanFilter,
169
+ http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-QueryFilter
168
170
 
169
171
 
170
172
  ##### Pass to Ruby/Shell #####
@@ -211,7 +213,3 @@ Append
211
213
  .timeout SECOND? displays a timeout second or changes it
212
214
  .version displays a version
213
215
  ```
214
-
215
- ## Link
216
-
217
- * [RubyGems.org site](http://rubygems.org/gems/ddbcli)
@@ -55,7 +55,7 @@ DELETE ALL FROM table_name WHERE [WHERE attr1 = '...' AND ...] [ORDER {ASC|DESC}
55
55
  deletes items
56
56
  ("DELETE" can delete only one record. Please use "DELETE ALL", when you update more than one.)
57
57
 
58
- SELECT {*|attr1,attr2,...|COUNT(*)} FROM table_name [USE INDEX (index_name)] [WHERE key1 = '...' AND ...] [ORDER {ASC|DESC}] [LIMIT limit]
58
+ SELECT {*|attr1,attr2,...|COUNT(*)} FROM table_name [USE INDEX (index_name)] [WHERE key1 = '...' AND ...] [HAVING attr1 = '...' AND ...] [ORDER {ASC|DESC}] [LIMIT limit]
59
59
  SELECT ALL {*|attr1,attr2,...|COUNT(*)} FROM table_name [WHERE attr1 = '...' AND ...] [LIMIT limit]
60
60
  SELECT segment/total_segments {*|attr1,attr2,...|COUNT(*)} FROM table_name [WHERE attr1 = '...' AND ...] [LIMIT limit]
61
61
  queries using the Query/Scan action
@@ -96,9 +96,10 @@ Query (SELECT)
96
96
  = | <= | < | >= | > | BEGINS_WITH | BETWEEN
97
97
  see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-KeyConditions
98
98
 
99
- Scan (SELECT ALL)
99
+ Scan (SELECT ALL), QueryFilter (HAVING)
100
100
  = | <> | != | <= | < | >= | > | IS NOT NULL | IS NULL | CONTAINS | NOT CONTAINS | BEGINS_WITH | IN | BETWEEN
101
- see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request-ScanFilter
101
+ see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request-ScanFilter,
102
+ http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-QueryFilter
102
103
 
103
104
 
104
105
  ##### Pass to Ruby/Shell #####
@@ -604,6 +604,21 @@ module DynamoDB
604
604
  end
605
605
  end # key conditions / scan filter
606
606
 
607
+ # query filter
608
+ if action == 'Query' and parsed.having
609
+ req_hash['QueryFilter'] = {}
610
+
611
+ parsed.having.each do |key, operator, values|
612
+ h = req_hash['QueryFilter'][key] = {
613
+ 'ComparisonOperator' => operator.to_s
614
+ }
615
+
616
+ h['AttributeValueList'] = values.map do |val|
617
+ convert_to_attribute_value(val)
618
+ end
619
+ end
620
+ end # query filter
621
+
607
622
  rd = nil
608
623
 
609
624
  begin