[Squirrel-sql-commits] sql12/fw/src/net/sourceforge/squirrel_sql/fw/dialects Oracle9iDialect.java,
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2008-01-21 00:20:39
|
Update of /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/dialects In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19021/fw/src/net/sourceforge/squirrel_sql/fw/dialects Modified Files: Oracle9iDialect.java Log Message: Fixed issue with Oracle dialect when creating sequences with no min/max value specified. Index: Oracle9iDialect.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/dialects/Oracle9iDialect.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Oracle9iDialect.java 20 Jan 2008 21:34:54 -0000 1.26 --- Oracle9iDialect.java 21 Jan 2008 00:20:32 -0000 1.27 *************** *** 575,578 **** --- 575,579 ---- public String[] getAddAutoIncrementSQL(TableColumnInfo column, DatabaseObjectQualifier qualifier, SqlGenerationPreferences prefs) { + // TODO Auto-generated method stub *************** *** 582,586 **** // :new.id := seq_name@nextval; ! throw new UnsupportedOperationException("Oracle doesn't support using sequences for column defaults"); } --- 583,620 ---- // :new.id := seq_name@nextval; ! //throw new UnsupportedOperationException("Oracle doesn't support using sequences for column defaults"); ! ! // create a sequence ! String seqName = column.getColumnName() + "_AUTOINC_SEQ"; ! String sequenceSql = getCreateSequenceSQL(seqName, "1", "1", null, "1", null, false, qualifier, prefs); ! ! // create a trigger ! // ! //create or replace trigger foo_trig ! //before insert on F_BALANCE ! //for each row ! //declare ! // nextid number(8) := 0; ! //begin ! // SELECT foo_seq.nextval into nextid from dual; ! // :new.ID := nextid; ! //end; ! ! ! String tableName = column.getTableName(); ! String trigName = column.getColumnName() + "_AUTOINC_TRIG"; ! String triggerSql = ! "CREATE OR REPLACE TRIGGER " + trigName + " \n" + ! "BEFORE INSERT ON " + tableName + " \n" + ! "FOR EACH ROW \n" + ! "DECLARE \n" + ! " nextid number(8) := 0; \n" + ! "BEGIN \n" + ! " SELECT " + seqName +".nextval into nextid from dual; \n" + ! " :new." + column.getColumnName() + " := nextid; \n" + ! "END; "; ! ! ! return new String[] { sequenceSql, triggerSql }; } *************** *** 769,776 **** SqlGenerationPreferences prefs) { return DialectUtils.getCreateSequenceSQL(sequenceName, increment, ! minimum, ! maximum, start, cache, --- 803,825 ---- SqlGenerationPreferences prefs) { + String minValue = minimum; + String minClause = DialectUtils.MINVALUE_CLAUSE; + if (minValue == null || "".equals(minValue)) { + minValue = DialectUtils.NOMINVALUE_CLAUSE; + minClause = ""; + } + String maxValue = maximum; + String maxClause = DialectUtils.MAXVALUE_CLAUSE; + if (maxValue == null || "".equals(maxValue)) { + maxValue = DialectUtils.NOMAXVALUE_CLAUSE; + maxClause = ""; + } + return DialectUtils.getCreateSequenceSQL(sequenceName, increment, ! minClause, ! minValue, ! maxClause, ! maxValue, start, cache, *************** *** 967,972 **** public boolean supportsAutoIncrement() { ! // TODO Auto-generated method stub ! return false; } --- 1016,1020 ---- public boolean supportsAutoIncrement() { ! return true; } |