/** * Adds an access pattern to the given table. * @param name * @param columnNames * @param table * @return * @throws MetadataException */ public KeyRecord addAccessPattern(String name, List<String> columnNames, Table table) { KeyRecord ap = new KeyRecord(KeyRecord.Type.AccessPattern); ap.setParent(table); ap.setColumns(new ArrayList<Column>(columnNames.size())); ap.setName(name); setUUID(ap); assignColumns(columnNames, table, ap); table.getAccessPatterns().add(ap); return ap; }
/** * Adds a primary key to the given table. The column names should be in key order. * @param name * @param columnNames * @param table * @return * @throws MetadataException */ public KeyRecord addPrimaryKey(String name, List<String> columnNames, Table table) { KeyRecord primaryKey = new KeyRecord(KeyRecord.Type.Primary); primaryKey.setParent(table); primaryKey.setColumns(new ArrayList<Column>(columnNames.size())); primaryKey.setName(name); setUUID(primaryKey); assignColumns(columnNames, table, primaryKey); table.setPrimaryKey(primaryKey); return primaryKey; }
/** * 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; }
case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER: return createProcedureParameterRecord(record); case MetadataConstants.RECORD_TYPE.COLUMN: return createColumnRecord(record); case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.AccessPattern)); case MetadataConstants.RECORD_TYPE.INDEX: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.Index)); case MetadataConstants.RECORD_TYPE.RESULT_SET: return createColumnSetRecord(record, new ColumnSet()); case MetadataConstants.RECORD_TYPE.UNIQUE_KEY: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.Unique)); case MetadataConstants.RECORD_TYPE.PRIMARY_KEY: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.Primary)); case MetadataConstants.RECORD_TYPE.FOREIGN_KEY: return createForeignKeyRecord(record); case MetadataConstants.RECORD_TYPE.DATATYPE: return createDatatypeRecord(record);
case MetadataConstants.RECORD_TYPE.CALLABLE_PARAMETER: return createProcedureParameterRecord(record); case MetadataConstants.RECORD_TYPE.COLUMN: return createColumnRecord(record); case MetadataConstants.RECORD_TYPE.ACCESS_PATTERN: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.AccessPattern)); case MetadataConstants.RECORD_TYPE.INDEX: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.Index)); case MetadataConstants.RECORD_TYPE.RESULT_SET: return createColumnSetRecord(record, new ColumnSet()); case MetadataConstants.RECORD_TYPE.UNIQUE_KEY: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.Unique)); case MetadataConstants.RECORD_TYPE.PRIMARY_KEY: return createColumnSetRecord(record, new KeyRecord(KeyRecord.Type.Primary)); case MetadataConstants.RECORD_TYPE.FOREIGN_KEY: return createForeignKeyRecord(record); case MetadataConstants.RECORD_TYPE.DATATYPE: return createDatatypeRecord(record);
KeyRecord index = new KeyRecord(KeyRecord.Type.Index); index.setParent(table); index.setColumns(new ArrayList<Column>(expressions.size()));
KeyRecord key = new KeyRecord(type); key.setName(name); for (Column column : elements) {
KeyRecord fbi = new KeyRecord(KeyRecord.Type.Index); Column c = new Column(); c.setParent(fbi);