You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2009/12/20 20:50:28 UTC

svn commit: r892649 - in /hadoop/hbase/branches/0.20: CHANGES.txt bin/HBase.rb bin/hirb.rb

Author: apurtell
Date: Sun Dec 20 19:50:28 2009
New Revision: 892649

URL: http://svn.apache.org/viewvc?rev=892649&view=rev
Log:
HBASE-2028 Add HTable.incrementColumnValue support to shell

Modified:
    hadoop/hbase/branches/0.20/CHANGES.txt
    hadoop/hbase/branches/0.20/bin/HBase.rb
    hadoop/hbase/branches/0.20/bin/hirb.rb

Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=892649&r1=892648&r2=892649&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Sun Dec 20 19:50:28 2009
@@ -50,6 +50,8 @@
    HBASE-2049  Cleanup HLog binary log output (Dave Latham via Stack)
    HBASE-2060  Missing closing tag in mapreduce package info (Lars George via
                Andrew Purtell)
+   HBASE-2028  Add HTable.incrementColumnValue support to shell (Lars George
+               via Andrew Purtell)
 
 Release 0.20.2 - November 18th, 2009
   INCOMPATIBLE CHANGES

Modified: hadoop/hbase/branches/0.20/bin/HBase.rb
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/bin/HBase.rb?rev=892649&r1=892648&r2=892649&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/bin/HBase.rb (original)
+++ hadoop/hbase/branches/0.20/bin/HBase.rb Sun Dec 20 19:50:28 2009
@@ -462,6 +462,22 @@
       @formatter.footer(now)
     end
 
+    def incr(row, column, value = nil)
+      now = Time.now 
+      split = KeyValue.parseColumn(column.to_java_bytes)
+      family = split[0]
+      qualifier = nil
+      if split.length > 1
+        qualifier = split[1]
+      end
+      if value == nil
+        value = 1
+      end
+      @table.incrementColumnValue(row.to_java_bytes, family, qualifier, value)
+      @formatter.header()
+      @formatter.footer(now)
+    end
+
     def isMetaTable()
       tn = @table.getTableName()
       return Bytes.equals(tn, HConstants::META_TABLE_NAME) ||
@@ -619,6 +635,12 @@
     if formatter.rowCount() != 3
       raise IOError.new("Failed endrow test")
     end
+    # Verify that incr works
+    table.incr('incr1', 'c:1');
+    table.scan({COLUMNS => ['c:1']})
+    if formatter.rowCount() != 1
+      raise IOError.new("Failed incr test")
+    end
     # Verify that delete works
     table.delete('x1', 'x:1');
     table.scan(['x:1'])

Modified: hadoop/hbase/branches/0.20/bin/hirb.rb
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/bin/hirb.rb?rev=892649&r1=892648&r2=892649&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/bin/hirb.rb (original)
+++ hadoop/hbase/branches/0.20/bin/hirb.rb Sun Dec 20 19:50:28 2009
@@ -234,6 +234,14 @@
            hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, \\
              VERSIONS => 4}
 
+ incr      Increments a cell 'value' at specified table/row/column coordinates.
+           To increment a cell value in table 't1' at row 'r1' under column
+           'c1' by 1 (can be omitted) or 10 do:
+
+           hbase> incr 't1', 'r1', 'c1'
+           hbase> incr 't1', 'r1', 'c1', 1
+           hbase> incr 't1', 'r1', 'c1', 10
+
  list      List all tables in hbase
 
  put       Put a cell 'value' at specified table/row/column and optionally
@@ -401,6 +409,10 @@
   table(table).put(row, column, value, timestamp)
 end
   
+def incr(table, row, column, value = nil)
+  table(table).incr(row, column, value)
+end
+
 def scan(table, args = {})
   table(table).scan(args)
 end