Author: stack Date: Sat Apr 17 02:48:29 2010 New Revision: 935113 URL: http://svn.apache.org/viewvc?rev=935113&view=rev Log: HBASE-2460 add_table.rb deletes any tables for which the target table name is a prefix
Modified: hadoop/hbase/branches/0.20/CHANGES.txt hadoop/hbase/branches/0.20/bin/add_table.rb Modified: hadoop/hbase/branches/0.20/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=935113&r1=935112&r2=935113&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/CHANGES.txt (original) +++ hadoop/hbase/branches/0.20/CHANGES.txt Sat Apr 17 02:48:29 2010 @@ -139,6 +139,8 @@ Release 0.20.4 - Unreleased HBASE-2453 Revisit compaction policies after HBASE-2248 commit (Jonathan Gray via Stack) HBASE-2458 Client stuck in TreeMap,remove (Todd Lipcon via Stack) + HBASE-2460 add_table.rb deletes any tables for which the target table name + is a prefix (Todd Lipcon via Stack) NEW FEATURES HBASE-2257 [stargate] multiuser mode Modified: hadoop/hbase/branches/0.20/bin/add_table.rb URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/bin/add_table.rb?rev=935113&r1=935112&r2=935113&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/bin/add_table.rb (original) +++ hadoop/hbase/branches/0.20/bin/add_table.rb Sat Apr 17 02:48:29 2010 @@ -69,11 +69,15 @@ end # Get cmdline args. srcdir = fs.makeQualified(Path.new(java.lang.String.new(ARGV[0]))) +if not fs.exists(srcdir) + raise IOError.new("src dir " + srcdir.toString() + " doesn't exist!") +end + # Get table name tableName = nil if ARGV.size > 1 tableName = ARGV[1] - raise IOError("Not supported yet") + raise IOError.new("Not supported yet") elsif # If none provided use dirname tableName = srcdir.getName() @@ -101,14 +105,15 @@ end # Scan the .META. and remove all lines that begin with tablename LOG.info("Deleting mention of " + tableName + " from .META.") metaTable = HTable.new(c, HConstants::META_TABLE_NAME) -scan = Scan.new(tableName.to_java_bytes) +tableNameMetaPrefix = tableName + HConstants::META_ROW_DELIMITER.chr +scan = Scan.new((tableNameMetaPrefix + HConstants::META_ROW_DELIMITER.chr).to_java_bytes) scanner = metaTable.getScanner(scan) # Use java.lang.String doing compares. Ruby String is a bit odd. tableNameStr = java.lang.String.new(tableName) while (result = scanner.next()) rowid = Bytes.toString(result.getRow()) rowidStr = java.lang.String.new(rowid) - if not rowidStr.startsWith(tableNameStr) + if not rowidStr.startsWith(tableNameMetaPrefix) # Gone too far, break break end