org.teiid.metadata.Table.getUniqueKeys()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(12.8k)|赞(0)|评价(0)|浏览(278)

本文整理了Java中org.teiid.metadata.Table.getUniqueKeys()方法的一些代码示例,展示了Table.getUniqueKeys()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Table.getUniqueKeys()方法的具体详情如下:
包路径:org.teiid.metadata.Table
类名称:Table
方法名:getUniqueKeys

Table.getUniqueKeys介绍

暂无

代码示例

代码示例来源:origin: org.teiid.connectors/translator-odata4

  1. KeyRecord getPKorUnique(Table table) {
  2. KeyRecord pk = table.getPrimaryKey();
  3. if (pk == null && !table.getUniqueKeys().isEmpty()) {
  4. pk = table.getUniqueKeys().get(0);
  5. }
  6. return pk;
  7. }

代码示例来源:origin: org.teiid/teiid-olingo

  1. static KeyRecord getIdentifier(Table table) {
  2. if (table.getPrimaryKey() != null) {
  3. return table.getPrimaryKey();
  4. }
  5. for (KeyRecord key:table.getUniqueKeys()) {
  6. return key;
  7. }
  8. return null;
  9. }

代码示例来源:origin: teiid/teiid

  1. public Collection<KeyRecord> getAllKeys() {
  2. Collection<KeyRecord> keys = new LinkedList<KeyRecord>();
  3. if (getPrimaryKey() != null) {
  4. keys.add(getPrimaryKey());
  5. }
  6. keys.addAll(getForeignKeys());
  7. keys.addAll(getAccessPatterns());
  8. keys.addAll(getIndexes());
  9. keys.addAll(getUniqueKeys());
  10. return keys;
  11. }

代码示例来源:origin: org.teiid/teiid-engine

  1. public Collection<KeyRecord> getUniqueKeysInGroup(final Object groupID)
  2. throws TeiidComponentException, QueryMetadataException {
  3. Table tableRecordImpl = (Table)groupID;
  4. ArrayList<KeyRecord> result = new ArrayList<KeyRecord>(tableRecordImpl.getUniqueKeys());
  5. if (tableRecordImpl.getPrimaryKey() != null) {
  6. result.add(tableRecordImpl.getPrimaryKey());
  7. }
  8. for (KeyRecord key : tableRecordImpl.getIndexes()) {
  9. if (key.getType() == KeyRecord.Type.Unique) {
  10. result.add(key);
  11. }
  12. }
  13. return result;
  14. }

代码示例来源:origin: org.jboss.teiid/teiid-engine

  1. public Collection<KeyRecord> getUniqueKeysInGroup(final Object groupID)
  2. throws TeiidComponentException, QueryMetadataException {
  3. Table tableRecordImpl = (Table)groupID;
  4. ArrayList<KeyRecord> result = new ArrayList<KeyRecord>(tableRecordImpl.getUniqueKeys());
  5. if (tableRecordImpl.getPrimaryKey() != null) {
  6. result.add(tableRecordImpl.getPrimaryKey());
  7. }
  8. for (KeyRecord key : tableRecordImpl.getIndexes()) {
  9. if (key.getType() == KeyRecord.Type.Unique) {
  10. result.add(key);
  11. }
  12. }
  13. return result;
  14. }

代码示例来源:origin: teiid/teiid

  1. public Collection<KeyRecord> getUniqueKeysInGroup(final Object groupID)
  2. throws TeiidComponentException, QueryMetadataException {
  3. Table tableRecordImpl = (Table)groupID;
  4. ArrayList<KeyRecord> result = new ArrayList<KeyRecord>(tableRecordImpl.getUniqueKeys());
  5. if (tableRecordImpl.getPrimaryKey() != null) {
  6. result.add(tableRecordImpl.getPrimaryKey());
  7. }
  8. for (KeyRecord key : tableRecordImpl.getIndexes()) {
  9. if (key.getType() == KeyRecord.Type.Unique) {
  10. result.add(key);
  11. }
  12. }
  13. return result;
  14. }

代码示例来源:origin: org.teiid.connectors/translator-jdbc

  1. private KeyRecord autoCreateUniqueKeys(boolean create, MetadataFactory factory, String name, TreeMap<Short, String> referencedKeyColumns, Table pkTable) {
  2. if (referencedKeyColumns != null && pkTable.getPrimaryKey() == null && pkTable.getUniqueKeys().isEmpty()) {
  3. factory.addIndex(name + "_unique", false, new ArrayList<String>(referencedKeyColumns.values()), pkTable); //$NON-NLS-1$
  4. }
  5. KeyRecord uniqueKey = null;
  6. if (referencedKeyColumns == null) {
  7. uniqueKey = pkTable.getPrimaryKey();
  8. } else {
  9. for (KeyRecord record : pkTable.getUniqueKeys()) {
  10. if (keyMatches(new ArrayList<String>(referencedKeyColumns.values()), record)) {
  11. uniqueKey = record;
  12. break;
  13. }
  14. }
  15. if (uniqueKey == null && pkTable.getPrimaryKey() != null && keyMatches(new ArrayList<String>(referencedKeyColumns.values()), pkTable.getPrimaryKey())) {
  16. uniqueKey = pkTable.getPrimaryKey();
  17. }
  18. }
  19. if (uniqueKey == null && create) {
  20. uniqueKey = factory.addIndex(name + "_unique", false, new ArrayList<String>(referencedKeyColumns.values()), pkTable); //$NON-NLS-1$
  21. }
  22. return uniqueKey;
  23. }

代码示例来源:origin: org.teiid/teiid-olingo

  1. static boolean isPartOfPrimaryKey(Table table, String columnName) {
  2. KeyRecord pk = table.getPrimaryKey();
  3. if (hasColumn(pk, columnName)) {
  4. return true;
  5. }
  6. for (KeyRecord key:table.getUniqueKeys()) {
  7. if (hasColumn(key, columnName)) {
  8. return true;
  9. }
  10. }
  11. return false;
  12. }

代码示例来源:origin: org.teiid.connectors/translator-odata

  1. private boolean matchesWithPkOrUnique(List<String> names, Table table) {
  2. if (keyMatches(names, table.getPrimaryKey())) {
  3. return true;
  4. }
  5. for (KeyRecord record:table.getUniqueKeys()) {
  6. if (keyMatches(names, record)) {
  7. return true;
  8. }
  9. }
  10. return false;
  11. }

代码示例来源:origin: org.teiid.connectors/translator-odata

  1. static boolean isPartOfPrimaryKey(Table table, String columnName) {
  2. KeyRecord pk = table.getPrimaryKey();
  3. if (hasColumn(pk, columnName)) {
  4. return true;
  5. }
  6. for (KeyRecord key:table.getUniqueKeys()) {
  7. if (hasColumn(key, columnName)) {
  8. return true;
  9. }
  10. }
  11. return false;
  12. }

代码示例来源:origin: teiid/teiid

  1. /**
  2. * Adds an index to the given table.
  3. * @param name
  4. * @param nonUnique true indicates that an index is being added.
  5. * @param columnNames
  6. * @param table
  7. * @return
  8. * @throws MetadataException
  9. */
  10. public KeyRecord addIndex(String name, boolean nonUnique, List<String> columnNames, Table table) {
  11. KeyRecord index = new KeyRecord(nonUnique?KeyRecord.Type.Index:KeyRecord.Type.Unique);
  12. index.setParent(table);
  13. index.setColumns(new ArrayList<Column>(columnNames.size()));
  14. index.setName(name);
  15. assignColumns(columnNames, table, index);
  16. setUUID(index);
  17. if (nonUnique) {
  18. table.getIndexes().add(index);
  19. }
  20. else {
  21. table.getUniqueKeys().add(index);
  22. }
  23. return index;
  24. }

代码示例来源:origin: org.teiid/teiid-olingo

  1. OrderBy addDefaultOrderBy() {
  2. if (this.table == null) {
  3. return null;
  4. }
  5. OrderBy orderBy = new OrderBy();
  6. // provide implicit ordering for cursor logic
  7. KeyRecord record = this.table.getPrimaryKey();
  8. if (record == null) {
  9. // if PK is not available there MUST at least one unique key
  10. record = this.table.getUniqueKeys().get(0);
  11. }
  12. // provide implicit ordering for cursor logic
  13. for (Column column:record.getColumns()) {
  14. ElementSymbol expr = new ElementSymbol(column.getName(), this.groupSymbol);
  15. orderBy.addVariable(expr);
  16. addProjectedColumn(column.getName(), expr);
  17. }
  18. return orderBy;
  19. }

代码示例来源:origin: teiid/teiid

  1. @Test
  2. public void testConstraints2() throws Exception {
  3. String ddl = "CREATE FOREIGN TABLE G1( e1 integer, e2 varchar, e3 date, " +
  4. "ACCESSPATTERN(e1), UNIQUE(e1), ACCESSPATTERN(e2, e3))";
  5. Schema s = helpParse(ddl, "model").getSchema();
  6. Map<String, Table> tableMap = s.getTables();
  7. assertTrue("Table not found", tableMap.containsKey("G1"));
  8. Table table = tableMap.get("G1");
  9. assertEquals(table.getColumns().subList(0, 1), table.getUniqueKeys().get(0).getColumns());
  10. assertEquals(2, table.getAccessPatterns().size());
  11. assertEquals(table.getColumns().subList(0, 1), table.getAccessPatterns().get(0).getColumns());
  12. assertEquals(table.getColumns().subList(1, 3), table.getAccessPatterns().get(1).getColumns());
  13. }

