Hello Lukas,
 

> Yes. Anything as simple as this might fail:
> SELECT ? FROM RDB$DATABASE 
> SELECT ? + ? FROM RDB$DATABASE 
>
Confirmed: This is unsupported. 
AFAIK even oracle doesn't support binding to the "column name" like this, 
although it looks like the query is just returning constants. 
I *really* need to start reading deeper into the jooq source to see why we 
need these types of query... 

Many JDBC drivers / databases can infer types at bind time. This seems 
> not to work with Firebird. jOOQ's usual workaround as mentioned in 
> that blog post is to execute something like this (as jOOQ usually has 
> the type information): 
>
> SELECT CAST(? AS INTEGER) FROM RDB$DATABASE 
> SELECT CAST(? AS INTEGER) + CAST(? AS INTEGER) FROM RDB$DATABASE 
>
Confirmed that this seems to work on the jdbc level. 

SELECT 
>   CAST(? AS VARCHAR(30000)), 
>   CAST(? AS VARCHAR(30000)), 
>   CAST(? AS VARCHAR(30000)) 
> FROM 
>   RDB$DATABASE;
>
Ouch. You're completely correct: this query will not execute. 
Apparently there's a hard limit of 64KB per row, excluding BLOBs. 
The limit seems to also extends to SELECT resultset rows, which is kinda 
weird, but i suppose it is what it is. 
Is this a showstopper issue? 

Thanks,
ts.


 


 

Reply via email to