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; }
/** * 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() ); }
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 );