[Git][java-team/xerial-sqlite-jdbc][upstream] New upstream version 3.51.3.0+dfsg

Ying-Chun Liu (@paulliu) gitlab at salsa.debian.org
Sat Apr 4 18:39:08 BST 2026



Ying-Chun Liu pushed to branch upstream at Debian Java Maintainers / xerial-sqlite-jdbc


Commits:
d9b02153 by Ying-Chun Liu (PaulLiu) at 2026-04-04T18:21:38+01:00
New upstream version 3.51.3.0+dfsg
- - - - -


8 changed files:

- Makefile
- Makefile.common
- README.adoc
- USAGE.md
- VERSION
- pom.xml
- src/main/ext/extension-functions.c
- src/test/java/org/sqlite/ExtensionTest.java


Changes:

=====================================
Makefile
=====================================
@@ -17,6 +17,11 @@ SRC:=src/main/java
 JAVA_CLASSPATH:=$(TARGET)/classpath/slf4j-api.jar
 SQLITE_OUT:=$(TARGET)/$(sqlite)-$(OS_NAME)-$(OS_ARCH)
 SQLITE_OBJ?=$(SQLITE_OUT)/sqlite3.o
+SQLITE_SRC_ARCHIVE:=$(TARGET)/$(sqlite)-src.zip
+SQLITE_SRC:=$(TARGET)/sqlite-src.log
+SQLITE_SRC_TMP:=$(TARGET)/tmp-src.$(version)/$(SQLITE_SRC_PREFIX)
+SQLITE_AMALGAMATION_FROM_SRC:=$(TARGET)/tmp-src.$(version)/$(SQLITE_AMAL_PREFIX)
+SQLITE_AMALGAMATION_ZIP_FROM_SRC:=$(SQLITE_AMALGAMATION_FROM_SRC).zip
 SQLITE_ARCHIVE:=$(TARGET)/$(sqlite)-amal.zip
 SQLITE_UNPACKED:=$(TARGET)/sqlite-unpack.log
 SQLITE_SOURCE?=$(TARGET)/$(SQLITE_AMAL_PREFIX)
@@ -24,13 +29,35 @@ SQLITE_HEADER?=$(SQLITE_SOURCE)/sqlite3.h
 ifneq ($(SQLITE_SOURCE),$(TARGET)/$(SQLITE_AMAL_PREFIX))
 	created := $(shell touch $(SQLITE_UNPACKED))
 endif
+ENABLE_UPDATE_DELETE_LIMIT?=1
 
 SQLITE_INCLUDE := $(shell dirname "$(SQLITE_HEADER)")
 
 CCFLAGS:= -I$(SQLITE_OUT) -I$(SQLITE_INCLUDE) $(CCFLAGS)
 
+$(SQLITE_SRC_ARCHIVE):
+	mkdir -p $(@D)
+	curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2026/$(SQLITE_SRC_PREFIX).zip
+
+$(SQLITE_SRC): $(SQLITE_SRC_ARCHIVE)
+	unzip -qo $< -d $(TARGET)/tmp-src.$(version)
+	((cd $(SQLITE_SRC_TMP) && ./configure --update-limit && make sqlite3.c) | tee $@)
+
+$(SQLITE_AMALGAMATION_ZIP_FROM_SRC): $(SQLITE_SRC)
+	mkdir -p $(SQLITE_AMALGAMATION_FROM_SRC)
+	cp $(SQLITE_SRC_TMP)/sqlite3.c $(SQLITE_SRC_TMP)/sqlite3.h $(SQLITE_SRC_TMP)/sqlite3ext.h $(SQLITE_AMALGAMATION_FROM_SRC)/
+	(cd $(SQLITE_AMALGAMATION_FROM_SRC)/.. && zip -r $(SQLITE_AMAL_PREFIX).zip $(SQLITE_AMAL_PREFIX))
+
+ifneq ($(ENABLE_UPDATE_DELETE_LIMIT),1)
+ENABLE_UPDATE_DELETE_LIMIT_FLAG :=
 $(SQLITE_ARCHIVE):
+else
+ENABLE_UPDATE_DELETE_LIMIT_FLAG := -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
+$(SQLITE_ARCHIVE): $(SQLITE_AMALGAMATION_ZIP_FROM_SRC)
+endif
 	@mkdir -p $(@D)
+	cp -v $(SQLITE_AMALGAMATION_ZIP_FROM_SRC) $@ || \
+	curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2026/$(SQLITE_AMAL_PREFIX).zip || \
 	curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2025/$(SQLITE_AMAL_PREFIX).zip || \
 	curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2024/$(SQLITE_AMAL_PREFIX).zip || \
 	curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2023/$(SQLITE_AMAL_PREFIX).zip || \
@@ -88,6 +115,7 @@ $(SQLITE_OUT)/sqlite3.o : $(SQLITE_UNPACKED)
 	    -DSQLITE_ENABLE_FTS3_PARENTHESIS \
 	    -DSQLITE_ENABLE_FTS5 \
 	    -DSQLITE_ENABLE_RTREE \
+	    -DSQLITE_ENABLE_PERCENTILE \
 	    -DSQLITE_ENABLE_STAT4 \
 	    -DSQLITE_ENABLE_DBSTAT_VTAB \
 	    -DSQLITE_ENABLE_MATH_FUNCTIONS \
@@ -103,6 +131,7 @@ $(SQLITE_OUT)/sqlite3.o : $(SQLITE_UNPACKED)
 	    -DSQLITE_MAX_ATTACHED=125 \
 	    -DSQLITE_MAX_PAGE_COUNT=4294967294 \
 	    -DSQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS \
+	    $(ENABLE_UPDATE_DELETE_LIMIT_FLAG) \
 	    $(SQLITE_FLAGS) \
 	    $(SQLITE_OUT)/sqlite3.c
 


=====================================
Makefile.common
=====================================
@@ -108,28 +108,28 @@ Linux-armv7_SQLITE_FLAGS  :=
 
 Linux-Android-arm_CC        := $(CROSS_PREFIX)clang
 Linux-Android-arm_STRIP     := $(CROSS_ROOT)/bin/llvm-strip
-Linux-Android-arm_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
+Linux-Android-arm_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog -Wno-implicit-function-declaration
 Linux-Android-arm_LINKFLAGS := $(Default_LINKFLAGS) -Wl,-z,max-page-size=16384,-soname,libsqlitejdbc.so
 Linux-Android-arm_LIBNAME   := libsqlitejdbc.so
 Linux-Android-arm_SQLITE_FLAGS  :=
 
 Linux-Android-aarch64_CC        := $(CROSS_PREFIX)clang
 Linux-Android-aarch64_STRIP     := $(CROSS_ROOT)/bin/llvm-strip
-Linux-Android-aarch64_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
+Linux-Android-aarch64_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog -Wno-implicit-function-declaration
 Linux-Android-aarch64_LINKFLAGS := $(Default_LINKFLAGS) -Wl,-z,max-page-size=16384,-soname,libsqlitejdbc.so
 Linux-Android-aarch64_LIBNAME   := libsqlitejdbc.so
 Linux-Android-aarch64_SQLITE_FLAGS  :=
 
 Linux-Android-x86_CC        := $(CROSS_PREFIX)clang
 Linux-Android-x86_STRIP     := $(CROSS_ROOT)/bin/llvm-strip
-Linux-Android-x86_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
+Linux-Android-x86_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog -Wno-implicit-function-declaration
 Linux-Android-x86_LINKFLAGS := $(Default_LINKFLAGS) -Wl,-z,max-page-size=16384,-soname,libsqlitejdbc.so
 Linux-Android-x86_LIBNAME   := libsqlitejdbc.so
 Linux-Android-x86_SQLITE_FLAGS  :=
 
 Linux-Android-x86_64_CC        := $(CROSS_PREFIX)clang
 Linux-Android-x86_64_STRIP     := $(CROSS_ROOT)/bin/llvm-strip
-Linux-Android-x86_64_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog
+Linux-Android-x86_64_CCFLAGS   := -I$(JAVA_HOME)/include -Ilib/inc_linux -I$(CROSS_ROOT)/sysroot/usr/include -Os -fPIC -fvisibility=hidden -fPIE -pie -lm -lc -landroid -ldl -llog -Wno-implicit-function-declaration
 Linux-Android-x86_64_LINKFLAGS := $(Default_LINKFLAGS) -Wl,-z,max-page-size=16384,-soname,libsqlitejdbc.so
 Linux-Android-x86_64_LIBNAME   := libsqlitejdbc.so
 Linux-Android-x86_64_SQLITE_FLAGS  :=
@@ -260,6 +260,7 @@ CCFLAGS   := $($(target)_CCFLAGS)
 LINKFLAGS := $($(target)_LINKFLAGS) 
 LIBNAME   := $($(target)_LIBNAME)
 SQLITE_FLAGS := $($(target)_SQLITE_FLAGS)
+SQLITE_SRC_PREFIX = sqlite-src-$(shell ./amalgamation_version.sh $(version))
 SQLITE_AMAL_PREFIX = sqlite-amalgamation-$(shell ./amalgamation_version.sh $(version))
 SQLITE_OLD_AMAL_PREFIX = sqlite-amalgamation-$(subst .,_,$(version))
 CCFLAGS := $(CCFLAGS) 


=====================================
README.adoc
=====================================
@@ -1,5 +1,5 @@
 = SQLite JDBC Driver
-:project-version: 3.50.3.0
+:project-version: 3.51.3.0
 
 image:https://img.shields.io/github/actions/workflow/status/xerial/sqlite-jdbc/ci.yml?branch=master[GitHub Workflow Status (branch),link=https://github.com/xerial/sqlite-jdbc/actions/workflows/ci.yml?query=branch%3Amaster]
 image:https://badges.gitter.im/xerial/sqlite-jdbc.svg[Join the chat,link=https://gitter.im/xerial/sqlite-jdbc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge]


=====================================
USAGE.md
=====================================
@@ -201,3 +201,26 @@ The name of directories in our jar and in Android Studio differ, here is a mappi
 | arm           | armeabi                  |
 | x86           | x86                      |
 | x86_64        | x86_64                   |
+
+## How to load Run-Time Loadable Extensions
+
+### Enable loadable extensions
+
+- If you use `DriverManager`, configure the `Properties`:
+
+```java
+prop.setProperty("enable_load_extension", "true");
+```
+
+- If you use `SQLiteConfig`:
+
+```java
+SQLiteConfig config = new SQLiteConfig();
+config.enableLoadExtension(true);
+```
+
+- You can also specify the pragma in the connection string: `"jdbc:sqlite::memory:?enable_load_extension=true"`
+
+### Load an extension
+
+Use the `load_extension` [SQL function](https://sqlite.org/lang_corefunc.html#load_extension).
\ No newline at end of file


=====================================
VERSION
=====================================
@@ -1 +1 @@
-version=3.50.3
+version=3.51.3


=====================================
pom.xml
=====================================
@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.xerial</groupId>
     <artifactId>sqlite-jdbc</artifactId>
-    <version>3.50.3.0</version>
+    <version>3.51.3.0</version>
     <name>SQLite JDBC</name>
     <description>SQLite JDBC library</description>
     <url>https://github.com/xerial/sqlite-jdbc</url>
@@ -12,9 +12,9 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <junit.version>5.12.2</junit.version>
-        <surefire.version>3.5.3</surefire.version>
+        <surefire.version>3.5.4</surefire.version>
         <archunit.version>1.4.1</archunit.version>
-        <graalvm.version>24.1.2</graalvm.version>
+        <graalvm.version>25.0.2</graalvm.version>
         <java9.sourceDirectory>${project.basedir}/src/main/java9</java9.sourceDirectory>
     </properties>
 
@@ -101,7 +101,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.14.0</version>
+                <version>3.15.0</version>
                 <configuration>
                     <release>8</release>
                 </configuration>
@@ -137,7 +137,7 @@
 
             <plugin>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>3.4.2</version>
+                <version>3.5.0</version>
                 <configuration>
                     <!-- Pick the MANIFEST generated by the bundle plugin -->
                     <archive>
@@ -187,7 +187,7 @@
             <plugin>
                 <groupId>org.sonatype.central</groupId>
                 <artifactId>central-publishing-maven-plugin</artifactId>
-                <version>0.8.0</version>
+                <version>0.9.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <publishingServerId>central</publishingServerId>
@@ -199,7 +199,7 @@
             <plugin>
                 <groupId>org.jreleaser</groupId>
                 <artifactId>jreleaser-maven-plugin</artifactId>
-                <version>1.19.0</version>
+                <version>1.23.0</version>
                 <configuration>
                     <configFile>jreleaser.yml</configFile>
                 </configuration>
@@ -208,13 +208,13 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>versions-maven-plugin</artifactId>
-                <version>2.18.0</version>
+                <version>2.21.0</version>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <version>3.6.0</version>
+                <version>3.6.2</version>
                 <executions>
                     <execution>
                         <id>enforce-maven</id>
@@ -292,7 +292,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-javadoc-plugin</artifactId>
-                        <version>3.11.2</version>
+                        <version>3.12.0</version>
                         <configuration>
                             <sourcepath>src/main/java</sourcepath>
                             <additionalOptions>-Xdoclint:none</additionalOptions>
@@ -310,7 +310,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-source-plugin</artifactId>
-                        <version>3.3.1</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>attach-sources</id>
@@ -331,7 +331,7 @@
                     <plugin>
                         <groupId>org.graalvm.buildtools</groupId>
                         <artifactId>native-maven-plugin</artifactId>
-                        <version>0.10.6</version>
+                        <version>0.11.5</version>
                         <extensions>true</extensions>
                         <executions>
                             <execution>
@@ -346,6 +346,16 @@
                             <fallback>false</fallback>
                             <verbose>true</verbose>
                             <buildArgs>
+                                <!--
+                                Only required for GraalVM for JDK 17.
+                                The option is deprecated in later versions and could cause failures on later GraalVM versions.
+                                -->
+                                <arg>-H:+AllowDeprecatedBuilderClassesOnImageClasspath</arg>
+
+                                <!--
+                                The initialization flags below seem only necessary for GraalVM for JDK 17 and 21.
+                                If CI checks for either of these GraalVM versions are dropped, this should be cleaned up.
+                                -->
                                 <!-- required to allow junit-pioneer to compile with strict image heap enabled -->
                                 <arg>--initialize-at-build-time=org.junitpioneer.jupiter.issue.IssueExtensionExecutionListener</arg>
                                 <!--
@@ -357,6 +367,8 @@
                                 <arg>--initialize-at-build-time=org.junit.jupiter.api.parallel.ResourceLock</arg>
                                 <arg>--initialize-at-build-time=org.junit.jupiter.api.parallel.ResourceLockTarget</arg>
                                 <arg>--initialize-at-build-time=org.junit.jupiter.api.parallel.ResourceAccessMode</arg>
+                                <arg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1</arg>
+                                <arg>--initialize-at-build-time=org.junit.platform.commons.support.scanning.DefaultClasspathScanner</arg>
                             </buildArgs>
                         </configuration>
                     </plugin>
@@ -438,7 +450,7 @@
         <dependency>
             <groupId>org.assertj</groupId>
             <artifactId>assertj-core</artifactId>
-            <version>3.27.3</version>
+            <version>3.27.6</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
@@ -460,7 +472,7 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>5.18.0</version>
+            <version>5.21.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>


=====================================
src/main/ext/extension-functions.c
=====================================
@@ -1806,7 +1806,7 @@ int RegisterExtensionFunctions(sqlite3 *db){
     { "stdev",            1, 0, 0, varianceStep, stdevFinalize  },
     { "variance",         1, 0, 0, varianceStep, varianceFinalize  },
     { "mode",             1, 0, 0, modeStep,     modeFinalize  },
-    { "median",           1, 0, 0, modeStep,     medianFinalize  },
+//    { "median",           1, 0, 0, modeStep,     medianFinalize  },
     { "lower_quartile",   1, 0, 0, modeStep,     lower_quartileFinalize  },
     { "upper_quartile",   1, 0, 0, modeStep,     upper_quartileFinalize  },
   };


=====================================
src/test/java/org/sqlite/ExtensionTest.java
=====================================
@@ -32,6 +32,15 @@ public class ExtensionTest {
         }
     }
 
+    @Test
+    public void loadExtensionEnabled() throws Exception {
+        SQLiteConnection connection =
+                (SQLiteConnection)
+                        DriverManager.getConnection(
+                                "jdbc:sqlite::memory:?enable_load_extension=true");
+        assertThat(connection.getDatabase().getConfig().isEnabledLoadExtension()).isTrue();
+    }
+
     @Test
     public void extFTS3() throws Exception {
         stat.execute("create virtual table recipe using fts3(name, ingredients)");



View it on GitLab: https://salsa.debian.org/java-team/xerial-sqlite-jdbc/-/commit/d9b02153bb4659f24340522f6a0061ae96519bb6

-- 
View it on GitLab: https://salsa.debian.org/java-team/xerial-sqlite-jdbc/-/commit/d9b02153bb4659f24340522f6a0061ae96519bb6
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20260404/25b5638b/attachment.htm>


More information about the pkg-java-commits mailing list