public static String getTableReferenceString(String tableName, Namespace namespace) { Preconditions.checkArgument(isTableNameValid(tableName), "%s is not a valid table name", tableName); String namespaceName = namespace.getName(); // Hacks for schemas that were created before namespaces were created. if (namespace.isEmptyNamespace() || namespaceName.equals("met")) { return "TableReference.createWithEmptyNamespace(\"" + tableName + "\")"; } else { return "TableReference.createFromFullyQualifiedName(\"" + namespace.getName() + "." + tableName + "\")"; } }
public static TableReference createLowerCased(TableReference table) { String name = table.namespace.getName().toLowerCase(); Namespace namespace = name.isEmpty() ? Namespace.EMPTY_NAMESPACE : Namespace.create(name); return create( namespace, table.tablename.toLowerCase()); }
public static TableFactoryRenderer of( String schemaName, String packageName, Namespace defaultNamespace, Map<String, TableDefinition> definitions) { SortedMap<String, TableDefinition> sortedDefinitions = Maps.newTreeMap(); for (Entry<String, TableDefinition> entry : definitions.entrySet()) { sortedDefinitions.put(Renderers.getClassTableName(entry.getKey(), entry.getValue()), entry.getValue()); } ClassName tableFactoryType = ClassName.get(packageName, schemaName + "TableFactory"); ClassName sharedTriggersType = tableFactoryType.nestedClass("SharedTriggers"); return new TableFactoryRenderer( schemaName, packageName, defaultNamespace.getName(), sortedDefinitions, tableFactoryType, sharedTriggersType); }
@Test public void testGetFullTableReferenceString() { MatcherAssert.assertThat( Schemas.getTableReferenceString(TABLE_NAME, NAMESPACE), Matchers.equalTo("TableReference.createFromFullyQualifiedName(\"" + NAMESPACE.getName() + "." + TABLE_NAME + "\")")); }
public static final byte[] getBytesForTableRef(TableReference tableRef) { byte[] nameSpace = EncodingUtils.encodeVarString(tableRef.getNamespace().getName()); byte[] table = PtBytes.toBytes(tableRef.getTablename()); return Bytes.concat(nameSpace, table); }
@Test public void shouldNotThrowWhenCreatingDifferentLongTablesWithSameFirstCharactersUntilOneLessThanTableNameLimit() { String tableNameForFirstFiftyNineCharactersToBeSame = StringUtils.left(TEST_LONG_TABLE_NAME, PostgresDdlTable.ATLASDB_POSTGRES_TABLE_NAME_LIMIT - TEST_NAMESPACE.getName().length() - TWO_UNDERSCORES - 1); createTwoTablesWithSamePrefix(tableNameForFirstFiftyNineCharactersToBeSame); }
@Test(expected = RuntimeException.class) public void throwWhenCreatingDifferentLongTablesWithSameFirstCharactersUntilTheTableNameLimit() { String tableNameForFirstSixtyCharactersToBeSame = StringUtils.left(TEST_LONG_TABLE_NAME, PostgresDdlTable.ATLASDB_POSTGRES_TABLE_NAME_LIMIT - TEST_NAMESPACE.getName().length() - TWO_UNDERSCORES); createTwoTablesWithSamePrefix(tableNameForFirstSixtyCharactersToBeSame); }
private TableReference truncateNamespace(TableReference tableRef) { if (tableRef.getNamespace().isEmptyNamespace()) { return tableRef; } String namespace = tableRef.getNamespace().getName(); namespace = truncate(namespace, MAX_NAMESPACE_LENGTH); return TableReference.create(Namespace.create(namespace), tableRef.getTablename()); }
@Test public void createLowerCasedWithNamespace() { String upperFoo = "FOO"; String upperBar = "BAR"; TableReference upper = TableReference.create(Namespace.create(upperFoo), upperBar); TableReference lower = TableReference.createLowerCased(upper); assertEquals(lower.getNamespace().getName(), upperFoo.toLowerCase()); assertEquals(lower.getTablename(), upperBar.toLowerCase()); }
Set<TableReference> tablesInNamespace = services.getKeyValueService().getAllTableNames() .stream() .filter(tableRef -> tableRef.getNamespace().getName().equals(namespace)) .collect(Collectors.toSet()); for (TableReference tableInNamespace : tablesInNamespace) {
public static String getTableReferenceString(String tableName, Namespace namespace) { Preconditions.checkArgument(isTableNameValid(tableName), "%s is not a valid table name", tableName); String namespaceName = namespace.getName(); // Hacks for schemas that were created before namespaces were created. if (namespace.isEmptyNamespace() || namespaceName.equals("met")) { return "TableReference.createWithEmptyNamespace(\"" + tableName + "\")"; } else { return "TableReference.createFromFullyQualifiedName(\"" + namespace.getName() + "." + tableName + "\")"; } }
public static TableReference createLowerCased(TableReference table) { String name = table.namespace.getName().toLowerCase(); Namespace namespace = name.isEmpty() ? Namespace.EMPTY_NAMESPACE : Namespace.create(name); return create( namespace, table.tablename.toLowerCase()); }
public static TableFactoryRenderer of( String schemaName, String packageName, Namespace defaultNamespace, Map<String, TableDefinition> definitions) { SortedMap<String, TableDefinition> sortedDefinitions = Maps.newTreeMap(); for (Entry<String, TableDefinition> entry : definitions.entrySet()) { sortedDefinitions.put(Renderers.getClassTableName(entry.getKey(), entry.getValue()), entry.getValue()); } ClassName tableFactoryType = ClassName.get(packageName, schemaName + "TableFactory"); ClassName sharedTriggersType = tableFactoryType.nestedClass("SharedTriggers"); return new TableFactoryRenderer( schemaName, packageName, defaultNamespace.getName(), sortedDefinitions, tableFactoryType, sharedTriggersType); }
@Test public void testSweepNamespace() throws Exception { try (SingleBackendCliTestRunner runner = makeRunner(paramsWithDryRunSet(SWEEP_COMMAND, "-n", NS1.getName()))) { TestAtlasDbServices services = runner.connect(moduleFactory); SerializableTransactionManager txm = services.getTransactionManager(); TimestampService tss = services.getTimestampService(); KeyValueService kvs = services.getKeyValueService(); createTable(kvs, TABLE_ONE, TableMetadataPersistence.SweepStrategy.CONSERVATIVE); createTable(kvs, TABLE_TWO, TableMetadataPersistence.SweepStrategy.CONSERVATIVE); createTable(kvs, TABLE_THREE, TableMetadataPersistence.SweepStrategy.CONSERVATIVE); long ts1 = put(txm, TABLE_ONE, "foo", "bar"); long ts2 = put(txm, TABLE_TWO, "foo", "tar"); long ts3 = put(txm, TABLE_THREE, "foo", "jar"); long ts4 = put(txm, TABLE_ONE, "foo", "baz"); long ts5 = put(txm, TABLE_THREE, "foo", "jaz"); long ts6 = put(txm, TABLE_TWO, "foo", "taz"); long ts7 = tss.getFreshTimestamp(); sweep(runner, ts7); Assert.assertEquals("baz", get(kvs, TABLE_ONE, "foo", ts7)); Assert.assertEquals(deletedValue("bar"), get(kvs, TABLE_ONE, "foo", mid(ts1, ts2))); Assert.assertEquals(ImmutableSet.of(deletedTimestamp(ts1), ts4), getAllTs(kvs, TABLE_ONE, "foo")); Assert.assertEquals("taz", get(kvs, TABLE_TWO, "foo", ts7)); Assert.assertEquals(deletedValue("tar"), get(kvs, TABLE_TWO, "foo", mid(ts4, ts6))); Assert.assertEquals(ImmutableSet.of(deletedTimestamp(ts2), ts6), getAllTs(kvs, TABLE_TWO, "foo")); Assert.assertEquals("jaz", get(kvs, TABLE_THREE, "foo", ts7)); Assert.assertEquals("jar", get(kvs, TABLE_THREE, "foo", mid(ts3, ts5))); Assert.assertEquals(ImmutableSet.of(ts3, ts5), getAllTs(kvs, TABLE_THREE, "foo")); } }
public static final byte[] getBytesForTableRef(TableReference tableRef) { byte[] nameSpace = EncodingUtils.encodeVarString(tableRef.getNamespace().getName()); byte[] table = PtBytes.toBytes(tableRef.getTablename()); return Bytes.concat(nameSpace, table); }
private TableReference truncateNamespace(TableReference tableRef) { if (tableRef.getNamespace().isEmptyNamespace()) { return tableRef; } String namespace = tableRef.getNamespace().getName(); namespace = truncate(namespace, MAX_NAMESPACE_LENGTH); return TableReference.create(Namespace.create(namespace), tableRef.getTablename()); }
Set<TableReference> tablesInNamespace = services.getKeyValueService().getAllTableNames() .stream() .filter(tableRef -> tableRef.getNamespace().getName().equals(namespace)) .collect(Collectors.toSet()); for (TableReference tableInNamespace : tablesInNamespace) {