org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 520
RDB$RELATION_CONSTRAINTS
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:138)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:45)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:89)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:1187)
at org.firebirdsql.jdbc.AbstractConnection.prepareMetaDataStatement(AbstractConnection.java:949)
at org.firebirdsql.jdbc.AbstractDatabaseMetaData.getStatement(AbstractDatabaseMetaData.java:6166)
at org.firebirdsql.jdbc.AbstractDatabaseMetaData.doQuery(AbstractDatabaseMetaData.java:6188)
at org.firebirdsql.jdbc.AbstractDatabaseMetaData.getCrossReference(AbstractDatabaseMetaData.java:4483)
The problem:
A space is missing before the "from" clause of the query that pulls the data.
class : org.firebirdsql.jdbc.AbstractDatabaseMetaData
private static final String GET_CROSS_KEYS = "select "
/*+" null as PKTABLE_CAT "
+" ,null as PKTABLE_SCHEM "*/
+"cast(PK.RDB$RELATION_NAME as varchar(31)) as PKTABLE_NAME"
+",cast(ISP.RDB$FIELD_NAME as varchar(31)) as PKCOLUMN_NAME"
/*+" ,null as FKTABLE_CAT "
+" ,null as FKTABLE_SCHEM "*/
+",cast(FK.RDB$RELATION_NAME as varchar(31)) as FKTABLE_NAME"
+",cast(ISF.RDB$FIELD_NAME as varchar(31)) as FKCOLUMN_NAME"
+",CAST((ISP.RDB$FIELD_POSITION + 1) as SMALLINT) as KEY_SEQ"
+",cast(RC.RDB$UPDATE_RULE as varchar(11)) as UPDATE_RULE"
+",cast(RC.RDB$DELETE_RULE as varchar(11)) as DELETE_RULE"
+",cast(PK.RDB$CONSTRAINT_NAME as varchar(31)) as PK_NAME"
+",cast(FK.RDB$CONSTRAINT_NAME as varchar(31)) as FK_NAME"
/*+" ,null as DEFERRABILITY "*/
+"from " <**************************************************************** NEEDS A SPACE BEFORE THE FROM
+"RDB$RELATION_CONSTRAINTS PK"
+",RDB$RELATION_CONSTRAINTS FK"
Submitted by: David Smith (sybrix)
Is related to JDBC331
Calls to
databaseMetaData.getCrossReference(null, null, parentTable, null, null, foreignTable)
fails w/
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 520
RDB$RELATION_CONSTRAINTS
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:138)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:45)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:89)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:1187)
at org.firebirdsql.jdbc.AbstractConnection.prepareMetaDataStatement(AbstractConnection.java:949)
at org.firebirdsql.jdbc.AbstractDatabaseMetaData.getStatement(AbstractDatabaseMetaData.java:6166)
at org.firebirdsql.jdbc.AbstractDatabaseMetaData.doQuery(AbstractDatabaseMetaData.java:6188)
at org.firebirdsql.jdbc.AbstractDatabaseMetaData.getCrossReference(AbstractDatabaseMetaData.java:4483)
The problem:
A space is missing before the "from" clause of the query that pulls the data.
class : org.firebirdsql.jdbc.AbstractDatabaseMetaData
private static final String GET_CROSS_KEYS = "select "
/*+" null as PKTABLE_CAT "
+" ,null as PKTABLE_SCHEM "*/
+"cast(PK.RDB$RELATION_NAME as varchar(31)) as PKTABLE_NAME"
+",cast(ISP.RDB$FIELD_NAME as varchar(31)) as PKCOLUMN_NAME"
/*+" ,null as FKTABLE_CAT "
+" ,null as FKTABLE_SCHEM "*/
+",cast(FK.RDB$RELATION_NAME as varchar(31)) as FKTABLE_NAME"
+",cast(ISF.RDB$FIELD_NAME as varchar(31)) as FKCOLUMN_NAME"
+",CAST((ISP.RDB$FIELD_POSITION + 1) as SMALLINT) as KEY_SEQ"
+",cast(RC.RDB$UPDATE_RULE as varchar(11)) as UPDATE_RULE"
+",cast(RC.RDB$DELETE_RULE as varchar(11)) as DELETE_RULE"
+",cast(PK.RDB$CONSTRAINT_NAME as varchar(31)) as PK_NAME"
+",cast(FK.RDB$CONSTRAINT_NAME as varchar(31)) as FK_NAME"
/*+" ,null as DEFERRABILITY "*/
+"from " <**************************************************************** NEEDS A SPACE BEFORE THE FROM
+"RDB$RELATION_CONSTRAINTS PK"
+",RDB$RELATION_CONSTRAINTS FK"
Commits: 5ca087d 3f8329a 51e0128 d7057b6 FirebirdSQL/fbt-repository@47647f5 FirebirdSQL/fbt-repository@abb29a6 FirebirdSQL/fbt-repository@b61ec9d FirebirdSQL/fbt-repository@262fdf0
The text was updated successfully, but these errors were encountered: