本文整理了Java中org.teiid.metadata.Table.getUniqueKeys()
方法的一些代码示例,展示了Table.getUniqueKeys()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Table.getUniqueKeys()
方法的具体详情如下:
包路径:org.teiid.metadata.Table
类名称:Table
方法名:getUniqueKeys
暂无
代码示例来源:origin: org.teiid.connectors/translator-odata4
KeyRecord getPKorUnique(Table table) {
KeyRecord pk = table.getPrimaryKey();
if (pk == null && !table.getUniqueKeys().isEmpty()) {
pk = table.getUniqueKeys().get(0);
}
return pk;
}
代码示例来源:origin: org.teiid/teiid-olingo
static KeyRecord getIdentifier(Table table) {
if (table.getPrimaryKey() != null) {
return table.getPrimaryKey();
}
for (KeyRecord key:table.getUniqueKeys()) {
return key;
}
return null;
}
代码示例来源:origin: teiid/teiid
public Collection<KeyRecord> getAllKeys() {
Collection<KeyRecord> keys = new LinkedList<KeyRecord>();
if (getPrimaryKey() != null) {
keys.add(getPrimaryKey());
}
keys.addAll(getForeignKeys());
keys.addAll(getAccessPatterns());
keys.addAll(getIndexes());
keys.addAll(getUniqueKeys());
return keys;
}
代码示例来源:origin: org.teiid/teiid-engine
public Collection<KeyRecord> getUniqueKeysInGroup(final Object groupID)
throws TeiidComponentException, QueryMetadataException {
Table tableRecordImpl = (Table)groupID;
ArrayList<KeyRecord> result = new ArrayList<KeyRecord>(tableRecordImpl.getUniqueKeys());
if (tableRecordImpl.getPrimaryKey() != null) {
result.add(tableRecordImpl.getPrimaryKey());
}
for (KeyRecord key : tableRecordImpl.getIndexes()) {
if (key.getType() == KeyRecord.Type.Unique) {
result.add(key);
}
}
return result;
}
代码示例来源:origin: org.jboss.teiid/teiid-engine
public Collection<KeyRecord> getUniqueKeysInGroup(final Object groupID)
throws TeiidComponentException, QueryMetadataException {
Table tableRecordImpl = (Table)groupID;
ArrayList<KeyRecord> result = new ArrayList<KeyRecord>(tableRecordImpl.getUniqueKeys());
if (tableRecordImpl.getPrimaryKey() != null) {
result.add(tableRecordImpl.getPrimaryKey());
}
for (KeyRecord key : tableRecordImpl.getIndexes()) {
if (key.getType() == KeyRecord.Type.Unique) {
result.add(key);
}
}
return result;
}
代码示例来源:origin: teiid/teiid
public Collection<KeyRecord> getUniqueKeysInGroup(final Object groupID)
throws TeiidComponentException, QueryMetadataException {
Table tableRecordImpl = (Table)groupID;
ArrayList<KeyRecord> result = new ArrayList<KeyRecord>(tableRecordImpl.getUniqueKeys());
if (tableRecordImpl.getPrimaryKey() != null) {
result.add(tableRecordImpl.getPrimaryKey());
}
for (KeyRecord key : tableRecordImpl.getIndexes()) {
if (key.getType() == KeyRecord.Type.Unique) {
result.add(key);
}
}
return result;
}
代码示例来源:origin: org.teiid.connectors/translator-jdbc
private KeyRecord autoCreateUniqueKeys(boolean create, MetadataFactory factory, String name, TreeMap<Short, String> referencedKeyColumns, Table pkTable) {
if (referencedKeyColumns != null && pkTable.getPrimaryKey() == null && pkTable.getUniqueKeys().isEmpty()) {
factory.addIndex(name + "_unique", false, new ArrayList<String>(referencedKeyColumns.values()), pkTable); //$NON-NLS-1$
}
KeyRecord uniqueKey = null;
if (referencedKeyColumns == null) {
uniqueKey = pkTable.getPrimaryKey();
} else {
for (KeyRecord record : pkTable.getUniqueKeys()) {
if (keyMatches(new ArrayList<String>(referencedKeyColumns.values()), record)) {
uniqueKey = record;
break;
}
}
if (uniqueKey == null && pkTable.getPrimaryKey() != null && keyMatches(new ArrayList<String>(referencedKeyColumns.values()), pkTable.getPrimaryKey())) {
uniqueKey = pkTable.getPrimaryKey();
}
}
if (uniqueKey == null && create) {
uniqueKey = factory.addIndex(name + "_unique", false, new ArrayList<String>(referencedKeyColumns.values()), pkTable); //$NON-NLS-1$
}
return uniqueKey;
}
代码示例来源:origin: org.teiid/teiid-olingo
static boolean isPartOfPrimaryKey(Table table, String columnName) {
KeyRecord pk = table.getPrimaryKey();
if (hasColumn(pk, columnName)) {
return true;
}
for (KeyRecord key:table.getUniqueKeys()) {
if (hasColumn(key, columnName)) {
return true;
}
}
return false;
}
代码示例来源:origin: org.teiid.connectors/translator-odata
private boolean matchesWithPkOrUnique(List<String> names, Table table) {
if (keyMatches(names, table.getPrimaryKey())) {
return true;
}
for (KeyRecord record:table.getUniqueKeys()) {
if (keyMatches(names, record)) {
return true;
}
}
return false;
}
代码示例来源:origin: org.teiid.connectors/translator-odata
static boolean isPartOfPrimaryKey(Table table, String columnName) {
KeyRecord pk = table.getPrimaryKey();
if (hasColumn(pk, columnName)) {
return true;
}
for (KeyRecord key:table.getUniqueKeys()) {
if (hasColumn(key, columnName)) {
return true;
}
}
return false;
}
代码示例来源:origin: teiid/teiid
/**
* Adds an index to the given table.
* @param name
* @param nonUnique true indicates that an index is being added.
* @param columnNames
* @param table
* @return
* @throws MetadataException
*/
public KeyRecord addIndex(String name, boolean nonUnique, List<String> columnNames, Table table) {
KeyRecord index = new KeyRecord(nonUnique?KeyRecord.Type.Index:KeyRecord.Type.Unique);
index.setParent(table);
index.setColumns(new ArrayList<Column>(columnNames.size()));
index.setName(name);
assignColumns(columnNames, table, index);
setUUID(index);
if (nonUnique) {
table.getIndexes().add(index);
}
else {
table.getUniqueKeys().add(index);
}
return index;
}
代码示例来源:origin: org.teiid/teiid-olingo
OrderBy addDefaultOrderBy() {
if (this.table == null) {
return null;
}
OrderBy orderBy = new OrderBy();
// provide implicit ordering for cursor logic
KeyRecord record = this.table.getPrimaryKey();
if (record == null) {
// if PK is not available there MUST at least one unique key
record = this.table.getUniqueKeys().get(0);
}
// provide implicit ordering for cursor logic
for (Column column:record.getColumns()) {
ElementSymbol expr = new ElementSymbol(column.getName(), this.groupSymbol);
orderBy.addVariable(expr);
addProjectedColumn(column.getName(), expr);
}
return orderBy;
}
代码示例来源:origin: teiid/teiid
@Test
public void testConstraints2() throws Exception {
String ddl = "CREATE FOREIGN TABLE G1( e1 integer, e2 varchar, e3 date, " +
"ACCESSPATTERN(e1), UNIQUE(e1), ACCESSPATTERN(e2, e3))";
Schema s = helpParse(ddl, "model").getSchema();
Map<String, Table> tableMap = s.getTables();
assertTrue("Table not found", tableMap.containsKey("G1"));
Table table = tableMap.get("G1");
assertEquals(table.getColumns().subList(0, 1), table.getUniqueKeys().get(0).getColumns());
assertEquals(2, table.getAccessPatterns().size());
assertEquals(table.getColumns().subList(0, 1), table.getAccessPatterns().get(0).getColumns());
assertEquals(table.getColumns().subList(1, 3), table.getAccessPatterns().get(1).getColumns());
}
代码示例来源:origin: org.teiid/teiid-engine
final public void inlineConstraint(MetadataFactory factory, Table table, List<String> columnName) throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PRIMARY:
jj_consume_token(PRIMARY);
jj_consume_token(KEY);
if (table.getPrimaryKey() != null) {
{if (true) throw new MetadataException(QueryPlugin.Util.getString("SQLParser.pk_exists", table.getName()));}
}
factory.addPrimaryKey("PK", columnName, table);
break;
case UNIQUE:
jj_consume_token(UNIQUE);
factory.addIndex("UNIQUE"+table.getUniqueKeys().size(), false, columnName, table);
break;
case INDEX:
jj_consume_token(INDEX);
factory.addIndex("INDEX"+table.getIndexes().size(), true, columnName, table);
break;
default:
jj_la1[439] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
代码示例来源:origin: teiid/teiid
final public void inlineConstraint(MetadataFactory factory, Table table, List<String> columnName) throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PRIMARY:
jj_consume_token(PRIMARY);
jj_consume_token(KEY);
if (table.getPrimaryKey() != null) {
{if (true) throw new MetadataException(QueryPlugin.Util.getString("SQLParser.pk_exists", table.getName()));}
}
factory.addPrimaryKey("PK", columnName, table);
break;
case UNIQUE:
jj_consume_token(UNIQUE);
factory.addIndex("UNIQUE"+table.getUniqueKeys().size(), false, columnName, table);
break;
case INDEX:
jj_consume_token(INDEX);
factory.addIndex("INDEX"+table.getIndexes().size(), true, columnName, table);
break;
default:
jj_la1[439] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
代码示例来源:origin: teiid/teiid
@Test
public void testConstraints() throws Exception {
String ddl = "CREATE FOREIGN TABLE G1( e1 integer, e2 varchar, e3 date, " +
" PRIMARY KEY (e1, e2), INDEX(e2, e3), ACCESSPATTERN(e1), UNIQUE(e1)," +
" ACCESSPATTERN(e2, e3))";
Schema s = helpParse(ddl, "model").getSchema();
Map<String, Table> tableMap = s.getTables();
assertTrue("Table not found", tableMap.containsKey("G1"));
Table table = tableMap.get("G1");
assertEquals(table.getColumns().subList(0, 2), table.getPrimaryKey().getColumns());
assertEquals(table.getColumns().subList(1, 3), table.getIndexes().get(0).getColumns());
assertEquals(table.getColumns().subList(0, 1), table.getUniqueKeys().get(0).getColumns());
assertEquals(2, table.getAccessPatterns().size());
assertEquals(table.getColumns().subList(0, 1), table.getAccessPatterns().get(0).getColumns());
assertEquals(table.getColumns().subList(1, 3), table.getAccessPatterns().get(1).getColumns());
}
代码示例来源:origin: org.teiid.connectors/translator-mongodb
private DBCollection getCollection(Table table) {
DBCollection collection;
if (!this.mongoDB.collectionExists(table.getName())) {
collection = this.mongoDB.createCollection(table.getName(), null);
// since this is the first time creating the tables; create the indexes on the collection
// index on foreign keys
for (ForeignKey record:table.getForeignKeys()) {
createIndex(collection, record, false);
}
// index on unique
for (KeyRecord record:table.getUniqueKeys()) {
createIndex(collection, record, true);
}
// index on index keys
for (KeyRecord record:table.getIndexes()) {
createIndex(collection, record, false);
}
}
else {
collection = this.mongoDB.getCollection(table.getName());
}
return collection;
}
代码示例来源:origin: teiid/teiid
private void buildContraints(Table table) {
addConstraints(table.getAccessPatterns(), "AP", ACCESSPATTERN); //$NON-NLS-1$
KeyRecord pk = table.getPrimaryKey();
if (pk != null) {
addConstraint("PK", PRIMARY_KEY, pk, true); //$NON-NLS-1$
}
addConstraints(table.getUniqueKeys(), UNIQUE, UNIQUE);
addConstraints(table.getIndexes(), INDEX, INDEX);
addConstraints(table.getFunctionBasedIndexes(), INDEX, INDEX);
for (int i = 0; i < table.getForeignKeys().size(); i++) {
ForeignKey key = table.getForeignKeys().get(i);
addConstraint("FK" + i, FOREIGN_KEY, key, false); //$NON-NLS-1$
append(SPACE).append(REFERENCES);
if (key.getReferenceKey() != null) {
if (key.getReferenceKey().getParent().getParent().equals(key.getParent().getParent())) {
append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getName()));
} else {
append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getFullName()));
}
} else if (key.getReferenceTableName() != null) {
append(SPACE).append(new GroupSymbol(key.getReferenceTableName()));
}
append(SPACE);
addNames(key.getReferenceColumns());
appendOptions(key);
}
}
代码示例来源:origin: org.teiid/teiid-engine
private void buildContraints(Table table) {
addConstraints(table.getAccessPatterns(), "AP", ACCESSPATTERN); //$NON-NLS-1$
KeyRecord pk = table.getPrimaryKey();
if (pk != null) {
addConstraint("PK", PRIMARY_KEY, pk, true); //$NON-NLS-1$
}
addConstraints(table.getUniqueKeys(), UNIQUE, UNIQUE);
addConstraints(table.getIndexes(), INDEX, INDEX);
addConstraints(table.getFunctionBasedIndexes(), INDEX, INDEX);
for (int i = 0; i < table.getForeignKeys().size(); i++) {
ForeignKey key = table.getForeignKeys().get(i);
addConstraint("FK" + i, FOREIGN_KEY, key, false); //$NON-NLS-1$
append(SPACE).append(REFERENCES);
if (key.getReferenceKey() != null) {
if (key.getReferenceKey().getParent().getParent().equals(key.getParent().getParent())) {
append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getName()));
} else {
append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getFullName()));
}
} else if (key.getReferenceTableName() != null) {
append(SPACE).append(new GroupSymbol(key.getReferenceTableName()));
}
append(SPACE);
addNames(key.getReferenceColumns());
appendOptions(key);
}
}
代码示例来源:origin: org.jboss.teiid/teiid-engine
private void buildContraints(Table table) {
addConstraints(table.getAccessPatterns(), "AP", ACCESSPATTERN); //$NON-NLS-1$
KeyRecord pk = table.getPrimaryKey();
if (pk != null) {
addConstraint("PK", PRIMARY_KEY, pk, true); //$NON-NLS-1$
}
addConstraints(table.getUniqueKeys(), UNIQUE, UNIQUE);
addConstraints(table.getIndexes(), INDEX, INDEX);
addConstraints(table.getFunctionBasedIndexes(), INDEX, INDEX);
for (int i = 0; i < table.getForeignKeys().size(); i++) {
ForeignKey key = table.getForeignKeys().get(i);
addConstraint("FK" + i, FOREIGN_KEY, key, false); //$NON-NLS-1$
append(SPACE).append(REFERENCES);
if (key.getReferenceKey() != null) {
if (key.getReferenceKey().getParent().getParent().equals(key.getParent().getParent())) {
append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getName()));
} else {
append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getFullName()));
}
} else if (key.getReferenceTableName() != null) {
append(SPACE).append(new GroupSymbol(key.getReferenceTableName()));
}
append(SPACE);
addNames(key.getReferenceColumns());
appendOptions(key);
}
}
内容来源于网络,如有侵权,请联系作者删除!