You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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: