Skip to content

Commit acf84ae

Browse files
feat(sqlite): enable LIMIT support for UPDATE and DELETE
Compiles the native libraries with LIMIT support for UPDATE and DELETE Closes: #1318
1 parent ce63cd4 commit acf84ae

26 files changed

Lines changed: 28 additions & 0 deletions

File tree

Makefile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,46 @@ SRC:=src/main/java
1717
JAVA_CLASSPATH:=$(TARGET)/classpath/slf4j-api.jar
1818
SQLITE_OUT:=$(TARGET)/$(sqlite)-$(OS_NAME)-$(OS_ARCH)
1919
SQLITE_OBJ?=$(SQLITE_OUT)/sqlite3.o
20+
SQLITE_SRC_ARCHIVE:=$(TARGET)/$(sqlite)-src.zip
21+
SQLITE_SRC:=$(TARGET)/sqlite-src.log
22+
SQLITE_SRC_TMP:=$(TARGET)/tmp-src.$(version)/$(SQLITE_SRC_PREFIX)
23+
SQLITE_AMALGAMATION_FROM_SRC:=$(TARGET)/tmp-src.$(version)/$(SQLITE_AMAL_PREFIX)
24+
SQLITE_AMALGAMATION_ZIP_FROM_SRC:=$(SQLITE_AMALGAMATION_FROM_SRC).zip
2025
SQLITE_ARCHIVE:=$(TARGET)/$(sqlite)-amal.zip
2126
SQLITE_UNPACKED:=$(TARGET)/sqlite-unpack.log
2227
SQLITE_SOURCE?=$(TARGET)/$(SQLITE_AMAL_PREFIX)
2328
SQLITE_HEADER?=$(SQLITE_SOURCE)/sqlite3.h
2429
ifneq ($(SQLITE_SOURCE),$(TARGET)/$(SQLITE_AMAL_PREFIX))
2530
created := $(shell touch $(SQLITE_UNPACKED))
2631
endif
32+
ENABLE_UPDATE_DELETE_LIMIT?=1
2733

2834
SQLITE_INCLUDE := $(shell dirname "$(SQLITE_HEADER)")
2935

3036
CCFLAGS:= -I$(SQLITE_OUT) -I$(SQLITE_INCLUDE) $(CCFLAGS)
3137

38+
$(SQLITE_SRC_ARCHIVE):
39+
mkdir -p $(@D)
40+
curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2025/$(SQLITE_SRC_PREFIX).zip
41+
42+
$(SQLITE_SRC): $(SQLITE_SRC_ARCHIVE)
43+
unzip -qo $< -d $(TARGET)/tmp-src.$(version)
44+
((cd $(SQLITE_SRC_TMP) && ./configure --update-limit && make sqlite3.c) | tee $@)
45+
46+
$(SQLITE_AMALGAMATION_ZIP_FROM_SRC): $(SQLITE_SRC)
47+
mkdir -p $(SQLITE_AMALGAMATION_FROM_SRC)
48+
cp $(SQLITE_SRC_TMP)/sqlite3.c $(SQLITE_SRC_TMP)/sqlite3.h $(SQLITE_SRC_TMP)/sqlite3ext.h $(SQLITE_AMALGAMATION_FROM_SRC)/
49+
(cd $(SQLITE_AMALGAMATION_FROM_SRC)/.. && zip -r $(SQLITE_AMAL_PREFIX).zip $(SQLITE_AMAL_PREFIX))
50+
51+
ifneq ($(ENABLE_UPDATE_DELETE_LIMIT),1)
52+
ENABLE_UPDATE_DELETE_LIMIT_FLAG :=
3253
$(SQLITE_ARCHIVE):
54+
else
55+
ENABLE_UPDATE_DELETE_LIMIT_FLAG := -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
56+
$(SQLITE_ARCHIVE): $(SQLITE_AMALGAMATION_ZIP_FROM_SRC)
57+
endif
3358
@mkdir -p $(@D)
59+
cp -v $(SQLITE_AMALGAMATION_ZIP_FROM_SRC) $@ || \
3460
curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2025/$(SQLITE_AMAL_PREFIX).zip || \
3561
curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2024/$(SQLITE_AMAL_PREFIX).zip || \
3662
curl -L --max-redirs 0 -f -o$@ https://www.sqlite.org/2023/$(SQLITE_AMAL_PREFIX).zip || \
@@ -103,6 +129,7 @@ $(SQLITE_OUT)/sqlite3.o : $(SQLITE_UNPACKED)
103129
-DSQLITE_MAX_ATTACHED=125 \
104130
-DSQLITE_MAX_PAGE_COUNT=4294967294 \
105131
-DSQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS \
132+
$(ENABLE_UPDATE_DELETE_LIMIT_FLAG) \
106133
$(SQLITE_FLAGS) \
107134
$(SQLITE_OUT)/sqlite3.c
108135

Makefile.common

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ CCFLAGS := $($(target)_CCFLAGS)
260260
LINKFLAGS := $($(target)_LINKFLAGS)
261261
LIBNAME := $($(target)_LIBNAME)
262262
SQLITE_FLAGS := $($(target)_SQLITE_FLAGS)
263+
SQLITE_SRC_PREFIX = sqlite-src-$(shell ./amalgamation_version.sh $(version))
263264
SQLITE_AMAL_PREFIX = sqlite-amalgamation-$(shell ./amalgamation_version.sh $(version))
264265
SQLITE_OLD_AMAL_PREFIX = sqlite-amalgamation-$(subst .,_,$(version))
265266
CCFLAGS := $(CCFLAGS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)