Repository: tajo
Updated Branches:
  refs/heads/index_support 6f4409629 -> 2cbc1b9c7


TAJO-1598: TableMeta should change equals mechanism.

Closes #565

Signed-off-by: Jihoon Son <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/6977471e
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/6977471e
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/6977471e

Branch: refs/heads/index_support
Commit: 6977471e486ec9f77c24e17b51eef71f99978f13
Parents: 53ed1c3
Author: DaeMyung Kang <[email protected]>
Authored: Wed May 13 00:08:50 2015 +0900
Committer: Jihoon Son <[email protected]>
Committed: Wed May 13 00:08:50 2015 +0900

----------------------------------------------------------------------
 CHANGES                                         |  3 +++
 .../java/org/apache/tajo/catalog/TableMeta.java |  6 +++--
 .../org/apache/tajo/catalog/TestTableMeta.java  | 27 ++++++++++++++++++++
 3 files changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/6977471e/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 73fd2f3..4912114 100644
--- a/CHANGES
+++ b/CHANGES
@@ -123,6 +123,9 @@ Release 0.11.0 - unreleased
 
   BUG FIXES
 
+    TAJO-1598: TableMeta should change equals mechanism.
+    (Contributed by DaeMyung Kang, Committed by jihoon)
+
     TAJO-1593: Add missing stop condition to Taskrunner. (jinho)
 
     TAJO-1556: "insert into select" with reordered column list does not work.

http://git-wip-us.apache.org/repos/asf/tajo/blob/6977471e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableMeta.java
----------------------------------------------------------------------
diff --git 
a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableMeta.java
 
b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableMeta.java
index 59cba44..2b31b83 100644
--- 
a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableMeta.java
+++ 
b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableMeta.java
@@ -136,8 +136,10 @@ public class TableMeta implements 
ProtoObject<CatalogProtos.TableProto>, GsonObj
        public boolean equals(Object object) {
                if(object instanceof TableMeta) {
                        TableMeta other = (TableMeta) object;
-                       
-                       return this.getProto().equals(other.getProto());
+
+                       boolean eq = 
this.getStoreType().equals(other.getStoreType());
+                       eq = eq && this.getOptions().equals(other.getOptions());
+                       return eq;
                }
                
                return false;           

http://git-wip-us.apache.org/repos/asf/tajo/blob/6977471e/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
----------------------------------------------------------------------
diff --git 
a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
 
b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
index e1c0158..56c2ad2 100644
--- 
a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
+++ 
b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
@@ -22,6 +22,7 @@ import org.apache.tajo.catalog.json.CatalogGsonHelper;
 import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
 import org.apache.tajo.catalog.proto.CatalogProtos.TableProto;
 import org.apache.tajo.common.TajoDataTypes.Type;
+import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -86,6 +87,32 @@ public class TestTableMeta {
     assertTrue(meta.equals(meta2));
     assertNotSame(meta, meta2);
   }
+
+       @Test
+       public void testEqualsObject2() {
+               //This testcases should insert more 2 items into one slot.
+               //HashMap's default slot count is 16
+               //so max_count is 17
+
+               int MAX_COUNT = 17;
+
+               TableMeta meta1 = 
CatalogUtil.newTableMeta(StoreType.CSV.toString());
+               for (int i = 0; i < MAX_COUNT; i++) {
+                       meta1.putOption("key"+i, "value"+i);
+               }
+
+               PrimitiveProtos.KeyValueSetProto.Builder optionBuilder = 
PrimitiveProtos.KeyValueSetProto.newBuilder();
+               for (int i = 1; i <= MAX_COUNT; i++) {
+                       PrimitiveProtos.KeyValueProto.Builder keyValueBuilder = 
PrimitiveProtos.KeyValueProto.newBuilder();
+                       
keyValueBuilder.setKey("key"+(MAX_COUNT-i)).setValue("value"+(MAX_COUNT-i));
+                       optionBuilder.addKeyval(keyValueBuilder);
+               }
+               TableProto.Builder builder = TableProto.newBuilder();
+               builder.setStoreType(StoreType.CSV.toString());
+               builder.setParams(optionBuilder);
+               TableMeta meta2 = new TableMeta(builder.build());
+               assertTrue(meta1.equals(meta2));
+       }
   
   @Test
   public void testGetProto() {

Reply via email to