diff --git a/jOOQ-codegen-maven-example/.classpath b/jOOQ-codegen-maven-example/.classpath
index ccf13871f4..ba44341a97 100644
--- a/jOOQ-codegen-maven-example/.classpath
+++ b/jOOQ-codegen-maven-example/.classpath
@@ -12,6 +12,7 @@
+
diff --git a/jOOQ-codegen-maven-example/pom.xml b/jOOQ-codegen-maven-example/pom.xml
index d72e3321d4..80a092725b 100644
--- a/jOOQ-codegen-maven-example/pom.xml
+++ b/jOOQ-codegen-maven-example/pom.xml
@@ -48,6 +48,11 @@
h2
1.3.168
+
+ org.xerial
+ sqlite-jdbc
+ 3.7.15-M1
+
javax.persistence
persistence-api
@@ -156,39 +161,69 @@
sql-maven-plugin
1.5
+
+
+
+ ${maven.test.skip}
+ always
+
+
+
+
+ create-database-h2
+ generate-test-sources
+
+ execute
+
+
+ org.h2.Driver
+ jdbc:h2:~/maven-test
+ sa
+
+
+ true
+
+ src/test/resources/db-h2.sql
+
+
+
+
+
+
+
com.h2database
h2
1.3.168
+
+ org.xerial
+ sqlite-jdbc
+ 3.7.15-M1
+
-
-
-
- org.h2.Driver
- jdbc:h2:~/maven-test
- sa
-
-
- ${maven.test.skip}
-
-
-
-
- create-database
- generate-test-sources
-
- execute
-
-
- true
-
- src/test/resources/db.sql
-
-
-
-
@@ -196,9 +231,10 @@
org.jooq
jooq-codegen-maven
3.2.0-SNAPSHOT
+
- exec1
+ generate-h2
generate-test-sources
generate
@@ -231,6 +267,40 @@
+
+
+ generate-sqlite
+ generate-test-sources
+
+ generate
+
+
+
+ org.sqlite.JDBC
+ jdbc:sqlite:sqlite/2608.db
+ sa
+
+
+
+ org.jooq.util.DefaultGenerator
+
+ org.jooq.util.sqlite.SQLiteDatabase
+ .*
+
+ true
+
+
+ false
+ true
+ true
+
+
+ org.jooq.maven.example.sqlite
+ target/generated-test-sources/jooq-sqlite
+
+
+
+
@@ -238,6 +308,11 @@
h2
1.3.168
+
+ org.xerial
+ sqlite-jdbc
+ 3.7.15-M1
+
diff --git a/jOOQ-codegen-maven-example/sqlite/.gitignore b/jOOQ-codegen-maven-example/sqlite/.gitignore
new file mode 100644
index 0000000000..c10c22c310
--- /dev/null
+++ b/jOOQ-codegen-maven-example/sqlite/.gitignore
@@ -0,0 +1 @@
+/2608.db
diff --git a/jOOQ-codegen-maven-example/src/test/resources/db.sql b/jOOQ-codegen-maven-example/src/test/resources/db-h2.sql
similarity index 100%
rename from jOOQ-codegen-maven-example/src/test/resources/db.sql
rename to jOOQ-codegen-maven-example/src/test/resources/db-h2.sql
diff --git a/jOOQ-codegen-maven-example/src/test/resources/db-sqlite.sql b/jOOQ-codegen-maven-example/src/test/resources/db-sqlite.sql
new file mode 100644
index 0000000000..ded58a87bd
--- /dev/null
+++ b/jOOQ-codegen-maven-example/src/test/resources/db-sqlite.sql
@@ -0,0 +1,7 @@
+DROP TABLE IF EXISTS test;
+
+CREATE TABLE test (
+ x INT,
+
+ CONSTRAINT pk_test PRIMARY KEY (x)
+);
\ No newline at end of file
diff --git a/jOOQ-meta/src/main/java/org/jooq/util/sqlite/SQLiteTableDefinition.java b/jOOQ-meta/src/main/java/org/jooq/util/sqlite/SQLiteTableDefinition.java
index ad879f64e7..cbb5282eed 100644
--- a/jOOQ-meta/src/main/java/org/jooq/util/sqlite/SQLiteTableDefinition.java
+++ b/jOOQ-meta/src/main/java/org/jooq/util/sqlite/SQLiteTableDefinition.java
@@ -35,6 +35,8 @@
*/
package org.jooq.util.sqlite;
+import static org.jooq.util.sqlite.sqlite_master.SQLiteMaster.SQLITE_MASTER;
+
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@@ -45,6 +47,7 @@ import org.jooq.util.ColumnDefinition;
import org.jooq.util.DefaultColumnDefinition;
import org.jooq.util.DefaultDataTypeDefinition;
import org.jooq.util.SchemaDefinition;
+import org.jooq.util.sqlite.sqlite_master.SQLiteMaster;
/**
* SQLite table definition
@@ -53,6 +56,8 @@ import org.jooq.util.SchemaDefinition;
*/
public class SQLiteTableDefinition extends AbstractTableDefinition {
+ private static Boolean existsSqliteSequence;
+
public SQLiteTableDefinition(SchemaDefinition schema, String name, String comment) {
super(schema, name, comment);
}
@@ -74,7 +79,7 @@ public class SQLiteTableDefinition extends AbstractTableDefinition {
// SQLite identities are primary keys whose tables are mentioned in
// sqlite_sequence
boolean pk = record.getValue("pk", Boolean.class);
- boolean identity = pk && create()
+ boolean identity = pk && existsSqliteSequence() && create()
.fetchOne("select count(*) from sqlite_sequence where name = ?", getName())
.getValue(0, Boolean.class);
@@ -100,4 +105,16 @@ public class SQLiteTableDefinition extends AbstractTableDefinition {
return result;
}
+
+ private boolean existsSqliteSequence() {
+ if (existsSqliteSequence == null) {
+ existsSqliteSequence = create()
+ .selectCount()
+ .from(SQLITE_MASTER)
+ .where(SQLiteMaster.NAME.lower().eq("sqlite_sequence"))
+ .fetchOne(0, boolean.class);
+ }
+
+ return existsSqliteSequence;
+ }
}
diff --git a/jOOQ-test/launch/GenerationTool SQLite test (xerial).launch b/jOOQ-test/launch/GenerationTool SQLite test (xerial).launch
deleted file mode 100644
index 78f5c3dcb9..0000000000
--- a/jOOQ-test/launch/GenerationTool SQLite test (xerial).launch
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-