Skip to content

Commit

Permalink
Refactor the code around metadata (#199)
Browse files Browse the repository at this point in the history
  • Loading branch information
brfrn169 authored May 21, 2021
1 parent 2ff0ff3 commit a00e137
Show file tree
Hide file tree
Showing 75 changed files with 981 additions and 1,126 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import static org.assertj.core.api.Assertions.assertThat;

import com.scalar.db.api.Scan;
import com.scalar.db.storage.common.metadata.DataType;
import com.scalar.db.storage.common.metadata.TableMetadata;
import com.scalar.db.api.TableMetadata;
import com.scalar.db.io.DataType;
import java.util.Iterator;
import org.junit.Test;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.scalar.db.storage.cassandra;

import com.scalar.db.api.Get;
import com.scalar.db.api.TableMetadata;
import com.scalar.db.config.DatabaseConfig;
import com.scalar.db.io.Key;
import com.scalar.db.storage.MetadataIntegrationTestBase;
Expand Down Expand Up @@ -35,7 +36,7 @@ public class CassandraMetadataIntegrationTest extends MetadataIntegrationTestBas
"CREATE INDEX " + INDEX2 + " ON " + NAMESPACE + "." + TABLE + " (c6)";
private static final String DROP_KEYSPACE_STMT = "DROP KEYSPACE " + NAMESPACE;

private static CassandraTableMetadata tableMetadata;
private static TableMetadata tableMetadata;

@Before
public void setUp() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.azure.cosmos.models.ThroughputProperties;
import com.scalar.db.api.Get;
import com.scalar.db.api.Scan;
import com.scalar.db.api.TableMetadata;
import com.scalar.db.io.Key;
import com.scalar.db.storage.MetadataIntegrationTestBase;
import java.util.Arrays;
Expand All @@ -29,18 +30,13 @@ public class CosmosMetadataIntegrationTest extends MetadataIntegrationTestBase {

private static Optional<String> namespacePrefix;
private static CosmosClient client;
private static CosmosTableMetadata tableMetadata;
private static TableMetadata tableMetadata;

@Before
public void setUp() throws Exception {
setUp(tableMetadata);
}

@Test
public void testId() {
assertThat(tableMetadata.getId()).isEqualTo(table(NAMESPACE, TABLE));
}

@Test
@Override
public void testClusteringOrder() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import com.scalar.db.api.Get;
import com.scalar.db.api.Scan;
import com.scalar.db.api.TableMetadata;
import com.scalar.db.io.Key;
import com.scalar.db.storage.MetadataIntegrationTestBase;
import java.net.URI;
Expand Down Expand Up @@ -37,7 +38,7 @@ public class DynamoMetadataIntegrationTest extends MetadataIntegrationTestBase {

private static Optional<String> namespacePrefix;
private static DynamoDbClient client;
private static DynamoTableMetadata tableMetadata;
private static TableMetadata tableMetadata;

@Before
public void setUp() throws Exception {
Expand Down Expand Up @@ -155,7 +156,8 @@ public static void setUpBeforeClass() throws Exception {

client.putItem(putItemRequest);

DynamoTableMetadataManager tableMetadataManager = new DynamoTableMetadataManager(client, namespacePrefix());
DynamoTableMetadataManager tableMetadataManager =
new DynamoTableMetadataManager(client, namespacePrefix());

Get dummyOperation = new Get(new Key()).forNamespace(NAMESPACE).forTable(TABLE);
namespacePrefix.ifPresent(n -> dummyOperation.forNamespacePrefix(namespacePrefix().get()));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package com.scalar.db.storage.jdbc;

import com.scalar.db.api.DistributedStorage;
import com.scalar.db.api.Scan;
import com.scalar.db.api.TableMetadata;
import com.scalar.db.io.DataType;
import com.scalar.db.storage.IntegrationTestBase;
import com.scalar.db.storage.common.metadata.DataType;
import com.scalar.db.storage.jdbc.test.TestEnv;
import java.util.Collections;
import java.util.HashMap;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
Expand Down Expand Up @@ -34,23 +32,16 @@ public static void setUpBeforeClass() throws Exception {
testEnv.register(
NAMESPACE,
TABLE,
Collections.singletonList(COL_NAME1),
Collections.singletonList(COL_NAME4),
new HashMap<String, Scan.Ordering.Order>() {
{
put(COL_NAME4, Scan.Ordering.Order.ASC);
}
},
new HashMap<String, DataType>() {
{
put(COL_NAME1, DataType.INT);
put(COL_NAME2, DataType.TEXT);
put(COL_NAME3, DataType.INT);
put(COL_NAME4, DataType.INT);
put(COL_NAME5, DataType.BOOLEAN);
}
},
Collections.singletonList(COL_NAME3));
TableMetadata.newBuilder()
.addColumn(COL_NAME1, DataType.INT)
.addColumn(COL_NAME2, DataType.TEXT)
.addColumn(COL_NAME3, DataType.INT)
.addColumn(COL_NAME4, DataType.INT)
.addColumn(COL_NAME5, DataType.BOOLEAN)
.addPartitionKey(COL_NAME1)
.addClusteringKey(COL_NAME4)
.addSecondaryIndex(COL_NAME3)
.build());
testEnv.createMetadataTable();
testEnv.createTables();
testEnv.insertMetadata();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,77 +1,57 @@
package com.scalar.db.storage.jdbc;

import static org.assertj.core.api.Assertions.assertThat;

import com.scalar.db.api.Scan;
import com.scalar.db.api.TableMetadata;
import com.scalar.db.io.DataType;
import com.scalar.db.storage.MetadataIntegrationTestBase;
import com.scalar.db.storage.common.metadata.DataType;
import com.scalar.db.storage.jdbc.metadata.JdbcTableMetadata;
import com.scalar.db.storage.jdbc.metadata.JdbcTableMetadataManager;
import com.scalar.db.storage.jdbc.test.TestEnv;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Optional;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class JdbcMetadataIntegrationTest extends MetadataIntegrationTestBase {

private static TestEnv testEnv;
private static JdbcTableMetadata tableMetadata;
private static TableMetadata tableMetadata;

@Before
public void setUp() throws Exception {
setUp(tableMetadata);
}

@Test
public void testSchemaAndTableName() {
Optional<String> namespacePrefix = testEnv.getJdbcDatabaseConfig().getNamespacePrefix();
String schema = namespacePrefix.orElse("") + NAMESPACE;
assertThat(tableMetadata.getSchema()).isEqualTo(schema);
assertThat(tableMetadata.getTable()).isEqualTo(TABLE);
String fullTableName = schema + "." + TABLE;
assertThat(tableMetadata.getFullTableName()).isEqualTo(fullTableName);
}

@BeforeClass
public static void setUpBeforeClass() throws Exception {
testEnv = new TestEnv();
testEnv.register(
NAMESPACE,
TABLE,
Arrays.asList(COL_NAME2, COL_NAME1),
Arrays.asList(COL_NAME4, COL_NAME3),
new HashMap<String, Scan.Ordering.Order>() {
{
put(COL_NAME4, Scan.Ordering.Order.ASC);
put(COL_NAME3, Scan.Ordering.Order.DESC);
}
},
new HashMap<String, DataType>() {
{
put(COL_NAME1, DataType.INT);
put(COL_NAME2, DataType.TEXT);
put(COL_NAME3, DataType.TEXT);
put(COL_NAME4, DataType.INT);
put(COL_NAME5, DataType.INT);
put(COL_NAME6, DataType.TEXT);
put(COL_NAME7, DataType.BIGINT);
put(COL_NAME8, DataType.FLOAT);
put(COL_NAME9, DataType.DOUBLE);
put(COL_NAME10, DataType.BOOLEAN);
put(COL_NAME11, DataType.BLOB);
}
},
Arrays.asList(COL_NAME5, COL_NAME6));
TableMetadata.newBuilder()
.addColumn(COL_NAME1, DataType.INT)
.addColumn(COL_NAME2, DataType.TEXT)
.addColumn(COL_NAME3, DataType.TEXT)
.addColumn(COL_NAME4, DataType.INT)
.addColumn(COL_NAME5, DataType.INT)
.addColumn(COL_NAME6, DataType.TEXT)
.addColumn(COL_NAME7, DataType.BIGINT)
.addColumn(COL_NAME8, DataType.FLOAT)
.addColumn(COL_NAME9, DataType.DOUBLE)
.addColumn(COL_NAME10, DataType.BOOLEAN)
.addColumn(COL_NAME11, DataType.BLOB)
.addPartitionKey(COL_NAME2)
.addPartitionKey(COL_NAME1)
.addClusteringKey(COL_NAME4, Scan.Ordering.Order.ASC)
.addClusteringKey(COL_NAME3, Scan.Ordering.Order.DESC)
.addSecondaryIndex(COL_NAME5)
.addSecondaryIndex(COL_NAME6)
.build());
testEnv.createMetadataTable();
testEnv.insertMetadata();

Optional<String> namespacePrefix = testEnv.getJdbcDatabaseConfig().getNamespacePrefix();
JdbcTableMetadataManager tableMetadataManager =
new JdbcTableMetadataManager(testEnv.getDataSource(), namespacePrefix, testEnv.getRdbEngine());
new JdbcTableMetadataManager(
testEnv.getDataSource(), namespacePrefix, testEnv.getRdbEngine());
String fullTableName = namespacePrefix.orElse("") + NAMESPACE + "." + TABLE;
tableMetadata = tableMetadataManager.getTableMetadata(fullTableName);
}
Expand Down
Loading

0 comments on commit a00e137

Please sign in to comment.