/** * Return <code><value> AS <type></code>. */ @Override public String getPlaceholderValueString(Column col) { return super.getPlaceholderValueString(col) + " AS " + getTypeName(col); }
/** * Determine Firebird version and configure itself accordingly. */ @SuppressWarnings("unchecked") @Override public void connectedConfiguration(Connection conn) throws SQLException { super.connectedConfiguration(conn); firebirdVersion = determineFirebirdVersion(conn); determineRangeSyntax(); if (firebirdVersion == FB_VERSION_21) selectWordSet.add("WITH"); if (!(firebirdVersion == FB_VERSION_21)) { crossJoinClause = "JOIN"; requiresConditionForCrossJoin = true; } if (firebirdVersion == FB_VERSION_15) { stringLengthFunction = "STRLEN({0})"; trimLeadingFunction = "LTRIM({0})"; trimTrailingFunction = "RTRIM({0})"; trimBothFunction = "LTRIM(RTRIM({0}))"; alterSequenceSQL = alterSequenceSQLFB15; createSequenceSQL = createSequenceSQLFB15; } }
/** * Return * <code>ALTER TABLE <table name> DROP <col name></code>. */ @Override public String[] getDropColumnSQL(Column column) { return new String[] { "ALTER TABLE " + getFullName(column.getTable(), false) + " DROP " + getColumnDBName(column) }; }
/** * Return either * <code>CREATE SEQUENCE <sequence name></code> or * <code>CREATE GENERATOR <sequence name></code>. * If initial value of sequence is set, return also * an appropriate <code>ALTER</code> statement. */ @Override public String[] getCreateSequenceSQL(Sequence seq) { String seqName = checkNameLength(getFullName(seq), maxTableNameLength, "long-seq-name"); String createSeq = MessageFormat.format(createSequenceSQL, new Object[] { seqName }); if (seq.getInitialValue() == 0) return new String[] { createSeq }; // Use String.valueOf to get rid of possible number formatting. String alterSeq = MessageFormat.format(alterSequenceSQL, new Object[] { seqName, String.valueOf(seq.getInitialValue()) }); return new String[] { createSeq, alterSeq }; }
/** * Return <code>%</code> if <code>tableName</code> is <code>null</code>, * otherwise delegate to super implementation. */ @Override protected String getTableNameForMetadata(String tableName) { return (tableName == null) ? IdentifierUtil.PERCENT : getTableNameForMetadata(DBIdentifier.newTable(tableName)); }
/** * On Firebird 1.5 return * <code>DROP GENERATOR <sequence name></code>. * On Firebird 2.0 and later delegate to the super implementation. */ @Override public String[] getDropSequenceSQL(Sequence seq) { if (firebirdVersion == FB_VERSION_15) return new String[] { dropSequenceSQLFB15 + getFullName(seq) }; return super.getDropSequenceSQL(seq); }
/** * Return Firebird-specific statement to select the list of sequences. */ @Override protected String getSequencesSQL(String schemaName, String sequenceName) { return getSequencesSQL(DBIdentifier.newSchema(schemaName), DBIdentifier.newSequence(sequenceName)); }
/** * Return either * <code>CREATE SEQUENCE <sequence name></code> or * <code>CREATE GENERATOR <sequence name></code>. * If initial value of sequence is set, return also * an appropriate <code>ALTER</code> statement. */ @Override public String[] getCreateSequenceSQL(Sequence seq) { String seqName = checkNameLength(getFullName(seq), maxTableNameLength, "long-seq-name"); String createSeq = MessageFormat.format(createSequenceSQL, new Object[] { seqName }); if (seq.getInitialValue() == 0) return new String[] { createSeq }; // Use String.valueOf to get rid of possible number formatting. String alterSeq = MessageFormat.format(alterSequenceSQL, new Object[] { seqName, String.valueOf(seq.getInitialValue()) }); return new String[] { createSeq, alterSeq }; }
/** * Return <code>%</code> if <code>tableName</code> is <code>null</code>, * otherwise delegate to super implementation. */ @Override protected String getTableNameForMetadata(String tableName) { return (tableName == null) ? IdentifierUtil.PERCENT : getTableNameForMetadata(DBIdentifier.newTable(tableName)); }
/** * On Firebird 1.5 return * <code>DROP GENERATOR <sequence name></code>. * On Firebird 2.0 and later delegate to the super implementation. */ @Override public String[] getDropSequenceSQL(Sequence seq) { if (firebirdVersion == FB_VERSION_15) return new String[] { dropSequenceSQLFB15 + getFullName(seq) }; return super.getDropSequenceSQL(seq); }
/** * Return Firebird-specific statement to select the list of sequences. */ @Override protected String getSequencesSQL(String schemaName, String sequenceName) { return getSequencesSQL(DBIdentifier.newSchema(schemaName), DBIdentifier.newSequence(sequenceName)); }
/** * Return * <code>ALTER TABLE <table name> DROP <col name></code>. */ @Override public String[] getDropColumnSQL(Column column) { return new String[] { "ALTER TABLE " + getFullName(column.getTable(), false) + " DROP " + getColumnDBName(column) }; }
/** * Return either * <code>CREATE SEQUENCE <sequence name></code> or * <code>CREATE GENERATOR <sequence name></code>. * If initial value of sequence is set, return also * an appropriate <code>ALTER</code> statement. */ @Override public String[] getCreateSequenceSQL(Sequence seq) { String seqName = checkNameLength(getFullName(seq), maxTableNameLength, "long-seq-name"); String createSeq = MessageFormat.format(createSequenceSQL, new Object[] { seqName }); if (seq.getInitialValue() == 0) return new String[] { createSeq }; // Use String.valueOf to get rid of possible number formatting. String alterSeq = MessageFormat.format(alterSequenceSQL, new Object[] { seqName, String.valueOf(seq.getInitialValue()) }); return new String[] { createSeq, alterSeq }; }
/** * Determine Firebird version and configure itself accordingly. */ @SuppressWarnings("unchecked") @Override public void connectedConfiguration(Connection conn) throws SQLException { super.connectedConfiguration(conn); firebirdVersion = determineFirebirdVersion(conn); determineRangeSyntax(); if (firebirdVersion == FB_VERSION_21) selectWordSet.add("WITH"); if (!(firebirdVersion == FB_VERSION_21)) { crossJoinClause = "JOIN"; requiresConditionForCrossJoin = true; } if (firebirdVersion == FB_VERSION_15) { stringLengthFunction = "STRLEN({0})"; trimLeadingFunction = "LTRIM({0})"; trimTrailingFunction = "RTRIM({0})"; trimBothFunction = "LTRIM(RTRIM({0}))"; alterSequenceSQL = alterSequenceSQLFB15; createSequenceSQL = createSequenceSQLFB15; } }
public String getPlaceholderValueString(Column col) { return super.getPlaceholderValueString(col) + " AS " + getTypeName(col); }
/** * Return <code>%</code> if <code>tableName</code> is <code>null</code>, * otherwise delegate to super implementation. */ @Override protected String getTableNameForMetadata(String tableName) { return (tableName == null) ? IdentifierUtil.PERCENT : getTableNameForMetadata(DBIdentifier.newTable(tableName)); }
/** * On Firebird 1.5 return * <code>DROP GENERATOR <sequence name></code>. * On Firebird 2.0 and later delegate to the super implementation. */ @Override public String[] getDropSequenceSQL(Sequence seq) { if (firebirdVersion == FB_VERSION_15) return new String[] { dropSequenceSQLFB15 + getFullName(seq) }; return super.getDropSequenceSQL(seq); }
/** * Return Firebird-specific statement to select the list of sequences. */ @Override protected String getSequencesSQL(String schemaName, String sequenceName) { return getSequencesSQL(DBIdentifier.newSchema(schemaName), DBIdentifier.newSequence(sequenceName)); }