Hello,

> user lacks privilege or object not found: market

That is curious. jOOQ supports case-sensitivity of identifiers in SQL.

> Now, when I switch and extend my factory from SQLiteFactory everything
> works so far:

Yes, jOOQ doesn't apply quotes to SQL generated for SQLite, as there
are some open issues with that.

> Seems clear that the problem is with the double quotes, so my question
> is, can I turn those off?

By default, this is turned on, but you can turn it off using the
Factory's Settings' RenderNameStyle:
http://www.jooq.org/javadoc/latest/org/jooq/conf/Settings.html

What's curious is that you seem to have defined a case-insensitive
table name in lower case letters, which seems to be promoted by HSQLDB
dictionary views as being lower-case, when in fact it is
upper-case...? What does the following query return on your HSQLDB
database?

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE LOWER(TABLE_NAME) = 'market'

2012/5/7 Ubersoldat <[email protected]>:
> Hi guys,
>
> First time poster and recent user of JOOQ (loving it so far!)
>
> For testing purposes, I'm creating a database in HSQLDB 2.2.8 with,
> for example:
>
> CREATE TABLE market (
>    id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1
> INCREMENT BY 1) PRIMARY KEY,
>    version TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
>    name VARCHAR(2),
>    lang VARCHAR(10),
>    country VARCHAR(2)
> );
>
> INSERT INTO market (name, lang, country) VALUES ('es', 'es', 'ES');
>
> This works OK and with direct JDBC I have had no problems so far. But
> when my factory extends from a JOOQ HSQLDBFactory I get the following
> query in the debug messages:
>
> select "market"."id", "market"."version", "market"."name",
> "market"."lang", "market"."country" from "market" where "market"."id"
> = 1
>
> And this breaks the whole thing for HSQLDB:
>
> org.jooq.exception.DataAccessException: AbstractQuery.execute;
> SQL [select "market"."id", "market"."version", "market"."name",
> "market"."lang", "market"."country" from "market" where "market"."id"
> = cast(? as bigint)];
> user lacks privilege or object not found: market
>
> Now, when I switch and extend my factory from SQLiteFactory everything
> works so far:
>
> select market.id, market.version, market.name, market.lang,
> market.country from market where market.id = 1
>
> Seems clear that the problem is with the double quotes, so my question
> is, can I turn those off?
>
> BTW, I've tested this in  HSQLDB 2.2.4 & 2.2.8 with the same results.
>
> Thanks for the help, and thanks for JOOQ.

Reply via email to