代码示例来源:origin: org.teiid/teiid-engine

  1. final public void inlineConstraint(MetadataFactory factory, Table table, List<String> columnName) throws ParseException {
  2. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  3. case PRIMARY:
  4. jj_consume_token(PRIMARY);
  5. jj_consume_token(KEY);
  6. if (table.getPrimaryKey() != null) {
  7. {if (true) throw new MetadataException(QueryPlugin.Util.getString("SQLParser.pk_exists", table.getName()));}
  8. }
  9. factory.addPrimaryKey("PK", columnName, table);
  10. break;
  11. case UNIQUE:
  12. jj_consume_token(UNIQUE);
  13. factory.addIndex("UNIQUE"+table.getUniqueKeys().size(), false, columnName, table);
  14. break;
  15. case INDEX:
  16. jj_consume_token(INDEX);
  17. factory.addIndex("INDEX"+table.getIndexes().size(), true, columnName, table);
  18. break;
  19. default:
  20. jj_la1[439] = jj_gen;
  21. jj_consume_token(-1);
  22. throw new ParseException();
  23. }
  24. }

代码示例来源:origin: teiid/teiid

  1. final public void inlineConstraint(MetadataFactory factory, Table table, List<String> columnName) throws ParseException {
  2. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  3. case PRIMARY:
  4. jj_consume_token(PRIMARY);
  5. jj_consume_token(KEY);
  6. if (table.getPrimaryKey() != null) {
  7. {if (true) throw new MetadataException(QueryPlugin.Util.getString("SQLParser.pk_exists", table.getName()));}
  8. }
  9. factory.addPrimaryKey("PK", columnName, table);
  10. break;
  11. case UNIQUE:
  12. jj_consume_token(UNIQUE);
  13. factory.addIndex("UNIQUE"+table.getUniqueKeys().size(), false, columnName, table);
  14. break;
  15. case INDEX:
  16. jj_consume_token(INDEX);
  17. factory.addIndex("INDEX"+table.getIndexes().size(), true, columnName, table);
  18. break;
  19. default:
  20. jj_la1[439] = jj_gen;
  21. jj_consume_token(-1);
  22. throw new ParseException();
  23. }
  24. }

代码示例来源:origin: teiid/teiid

  1. @Test
  2. public void testConstraints() throws Exception {
  3. String ddl = "CREATE FOREIGN TABLE G1( e1 integer, e2 varchar, e3 date, " +
  4. " PRIMARY KEY (e1, e2), INDEX(e2, e3), ACCESSPATTERN(e1), UNIQUE(e1)," +
  5. " ACCESSPATTERN(e2, e3))";
  6. Schema s = helpParse(ddl, "model").getSchema();
  7. Map<String, Table> tableMap = s.getTables();
  8. assertTrue("Table not found", tableMap.containsKey("G1"));
  9. Table table = tableMap.get("G1");
  10. assertEquals(table.getColumns().subList(0, 2), table.getPrimaryKey().getColumns());
  11. assertEquals(table.getColumns().subList(1, 3), table.getIndexes().get(0).getColumns());
  12. assertEquals(table.getColumns().subList(0, 1), table.getUniqueKeys().get(0).getColumns());
  13. assertEquals(2, table.getAccessPatterns().size());
  14. assertEquals(table.getColumns().subList(0, 1), table.getAccessPatterns().get(0).getColumns());
  15. assertEquals(table.getColumns().subList(1, 3), table.getAccessPatterns().get(1).getColumns());
  16. }

代码示例来源:origin: org.teiid.connectors/translator-mongodb

  1. private DBCollection getCollection(Table table) {
  2. DBCollection collection;
  3. if (!this.mongoDB.collectionExists(table.getName())) {
  4. collection = this.mongoDB.createCollection(table.getName(), null);
  5. // since this is the first time creating the tables; create the indexes on the collection
  6. // index on foreign keys
  7. for (ForeignKey record:table.getForeignKeys()) {
  8. createIndex(collection, record, false);
  9. }
  10. // index on unique
  11. for (KeyRecord record:table.getUniqueKeys()) {
  12. createIndex(collection, record, true);
  13. }
  14. // index on index keys
  15. for (KeyRecord record:table.getIndexes()) {
  16. createIndex(collection, record, false);
  17. }
  18. }
  19. else {
  20. collection = this.mongoDB.getCollection(table.getName());
  21. }
  22. return collection;
  23. }

