public List<Column> getElementIDsInAccessPattern(final Object accessPattern) throws TeiidComponentException, QueryMetadataException { return ((ColumnSet<?>)accessPattern).getColumns(); }
/** * Add a procedure resultset column to the given procedure. * @param name * @param type should be one of {@link TypeFacility.RUNTIME_NAMES} * @param procedure * @return * @throws MetadataException */ public Column addProcedureResultSetColumn(String name, String type, Procedure procedure) { if (procedure.getResultSet() == null) { ColumnSet<Procedure> resultSet = new ColumnSet<Procedure>(); resultSet.setParent(procedure); resultSet.setName("RSParam"); //$NON-NLS-1$ setUUID(resultSet); procedure.setResultSet(resultSet); } return addColumn(name, type, procedure.getResultSet()); }
public Column renameColumn(String oldName, String name, ColumnSet<?> table) { if (this.autoCorrectColumnNames) { name = name.replace(AbstractMetadataRecord.NAME_DELIM_CHAR, '_'); } else if (name.indexOf(AbstractMetadataRecord.NAME_DELIM_CHAR) != -1) { throw new MetadataException(DataPlugin.Event.TEIID60008, DataPlugin.Util.gs(DataPlugin.Event.TEIID60008, table.getFullName(), name)); } if (table.getColumnByName(name) != null) { throw new DuplicateRecordException(DataPlugin.Event.TEIID60016, DataPlugin.Util.gs(DataPlugin.Event.TEIID60016, table.getFullName() + AbstractMetadataRecord.NAME_DELIM_CHAR + name)); } Column column = table.getColumnByName(oldName); if (column == null) { throw new MetadataException(DataPlugin.Event.TEIID60011, DataPlugin.Util.gs(DataPlugin.Event.TEIID60011, table.getFullName(), oldName)); } table.removeColumn(column); column.setName(name); table.addColumn(column); return column; }
public void addColumn(Column column) { if (columns == null) { columns = new ArrayList<Column>(); } if (getColumnByName(column.getName()) != null) { throw new DuplicateRecordException(DataPlugin.Event.TEIID60016, DataPlugin.Util.gs(DataPlugin.Event.TEIID60016, getFullName() + AbstractMetadataRecord.NAME_DELIM_CHAR + column.getName())); } columns.add(column); Map<String, Column> map = columnMap; if (map != null) { map.put(column.getName(), column); } }
SPParameter param = new SPParameter(lastParamIndex, SPParameter.RESULT_SET, resultRecord.getFullName()); param.setClassType(java.sql.ResultSet.class); param.setMetadataID(resultRecord); for (Column columnRecord : resultRecord.getColumns()) { String colType = columnRecord.getRuntimeType(); param.addResultSetColumn(columnRecord.getFullName(), DataTypeManager.getDataTypeClass(colType), columnRecord);
throw new MetadataException(DataPlugin.Event.TEIID60008, DataPlugin.Util.gs(DataPlugin.Event.TEIID60008, table.getFullName(), name)); name = checkForDuplicate(name, (s)->table.getColumnByName(s) != null, "Column"); //$NON-NLS-1$ table.addColumn(column); column.setParent(table); column.setPosition(table.getColumns().size()); //1 based indexing setDataType(type, column, this.dataTypes, false); setUUID(column);
private static CsdlComplexType buildComplexType(Procedure proc, ColumnSet<Procedure> returnColumns, CsdlSchema csdlSchema) { CsdlComplexType complexType = new CsdlComplexType(); String entityTypeName = proc.getName() + "_" + returnColumns.getName(); //$NON-NLS-1$ complexType.setName(entityTypeName); ArrayList<CsdlProperty> props = new ArrayList<CsdlProperty>(); for (Column c : returnColumns.getColumns()) { CsdlProperty property = buildProperty(c, (c.getNullType() == NullType.Nullable)); props.add(property); addColumnAnnotations(c, property, csdlSchema); } complexType.setProperties(props); return complexType; }
public static Column createElement(String name, ColumnSet<?> group, String type) { Column column = new Column(); column.setName(name); group.addColumn(column); column.setRuntimeType(type); if(type.equals(DataTypeManager.DefaultDataTypes.STRING)) { column.setSearchType(SearchType.Searchable); } else if (DataTypeManager.isNonComparable(type)){ column.setSearchType(SearchType.Unsearchable); } else { column.setSearchType(SearchType.All_Except_Like); } column.setNullType(NullType.Nullable); column.setPosition(group.getColumns().size()); //1 based indexing column.setUpdatable(true); column.setDatatype(SystemMetadata.getInstance().getRuntimeTypeMap().get(type), true, 0); if (DataTypeManager.hasLength(type) && !type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.CHAR)) { column.setLength(100); } column.setNameInSource(name); return column; }
ColumnSet<Procedure> resultRecord = (ColumnSet<Procedure>) getRecordByType(result.getUUID(), MetadataConstants.RECORD_TYPE.RESULT_SET, false); if (resultRecord != null) { resultRecord.setParent(procedureRecord); resultRecord.setName(RecordFactory.getShortName(resultRecord.getName())); loadColumnSetRecords(resultRecord, null); procedureRecord.setResultSet(resultRecord);
public String getFullName(final Object metadataID) throws TeiidComponentException, QueryMetadataException { AbstractMetadataRecord metadataRecord = (AbstractMetadataRecord) metadataID; if (metadataRecord instanceof Column) { Column c = (Column)metadataRecord; if (c.getParent() != null && c.getParent().getParent() instanceof Procedure) { return c.getParent().getParent().getFullName() + '.' + c.getName(); } } return metadataRecord.getFullName(); }
/** * Create a result set. */ public static ColumnSet<Procedure> createResultSet(String name, String[] colNames, String[] colTypes) { ColumnSet<Procedure> rs = new ColumnSet<Procedure>(); int index = name.indexOf('.'); if (index > 0) { name = name.substring(index + 1); } rs.setName(name); for(Column column : createElements(rs, colNames, colTypes)) { column.setParent(rs); } return rs; }
AbstractMetadataRecord getColumn(String paramName, Procedure proc, boolean parameter) throws MetadataException { if (proc.getResultSet() != null) { Column result = proc.getResultSet().getColumnByName(paramName); if (result != null) { return result; } } if (parameter) { List<ProcedureParameter> params = proc.getParameters(); for (ProcedureParameter param:params) { if (param.getName().equalsIgnoreCase(paramName)) { return param; } } } throw new MetadataException(QueryPlugin.Util.getString("SQLParser.alter_procedure_param_doesnot_exist", paramName, proc.getName())); //$NON-NLS-1$ }
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));
@Override public String getFullName() { if (this.tableType == Type.TemporaryTable && !this.isVirtual) { return this.getName(); } return super.getFullName(); }
SPParameter param = new SPParameter(lastParamIndex, SPParameter.RESULT_SET, resultRecord.getFullName()); param.setClassType(java.sql.ResultSet.class); param.setMetadataID(resultRecord); for (Column columnRecord : resultRecord.getColumns()) { String colType = columnRecord.getRuntimeType(); param.addResultSetColumn(columnRecord.getFullName(), DataTypeManager.getDataTypeClass(colType), columnRecord);
httpMethod = "GET"; //$NON-NLS-1$ EdmComplexType.Builder complexType = EdmComplexType.newBuilder(); String entityTypeName = proc.getName()+"_"+returnColumns.getName(); //$NON-NLS-1$ if (preserveEntityTypeName && proc.getProperty(ODataMetadataProcessor.ENTITY_TYPE, false) != null) { entityTypeName = proc.getProperty(ODataMetadataProcessor.ENTITY_TYPE, false); for (Column c:returnColumns.getColumns()) { EdmProperty.Builder property = EdmProperty.newBuilder(c.getName()) .setType(ODataTypeManager.odataType(c.getRuntimeType()))
ColumnSet<Procedure> resultRecord = (ColumnSet<Procedure>) getRecordByType(result.getUUID(), MetadataConstants.RECORD_TYPE.RESULT_SET, false); if (resultRecord != null) { resultRecord.setParent(procedureRecord); resultRecord.setName(RecordFactory.getShortName(resultRecord.getName())); loadColumnSetRecords(resultRecord, null); procedureRecord.setResultSet(resultRecord);
public String getFullName(final Object metadataID) throws TeiidComponentException, QueryMetadataException { AbstractMetadataRecord metadataRecord = (AbstractMetadataRecord) metadataID; if (metadataRecord instanceof Column) { Column c = (Column)metadataRecord; if (c.getParent() != null && c.getParent().getParent() instanceof Procedure) { return c.getParent().getParent().getFullName() + '.' + c.getName(); } } return metadataRecord.getFullName(); }