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() {
