You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by "Thomas Dudziak (JIRA)" <ji...@apache.org> on 2008/04/21 00:24:21 UTC
[jira] Commented: (DDLUTILS-199) Postgress AutoIncrement fails
[ https://issues.apache.org/jira/browse/DDLUTILS-199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590815#action_12590815 ]
Thomas Dudziak commented on DDLUTILS-199:
-----------------------------------------
The underscore is not a special character - in fact it is usually the only non alphanumeric character that is allowed in table/column/... names when not in delimited identifier mode.
Could you post the database version, the exact model or even SQL that you have problems with, and the errors that you're getting ?
Could you also try this SQL:
CREATE SEQUENCE roundtrip_avalue_seq;
CREATE TABLE roundtrip
(
pk INTEGER NOT NULL,
avalue INTEGER UNIQUE DEFAULT nextval('roundtrip_avalue_seq'),
PRIMARY KEY (pk)
);
INSERT INTO roundtrip (pk) VALUES (1);
This works fine for me when executed in SQuirrel SQL 2.6.1. against a PostgreSQL 8.2 database and the 8.2-506 JDBC driver.
> Postgress AutoIncrement fails
> -----------------------------
>
> Key: DDLUTILS-199
> URL: https://issues.apache.org/jira/browse/DDLUTILS-199
> Project: DdlUtils
> Issue Type: Bug
> Components: Core - PostgreSql
> Affects Versions: 1.0
> Environment: Ubuntu 7.10, PostgreSQL 8.2.6
> Reporter: Rijk van Haaften
> Assignee: Thomas Dudziak
> Fix For: 1.1
>
> Original Estimate: 0.17h
> Remaining Estimate: 0.17h
>
> class org.apache.ddlutils.platform.postgresql.PostgreSqlBuilder
> writeColumnAutoIncrementStmt(Table, Column)
> encloses the parameter of nextval in single quotes.
> print("UNIQUE DEFAULT nextval('");
> ...
> print("')");
> which in my case generates
> UNIQUE DEFAULT nextval('Entity_id_seq')
> The underscore is a 'special' character, so the string Entity_id_seq needs to be in double quotes. The fix is simple but tricky: the single quotes MUST remain! My local fix (notice the escaped double quote \" twice):
> /**
> * {@inheritDoc}
> */
> protected void writeColumnAutoIncrementStmt(Table table, Column column) throws IOException
> {
> print("UNIQUE DEFAULT nextval('\"");
> print(getConstraintName(null, table, column.getName(), "seq"));
> print("\"')");
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.