public void addPreparedArgument( String column, Object value ) { addPreparedArgument( new SQLIdentifier( column ), value, "?" ); }
@Deprecated public String getColumn() { if ( columns.size() == 0 ) { throw new IllegalArgumentException(); } return columns.get( 0 ).first.toString(); }
@Override public boolean equals( Object obj ) { if ( !( obj instanceof KeyPropagation ) ) { return false; } KeyPropagation that = (KeyPropagation) obj; if ( !this.source.equals( that.source ) || !this.target.equals( that.target ) ) { return false; } for ( int i = 0; i < pkColumns.size(); i++ ) { if ( !this.pkColumns.get( i ).equals( that.pkColumns.get( i ) ) ) { return false; } if ( !this.fkColumns.get( i ).equals( that.fkColumns.get( i ) ) ) { return false; } } return true; }
private ColumnMetadata getUnescapedColumnMetadata( TableName qTable, SQLIdentifier columnName ) throws SQLException { String name = columnName.getName(); char leadingEscapeChar = dialect.getLeadingEscapeChar(); char tailingEscapeChar = dialect.getTailingEscapeChar(); if ( leadingEscapeChar == name.charAt( 0 ) && tailingEscapeChar == name.charAt( name.length() - 1 ) ) { SQLIdentifier unescapedColumnName = new SQLIdentifier( name.substring( 1, name.length() - 1 ) ); return getColumnMetadataFromDb( qTable ).get( unescapedColumnName ); } return null; }
jc = buildJoinTable( table, joinConfig ); DBField dbField = new DBField( jc.get( 0 ).getToTable().toString(), jc.get( 0 ).getToColumns().get( 0 ).toString() ); valueTable = new TableName( dbField.getTable(), dbField.getSchema() ); ColumnMetadataOld md = getColumn( valueTable, new SQLIdentifier( columnName ) ); int minOccurs = joinConfig != null ? 0 : md.isNullable ? 0 : 1;
/** * Generates all keys except those that are created by the DB on INSERT. * * @param keyColumnToGenerator * columns and their generators, may be <code>null</code> (no generators) * @throws FeatureStoreException * if an error occurs during generation */ protected void generateImmediateKeys( Map<SQLIdentifier, IDGenerator> keyColumnToGenerator ) throws FeatureStoreException { if ( keyColumnToGenerator != null ) { for ( SQLIdentifier autoKeyColumn : keyColumnToGenerator.keySet() ) { IDGenerator idGenerator = keyColumnToGenerator.get( autoKeyColumn ); if ( idGenerator instanceof SequenceIDGenerator ) { int seqVal = getSequenceNextVal( ( (SequenceIDGenerator) idGenerator ).getSequence() ); LOG.debug( "Got key value for column '" + autoKeyColumn.getName() + "' from sequence: " + seqVal ); addPreparedArgument( autoKeyColumn, seqVal ); } else if ( idGenerator instanceof UUIDGenerator ) { String uuid = UUID.randomUUID().toString(); LOG.debug( "Got key value for column '" + autoKeyColumn.getName() + "' from UUID: " + uuid ); addPreparedArgument( autoKeyColumn, uuid ); } else if ( idGenerator instanceof AutoIDGenerator ) { LOG.debug( "Key for column '" + autoKeyColumn.getName() + "' will be generated on insert by DB." ); } else { LOG.warn( "Unhandled ID generator: " + idGenerator.getClass().getName() ); } } } }
@Override public List<String> getInitialSelectList() { for ( Pair<SQLIdentifier, BaseType> fidColumn : ftMapping.getFidMapping().getColumns() ) { addColumn( qualifiedSqlExprToRsIdx, tableAlias + "." + fidColumn.first.getName() ); } for ( Mapping mapping : ftMapping.getMappings() ) { addSelectColumns( mapping, qualifiedSqlExprToRsIdx, true ); } LOG.debug( "Initial select columns: " + qualifiedSqlExprToRsIdx ); return new ArrayList<String>( qualifiedSqlExprToRsIdx.keySet() ); }
public void addPreparedArgument( String column, Object value, String literal ) { addPreparedArgument( new SQLIdentifier( column ), value, literal ); }
} else { stmt = conn.prepareStatement( sql, new String[] { autogenColumn.toString() } );
@Override public Object get( SQLIdentifier id ) { int idx = 0; for ( Pair<SQLIdentifier, BaseType> p : ftMapping.getFidMapping().getColumns() ) { if ( p.first.equals( id ) ) { // TODO need to use something other than string here? return idParts[idx]; } ++idx; } return null; } };
PrimitiveType type = new PrimitiveType( baseType ); PrimitiveValue primitiveValue = new PrimitiveValue( value, type ); PrimitiveParticleConverter primitiveConverter = mgr.getDialect().getPrimitiveConverter( idColumn.first.getName(), type ); addPreparedArgument( idColumn.getFirst(), primitiveValue, primitiveConverter );
this.fromColumns = new ArrayList<SQLIdentifier>( fromColumns.size() ); for ( String fromColumn : fromColumns ) { this.fromColumns.add( new SQLIdentifier( fromColumn ) ); this.toColumns = new ArrayList<SQLIdentifier>( toColumns.size() ); for ( String toColumn : toColumns ) { this.toColumns.add( new SQLIdentifier( toColumn ) ); this.orderColumns = new ArrayList<SQLIdentifier>( orderColumns.size() ); for ( String orderColumn : orderColumns ) { this.orderColumns.add( new SQLIdentifier( orderColumn ) );
private void followJoins( List<TableJoin> joinedTables ) { if ( joinedTables != null ) { for ( TableJoin joinedTable : joinedTables ) { String fromTable = currentTable; String fromTableAlias = currentTableAlias; String toTable = joinedTable.getToTable().toString(); String toTableAlias = aliasManager.generateNew(); List<String> fromColumns = new ArrayList<String>( joinedTable.getFromColumns().size() ); for ( SQLIdentifier fromColumn : joinedTable.getFromColumns() ) { fromColumns.add( fromColumn.toString() ); } List<String> toColumns = new ArrayList<String>( joinedTable.getToColumns().size() ); for ( SQLIdentifier toColumn : joinedTable.getToColumns() ) { toColumns.add( toColumn.toString() ); } Join appliedJoin = new Join( fromTable, fromTableAlias, fromColumns, toTable, toTableAlias, toColumns ); joins.add( appliedJoin ); currentTable = toTable; currentTableAlias = toTableAlias; } } } }
private String retrieveTypeOfPrimaryKey( TableName fromTable, SQLIdentifier toColumn, FIDMapping fidMapping ) { if ( fidMapping != null ) { for ( Pair<SQLIdentifier, BaseType> column : fidMapping.getColumns() ) { if ( toColumn.equals( column.getFirst() ) ) { return getDBType( column.getSecond() ); } } } // in joins not connected to the main feature type table 'integer' is used by default if ( !fromTable.equals( currentFtTable ) ) { return "integer"; } return "varchar(2000)"; }
public <T extends TypedObjectNode> void addPreparedArgument( String columnName, T particle, ParticleConverter<T> converter ) { SQLIdentifier column = new SQLIdentifier( columnName ); columnToLiteral.put( column, converter.getSetSnippet( particle ) ); columnToObject.put( column, new ParticleConversion<T>( converter, particle ) ); }
private String retrieveTypeOfPrimaryKey( TableName fromTable, SQLIdentifier toColumn, FIDMapping fidMapping ) { if ( fidMapping != null ) { for ( Pair<SQLIdentifier, BaseType> column : fidMapping.getColumns() ) { if ( toColumn.equals( column.getFirst() ) ) { return getDBType( column.getSecond() ); } } } // TODO implement this correctly // in joins not connected to the main feature type table 'integer' is used by default if ( !fromTable.equals( currentFtTable ) ) { return "integer"; } return "varchar(2000)"; }
private void addRegistryObject( InsertRow ir, RegistryObject ro ) { ir.addPreparedArgument( new SQLIdentifier( "id" ), ro.getId() ); ir.addPreparedArgument( new SQLIdentifier( "objectType" ), ro.getObjectType() ); ir.addPreparedArgument( new SQLIdentifier( "home" ), ro.getHome() ); ir.addPreparedArgument( new SQLIdentifier( "lid" ), ro.getLid() ); ir.addPreparedArgument( new SQLIdentifier( "status" ), ro.getStatus() ); ir.addPreparedArgument( new SQLIdentifier( "externalId" ), ro.getExtId() ); ir.addPreparedArgument( new SQLIdentifier( "name" ), ro.getName() ); ir.addPreparedArgument( new SQLIdentifier( "description" ), ro.getDesc() ); ir.addPreparedArgument( new SQLIdentifier( "versionInfo" ), ro.getVersionInfo() ); }
writer.writeAttribute( "name", column.getFirst().toString() ); writer.writeAttribute( "type", column.getSecond().getXSTypeName() ); writer.writeEndElement();