public class Schema
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.util.UUID |
emptyVersion |
static Schema |
instance |
static int |
NAME_LENGTH
longest permissible KS or CF name.
|
static com.google.common.collect.ImmutableSet<java.lang.String> |
systemKeyspaceNames |
Constructor and Description |
---|
Schema()
Initialize empty schema object
|
Modifier and Type | Method and Description |
---|---|
void |
addOldCfIdMapping(java.lang.Integer oldId,
java.util.UUID newId) |
void |
clear()
Clear all KS/CF metadata and reset version.
|
void |
clearTableDefinition(KSMetaData ksm)
Remove table definition from system
|
java.lang.Integer |
convertNewCfId(java.util.UUID newCfId) |
java.util.UUID |
convertOldCfId(java.lang.Integer oldCfId) |
Pair<java.lang.String,java.lang.String> |
getCF(java.util.UUID cfId) |
CFMetaData |
getCFMetaData(Descriptor descriptor) |
CFMetaData |
getCFMetaData(java.lang.String tableName,
java.lang.String cfName)
Given a table name & column family name, get the column family
meta data.
|
CFMetaData |
getCFMetaData(java.util.UUID cfId)
Get ColumnFamily metadata by its identifier
|
ColumnFamilyType |
getColumnFamilyType(java.lang.String ksName,
java.lang.String cfName)
Get type of the ColumnFamily but it's keyspace/name
|
AbstractType<?> |
getComparator(java.lang.String ksName,
java.lang.String cfName)
Get column comparator for ColumnFamily but it's keyspace/name
|
java.util.UUID |
getId(java.lang.String ksName,
java.lang.String cfName)
Lookup keyspace/ColumnFamily identifier
|
KSMetaData |
getKSMetaData(java.lang.String table)
Get metadata about table by its name
|
java.util.List<java.lang.String> |
getNonSystemTables() |
AbstractType<?> |
getSubComparator(java.lang.String ksName,
java.lang.String cfName)
Get subComparator of the ColumnFamily
|
KSMetaData |
getTableDefinition(java.lang.String table)
Get metadata about table by its name
|
java.util.Collection<KSMetaData> |
getTableDefinitions() |
Table |
getTableInstance(java.lang.String tableName)
Get table instance by name
|
java.util.Map<java.lang.String,CFMetaData> |
getTableMetaData(java.lang.String tableName)
Get metadata about table inner ColumnFamilies
|
java.util.Set<java.lang.String> |
getTables() |
AbstractType<?> |
getValueValidator(java.lang.String ksName,
java.lang.String cfName,
java.nio.ByteBuffer column)
Get value validator for specific column
|
java.util.UUID |
getVersion() |
static boolean |
ignoredSchemaRow(Row row) |
static boolean |
invalidSchemaRow(Row row) |
void |
load(CFMetaData cfm)
Load individual ColumnFamily Definition to the schema
(to make ColumnFamily lookup faster)
|
Schema |
load(java.util.Collection<KSMetaData> tableDefs)
Load up non-system tables
|
Schema |
load(KSMetaData keyspaceDef)
Load specific keyspace into Schema
|
void |
purge(CFMetaData cfm)
Used for ColumnFamily data eviction out from the schema
|
Table |
removeTableInstance(java.lang.String tableName)
Remove table from schema
|
void |
setTableDefinition(KSMetaData ksm)
Update (or insert) new table definition
|
void |
storeTableInstance(Table table)
Store given Table instance to the schema
|
void |
updateVersion()
Read schema from system table and calculate MD5 digest of every row, resulting digest
will be converted into UUID which would act as content-based version of the schema.
|
void |
updateVersionAndAnnounce() |
public static final Schema instance
public static final int NAME_LENGTH
public static final java.util.UUID emptyVersion
public static final com.google.common.collect.ImmutableSet<java.lang.String> systemKeyspaceNames
public Schema load(java.util.Collection<KSMetaData> tableDefs)
tableDefs
- The non-system table definitionspublic Schema load(KSMetaData keyspaceDef)
keyspaceDef
- The keyspace to load uppublic Table getTableInstance(java.lang.String tableName)
tableName
- The name of the tablepublic void storeTableInstance(Table table)
table
- The Table instance to storejava.lang.IllegalArgumentException
- if Table is already storedpublic Table removeTableInstance(java.lang.String tableName)
tableName
- The name of the table to removepublic void clearTableDefinition(KSMetaData ksm)
ksm
- The table definition to removepublic CFMetaData getCFMetaData(java.lang.String tableName, java.lang.String cfName)
tableName
- The table namecfName
- The ColumnFamily namepublic CFMetaData getCFMetaData(java.util.UUID cfId)
cfId
- The ColumnFamily identifierpublic CFMetaData getCFMetaData(Descriptor descriptor)
public ColumnFamilyType getColumnFamilyType(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic AbstractType<?> getComparator(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic AbstractType<?> getSubComparator(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic AbstractType<?> getValueValidator(java.lang.String ksName, java.lang.String cfName, java.nio.ByteBuffer column)
ksName
- The keyspace namecfName
- The ColumnFamily namecolumn
- The name of the columnpublic KSMetaData getKSMetaData(java.lang.String table)
table
- The name of the tablepublic java.util.List<java.lang.String> getNonSystemTables()
public KSMetaData getTableDefinition(java.lang.String table)
table
- The name of the tablepublic java.util.Map<java.lang.String,CFMetaData> getTableMetaData(java.lang.String tableName)
tableName
- The name of the tablepublic java.util.Set<java.lang.String> getTables()
public java.util.Collection<KSMetaData> getTableDefinitions()
public void setTableDefinition(KSMetaData ksm)
ksm
- The metadata about tablepublic void addOldCfIdMapping(java.lang.Integer oldId, java.util.UUID newId)
public java.util.UUID convertOldCfId(java.lang.Integer oldCfId) throws UnknownColumnFamilyException
UnknownColumnFamilyException
public java.lang.Integer convertNewCfId(java.util.UUID newCfId)
public Pair<java.lang.String,java.lang.String> getCF(java.util.UUID cfId)
cfId
- The identifier of the ColumnFamily to lookuppublic java.util.UUID getId(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic void load(CFMetaData cfm)
cfm
- The ColumnFamily definition to loadpublic void purge(CFMetaData cfm)
cfm
- The ColumnFamily Definition to evictpublic java.util.UUID getVersion()
public void updateVersion()
public void updateVersionAndAnnounce()
public void clear()
public static boolean invalidSchemaRow(Row row)
public static boolean ignoredSchemaRow(Row row)
Copyright © 2013 The Apache Software Foundation