代码示例来源:origin: teiid/teiid

  1. private void buildContraints(Table table) {
  2. addConstraints(table.getAccessPatterns(), "AP", ACCESSPATTERN); //$NON-NLS-1$
  3. KeyRecord pk = table.getPrimaryKey();
  4. if (pk != null) {
  5. addConstraint("PK", PRIMARY_KEY, pk, true); //$NON-NLS-1$
  6. }
  7. addConstraints(table.getUniqueKeys(), UNIQUE, UNIQUE);
  8. addConstraints(table.getIndexes(), INDEX, INDEX);
  9. addConstraints(table.getFunctionBasedIndexes(), INDEX, INDEX);
  10. for (int i = 0; i < table.getForeignKeys().size(); i++) {
  11. ForeignKey key = table.getForeignKeys().get(i);
  12. addConstraint("FK" + i, FOREIGN_KEY, key, false); //$NON-NLS-1$
  13. append(SPACE).append(REFERENCES);
  14. if (key.getReferenceKey() != null) {
  15. if (key.getReferenceKey().getParent().getParent().equals(key.getParent().getParent())) {
  16. append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getName()));
  17. } else {
  18. append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getFullName()));
  19. }
  20. } else if (key.getReferenceTableName() != null) {
  21. append(SPACE).append(new GroupSymbol(key.getReferenceTableName()));
  22. }
  23. append(SPACE);
  24. addNames(key.getReferenceColumns());
  25. appendOptions(key);
  26. }
  27. }

代码示例来源:origin: org.teiid/teiid-engine

  1. private void buildContraints(Table table) {
  2. addConstraints(table.getAccessPatterns(), "AP", ACCESSPATTERN); //$NON-NLS-1$
  3. KeyRecord pk = table.getPrimaryKey();
  4. if (pk != null) {
  5. addConstraint("PK", PRIMARY_KEY, pk, true); //$NON-NLS-1$
  6. }
  7. addConstraints(table.getUniqueKeys(), UNIQUE, UNIQUE);
  8. addConstraints(table.getIndexes(), INDEX, INDEX);
  9. addConstraints(table.getFunctionBasedIndexes(), INDEX, INDEX);
  10. for (int i = 0; i < table.getForeignKeys().size(); i++) {
  11. ForeignKey key = table.getForeignKeys().get(i);
  12. addConstraint("FK" + i, FOREIGN_KEY, key, false); //$NON-NLS-1$
  13. append(SPACE).append(REFERENCES);
  14. if (key.getReferenceKey() != null) {
  15. if (key.getReferenceKey().getParent().getParent().equals(key.getParent().getParent())) {
  16. append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getName()));
  17. } else {
  18. append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getFullName()));
  19. }
  20. } else if (key.getReferenceTableName() != null) {
  21. append(SPACE).append(new GroupSymbol(key.getReferenceTableName()));
  22. }
  23. append(SPACE);
  24. addNames(key.getReferenceColumns());
  25. appendOptions(key);
  26. }
  27. }

代码示例来源:origin: org.jboss.teiid/teiid-engine

  1. private void buildContraints(Table table) {
  2. addConstraints(table.getAccessPatterns(), "AP", ACCESSPATTERN); //$NON-NLS-1$
  3. KeyRecord pk = table.getPrimaryKey();
  4. if (pk != null) {
  5. addConstraint("PK", PRIMARY_KEY, pk, true); //$NON-NLS-1$
  6. }
  7. addConstraints(table.getUniqueKeys(), UNIQUE, UNIQUE);
  8. addConstraints(table.getIndexes(), INDEX, INDEX);
  9. addConstraints(table.getFunctionBasedIndexes(), INDEX, INDEX);
  10. for (int i = 0; i < table.getForeignKeys().size(); i++) {
  11. ForeignKey key = table.getForeignKeys().get(i);
  12. addConstraint("FK" + i, FOREIGN_KEY, key, false); //$NON-NLS-1$
  13. append(SPACE).append(REFERENCES);
  14. if (key.getReferenceKey() != null) {
  15. if (key.getReferenceKey().getParent().getParent().equals(key.getParent().getParent())) {
  16. append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getName()));
  17. } else {
  18. append(SPACE).append(new GroupSymbol(key.getReferenceKey().getParent().getFullName()));
  19. }
  20. } else if (key.getReferenceTableName() != null) {
  21. append(SPACE).append(new GroupSymbol(key.getReferenceTableName()));
  22. }
  23. append(SPACE);
  24. addNames(key.getReferenceColumns());
  25. appendOptions(key);
  26. }
  27. }

相关文章