Greetings,
I have a database table that looks like:
CREATE TABLE worker
(
id TEXT NOT NULL PRIMARY KEY,
email TEXT NOT NULL
) WITHOUT ROWID;
I execute some insertion code using a new record like:
var record = context.newRecord(WorkerTable.WORKER, worker);
record.insert();
From the debug output the insertion seems to execute okay:
12:45:09.008 [Test worker] DEBUG org.jooq.tools.LoggerListener - Executing query : insert into worker (id, email) values (?, ?)
12:45:09.009 [Test worker] DEBUG org.jooq.tools.LoggerListener - -> with bind values : insert into worker (id, email) values ('blast', 'fo...@example.com') 12:45:09.021 [Test worker] DEBUG org.jooq.tools.LoggerListener - Affected row(s) : 1
However, after the insert, it attempts to fetch the last record by rowid, which I have disabled on the table:
12:45:09.162 [Test worker] DEBUG org.jooq.tools.LoggerListener - Executing query : select last_insert_rowid()
12:45:09.172 [Test worker] DEBUG org.jooq.tools.LoggerListener - Fetched result : +-------------------+
12:45:09.172 [Test worker] DEBUG org.jooq.tools.LoggerListener - : |last_insert_rowid()|
12:45:09.172 [Test worker] DEBUG org.jooq.tools.LoggerListener - : +-------------------+
12:45:09.172 [Test worker] DEBUG org.jooq.tools.LoggerListener - : | 0|
12:45:09.172 [Test worker] DEBUG org.jooq.tools.LoggerListener - : +-------------------+
12:45:09.172 [Test worker] DEBUG org.jooq.tools.LoggerListener - Fetched row(s) : 1
12:45:09.176 [Test worker] DEBUG org.jooq.tools.LoggerListener - Executing query : select worker.id from worker where _rowid_ = ? 12:45:09.176 [Test worker] DEBUG org.jooq.tools.LoggerListener - -> with bind values : select worker.id from worker where _rowid_ = 0 12:45:09.179 [Test worker] DEBUG org.jooq.tools.LoggerListener - Exception
org.jooq.exception.DataAccessException: SQL [select worker.id from worker where _rowid_ = ?]; [SQLITE_ERROR] SQL error or missing database (no such column: _rowid_) at org.jooq_3.12.3.SQLITE.debug(Unknown Source)
at org.jooq.impl.Tools.translate(Tools.java:2717)
at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:755)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:382)
at org.jooq.impl.AbstractResultQuery.fetch(AbstractResultQuery.java:353)
at org.jooq.impl.SelectImpl.fetch(SelectImpl.java:2693)
at org.jooq.impl.AbstractDMLQuery.execute(AbstractDMLQuery.java:899)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:368)
at org.jooq.impl.TableRecordImpl.storeInsert0(TableRecordImpl.java:206)
at org.jooq.impl.TableRecordImpl$1.operate(TableRecordImpl.java:177)
at org.jooq.impl.RecordDelegate.operate(RecordDelegate.java:130)
at org.jooq.impl.TableRecordImpl.storeInsert(TableRecordImpl.java:173)
at org.jooq.impl.TableRecordImpl.insert(TableRecordImpl.java:161)
at org.jooq.impl.TableRecordImpl.insert(TableRecordImpl.java:156)
(cropped)
My dependency versions are:
implementation group: 'org.jooq', name: 'jooq', version: '3.12.3'
implementation group: 'org.xerial', name: 'sqlite-jdbc', version: '3.28.0'
Is there anyway to disable this query by rowid? I haven't been able to find much discussion about the rowid concerning SQLite specifically.
Thank you in advance,
Dan