Skip to content

Commit 3100b91

Browse files
committed
Enable more features for SQLite CLI
1 parent b234846 commit 3100b91

7 files changed

Lines changed: 193 additions & 135 deletions

File tree

.github/workflows/build.yml

Lines changed: 74 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -1,146 +1,89 @@
11
name: Build and publish
22

33
on:
4-
push:
5-
tags:
6-
- "*"
4+
push:
5+
tags:
6+
- "*"
77

88
env:
9-
SQLITE_RELEASE_YEAR: "2021"
10-
SQLITE_VERSION: "3360000"
9+
SQLITE_RELEASE_YEAR: "2021"
10+
SQLITE_VERSION: "3360000"
1111

1212
jobs:
13-
download-sources:
14-
name: Download and store sources
15-
runs-on: ubuntu-20.04
16-
steps:
17-
- name: Download sources
18-
run: |
19-
curl -L http://sqlite.org/$SQLITE_RELEASE_YEAR/sqlite-amalgamation-$SQLITE_VERSION.zip --output src.zip
20-
unzip src.zip
21-
mv sqlite-amalgamation-$SQLITE_VERSION src
13+
download-sources:
14+
name: Download and store sources
15+
runs-on: ubuntu-20.04
16+
steps:
17+
- name: Download sources
18+
run: |
19+
curl -L http://sqlite.org/$SQLITE_RELEASE_YEAR/sqlite-amalgamation-$SQLITE_VERSION.zip --output src.zip
20+
unzip src.zip
21+
mv sqlite-amalgamation-$SQLITE_VERSION src
2222
23-
- name: Store sources
24-
uses: actions/upload-artifact@v2
25-
with:
26-
name: sqlite-sources
27-
path: src
23+
- name: Store sources
24+
uses: actions/upload-artifact@v2
25+
with:
26+
name: sqlite-sources
27+
path: src
2828

29-
build-ubuntu:
30-
name: Build for Ubuntu
31-
runs-on: ubuntu-20.04
32-
needs: download-sources
33-
steps:
34-
- uses: actions/download-artifact@v2
35-
with:
36-
name: sqlite-sources
37-
path: src
29+
build-ubuntu:
30+
name: Build for Ubuntu
31+
runs-on: ubuntu-20.04
32+
needs: download-sources
33+
steps:
34+
- uses: actions/download-artifact@v2
35+
with:
36+
name: sqlite-sources
37+
path: src
3838

39-
- name: Compile sources
40-
run: |
41-
mkdir dist
42-
gcc \
43-
-DHAVE_READLINE \
44-
-DSQLITE_HAVE_ZLIB \
45-
-DSQLITE_THREADSAFE=0 \
46-
-DSQLITE_ENABLE_EXPLAIN_COMMENTS \
47-
-DSQLITE_INTROSPECTION_PRAGMAS \
48-
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION \
49-
-DSQLITE_ENABLE_STMTVTAB \
50-
-DSQLITE_ENABLE_DBPAGE_VTAB \
51-
-DSQLITE_ENABLE_DBSTAT_VTAB \
52-
-DSQLITE_ENABLE_OFFSET_SQL_FUNC \
53-
-DSQLITE_ENABLE_JSON1 \
54-
-DSQLITE_ENABLE_RTREE \
55-
-DSQLITE_ENABLE_FTS4 \
56-
-DSQLITE_ENABLE_FTS5 \
57-
-DSQLITE_ENABLE_MATH_FUNCTIONS \
58-
src/shell.c src/sqlite3.c -o dist/sqlite3-ubuntu \
59-
-ldl -lz -lm -lreadline -lncurses
60-
chmod +x dist/sqlite3-ubuntu
39+
- name: Compile sources
40+
run: compile-linux.sh
41+
- name: Upload binaries to release
42+
uses: svenstaro/upload-release-action@v2
43+
with:
44+
repo_token: ${{ secrets.GITHUB_TOKEN }}
45+
file: dist/sqlite3-ubuntu
46+
asset_name: sqlite3-ubuntu
47+
tag: ${{ github.ref }}
6148

62-
- name: Upload binaries to release
63-
uses: svenstaro/upload-release-action@v2
64-
with:
65-
repo_token: ${{ secrets.GITHUB_TOKEN }}
66-
file: dist/sqlite3-ubuntu
67-
asset_name: sqlite3-ubuntu
68-
tag: ${{ github.ref }}
49+
build-windows:
50+
name: Build for Windows
51+
runs-on: windows-2019
52+
needs: download-sources
53+
steps:
54+
- uses: actions/download-artifact@v2
55+
with:
56+
name: sqlite-sources
57+
path: src
6958

70-
build-windows:
71-
name: Build for Windows
72-
runs-on: windows-2019
73-
needs: download-sources
74-
steps:
75-
- uses: actions/download-artifact@v2
76-
with:
77-
name: sqlite-sources
78-
path: src
59+
- name: Compile sources
60+
shell: bash
61+
run: bin/compile-windows.sh
62+
- name: Upload binaries to release
63+
uses: svenstaro/upload-release-action@v2
64+
with:
65+
repo_token: ${{ secrets.GITHUB_TOKEN }}
66+
file: dist/sqlite3.exe
67+
asset_name: sqlite3.exe
68+
tag: ${{ github.ref }}
7969

80-
- name: Compile sources
81-
shell: bash
82-
run: |
83-
mkdir dist
84-
gcc -I. src/shell.c src/sqlite3.c -o dist/sqlite3.exe \
85-
-DSQLITE_THREADSAFE=0 \
86-
-DSQLITE_ENABLE_EXPLAIN_COMMENTS \
87-
-DSQLITE_INTROSPECTION_PRAGMAS \
88-
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION \
89-
-DSQLITE_ENABLE_STMTVTAB \
90-
-DSQLITE_ENABLE_DBPAGE_VTAB \
91-
-DSQLITE_ENABLE_DBSTAT_VTAB \
92-
-DSQLITE_ENABLE_OFFSET_SQL_FUNC \
93-
-DSQLITE_ENABLE_JSON1 \
94-
-DSQLITE_ENABLE_RTREE \
95-
-DSQLITE_ENABLE_FTS4 \
96-
-DSQLITE_ENABLE_FTS5 \
97-
-DSQLITE_ENABLE_MATH_FUNCTIONS
70+
build-macos:
71+
name: Build for macOS
72+
runs-on: macos-10.15
73+
needs: download-sources
74+
steps:
75+
- uses: actions/download-artifact@v2
76+
with:
77+
name: sqlite-sources
78+
path: src
9879

99-
- name: Upload binaries to release
100-
uses: svenstaro/upload-release-action@v2
101-
with:
102-
repo_token: ${{ secrets.GITHUB_TOKEN }}
103-
file: dist/sqlite3.exe
104-
asset_name: sqlite3.exe
105-
tag: ${{ github.ref }}
80+
- name: Compile sources
81+
run: bin/compile-mac.sh
10682

107-
build-macos:
108-
name: Build for macOS
109-
runs-on: macos-10.15
110-
needs: download-sources
111-
steps:
112-
- uses: actions/download-artifact@v2
113-
with:
114-
name: sqlite-sources
115-
path: src
116-
117-
- name: Compile sources
118-
run: |
119-
mkdir dist
120-
gcc \
121-
-DHAVE_READLINE \
122-
-DSQLITE_HAVE_ZLIB \
123-
-DSQLITE_THREADSAFE=0 \
124-
-DSQLITE_ENABLE_EXPLAIN_COMMENTS \
125-
-DSQLITE_INTROSPECTION_PRAGMAS \
126-
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION \
127-
-DSQLITE_ENABLE_STMTVTAB \
128-
-DSQLITE_ENABLE_DBPAGE_VTAB \
129-
-DSQLITE_ENABLE_DBSTAT_VTAB \
130-
-DSQLITE_ENABLE_OFFSET_SQL_FUNC \
131-
-DSQLITE_ENABLE_JSON1 \
132-
-DSQLITE_ENABLE_RTREE \
133-
-DSQLITE_ENABLE_FTS4 \
134-
-DSQLITE_ENABLE_FTS5 \
135-
-DSQLITE_ENABLE_MATH_FUNCTIONS \
136-
src/shell.c src/sqlite3.c -o dist/sqlite3-macos \
137-
-ldl -lz -lm -lreadline -lncurses
138-
chmod +x dist/sqlite3-macos
139-
140-
- name: Upload binaries to release
141-
uses: svenstaro/upload-release-action@v2
142-
with:
143-
repo_token: ${{ secrets.GITHUB_TOKEN }}
144-
file: dist/sqlite3-macos
145-
asset_name: sqlite3-macos
146-
tag: ${{ github.ref }}
83+
- name: Upload binaries to release
84+
uses: svenstaro/upload-release-action@v2
85+
with:
86+
repo_token: ${{ secrets.GITHUB_TOKEN }}
87+
file: dist/sqlite3-macos
88+
asset_name: sqlite3-macos
89+
tag: ${{ github.ref }}

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
dist
1+
dist
2+
src
3+
src.zip

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
Builds and publishes SQLite shell for different OS:
44

5-
- Ubuntu 20.04 shell. Because for some reason "Linux Shell" from SQLite website does not work on Ubuntu 🤷
6-
- Windows shell (64-bit). Because SQLite website only provides 32-bit shell 🤷
7-
- macOS shell. Just for convenience.
5+
- Ubuntu 20.04 shell. Because for some reason "Linux Shell" from SQLite website does not work on Ubuntu 🤷
6+
- Windows shell (64-bit). Because SQLite website only provides 32-bit shell 🤷
7+
- macOS shell. Just for convenience.
8+
9+
If you need SQLite for Mac M1 (ARM arch), you can easily do it with included bash script in the `bin/` folder!
810

911
Latest release: [3.36.0](https://github.com/nalgeon/sqlite/releases/latest)

bin/compile-linux.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/env bash
2+
mkdir dist
3+
gcc \
4+
-DALLOW_COVERING_INDEX_SCAN=1 \
5+
-DENABLE_FTS3_PARENTHESIS=1 \
6+
-DENABLE_LOAD_EXTENSION=1 \
7+
-DENABLE_SOUNDEX=1 \
8+
-DENABLE_STAT4=1 \
9+
-DENABLE_UPDATE_DELETE_LIMIT=1 \
10+
-DHAVE_READLINE=1 \
11+
-DSQLITE_DQS=0 \
12+
-DSQLITE_ENABLE_DBPAGE_VTAB=1 \
13+
-DSQLITE_ENABLE_DBSTAT_VTAB=1 \
14+
-DSQLITE_ENABLE_EXPLAIN_COMMENTS=1 \
15+
-DSQLITE_ENABLE_FTS3=1 \
16+
-DSQLITE_ENABLE_FTS4=1 \
17+
-DSQLITE_ENABLE_FTS5=1 \
18+
-DSQLITE_ENABLE_GEOPOLY=1 \
19+
-DSQLITE_ENABLE_JSON1=1 \
20+
-DSQLITE_ENABLE_MATH_FUNCTIONS=1 \
21+
-DSQLITE_ENABLE_OFFSET_SQL_FUNC=1 \
22+
-DSQLITE_ENABLE_RBU=1 \
23+
-DSQLITE_ENABLE_RTREE=1 \
24+
-DSQLITE_ENABLE_RTREE=1 \
25+
-DSQLITE_ENABLE_STMTVTAB=1 \
26+
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1 \
27+
-DSQLITE_HAVE_ZLIB=1 \
28+
-DSQLITE_INTROSPECTION_PRAGMAS=1 \
29+
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 \
30+
-DSQLITE_OMIT_DEPRECATED=1 \
31+
-DSQLITE_THREADSAFE=1 \
32+
-DSQLITE_USE_URI=1 \
33+
src/shell.c src/sqlite3.c -o dist/sqlite3-ubuntu \
34+
-ldl -lz -lm -lreadline -lncurses
35+
chmod +x dist/sqlite3-ubuntu

bin/compile-mac.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/env bash
2+
mkdir dist
3+
gcc \
4+
-DALLOW_COVERING_INDEX_SCAN=1 \
5+
-DENABLE_FTS3_PARENTHESIS=1 \
6+
-DENABLE_LOAD_EXTENSION=1 \
7+
-DENABLE_SOUNDEX=1 \
8+
-DENABLE_STAT4=1 \
9+
-DENABLE_UPDATE_DELETE_LIMIT=1 \
10+
-DHAVE_READLINE=1 \
11+
-DSQLITE_DQS=0 \
12+
-DSQLITE_ENABLE_DBPAGE_VTAB=1 \
13+
-DSQLITE_ENABLE_DBSTAT_VTAB=1 \
14+
-DSQLITE_ENABLE_EXPLAIN_COMMENTS=1 \
15+
-DSQLITE_ENABLE_FTS3=1 \
16+
-DSQLITE_ENABLE_FTS4=1 \
17+
-DSQLITE_ENABLE_FTS5=1 \
18+
-DSQLITE_ENABLE_GEOPOLY=1 \
19+
-DSQLITE_ENABLE_JSON1=1 \
20+
-DSQLITE_ENABLE_MATH_FUNCTIONS=1 \
21+
-DSQLITE_ENABLE_OFFSET_SQL_FUNC=1 \
22+
-DSQLITE_ENABLE_RBU=1 \
23+
-DSQLITE_ENABLE_RTREE=1 \
24+
-DSQLITE_ENABLE_RTREE=1 \
25+
-DSQLITE_ENABLE_STMTVTAB=1 \
26+
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1 \
27+
-DSQLITE_HAVE_ZLIB=1 \
28+
-DSQLITE_INTROSPECTION_PRAGMAS=1 \
29+
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 \
30+
-DSQLITE_OMIT_DEPRECATED=1 \
31+
-DSQLITE_THREADSAFE=1 \
32+
-DSQLITE_USE_URI=1 \
33+
src/shell.c src/sqlite3.c -o dist/sqlite3-ubuntu \
34+
-ldl -lz -lm -lreadline -lncurses
35+
chmod +x dist/sqlite3-ubuntu

bin/compile-windows.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env bash
2+
mkdir dist
3+
gcc \
4+
-DALLOW_COVERING_INDEX_SCAN=1 \
5+
-DENABLE_FTS3_PARENTHESIS=1 \
6+
-DENABLE_LOAD_EXTENSION=1 \
7+
-DENABLE_SOUNDEX=1 \
8+
-DENABLE_STAT4=1 \
9+
-DENABLE_UPDATE_DELETE_LIMIT=1 \
10+
-DHAVE_READLINE=1 \
11+
-DSQLITE_DQS=0 \
12+
-DSQLITE_ENABLE_DBPAGE_VTAB=1 \
13+
-DSQLITE_ENABLE_DBSTAT_VTAB=1 \
14+
-DSQLITE_ENABLE_EXPLAIN_COMMENTS=1 \
15+
-DSQLITE_ENABLE_FTS3=1 \
16+
-DSQLITE_ENABLE_FTS4=1 \
17+
-DSQLITE_ENABLE_FTS5=1 \
18+
-DSQLITE_ENABLE_GEOPOLY=1 \
19+
-DSQLITE_ENABLE_JSON1=1 \
20+
-DSQLITE_ENABLE_MATH_FUNCTIONS=1 \
21+
-DSQLITE_ENABLE_OFFSET_SQL_FUNC=1 \
22+
-DSQLITE_ENABLE_RBU=1 \
23+
-DSQLITE_ENABLE_RTREE=1 \
24+
-DSQLITE_ENABLE_RTREE=1 \
25+
-DSQLITE_ENABLE_STMTVTAB=1 \
26+
-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1 \
27+
-DSQLITE_HAVE_ZLIB=1 \
28+
-DSQLITE_INTROSPECTION_PRAGMAS=1 \
29+
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 \
30+
-DSQLITE_OMIT_DEPRECATED=1 \
31+
-DSQLITE_THREADSAFE=1 \
32+
-DSQLITE_USE_URI=1 \
33+
-I. src/shell.c src/sqlite3.c -o dist/sqlite3.exe

bin/download.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/usr/bin/env bash
2+
3+
export SQLITE_RELEASE_YEAR="2021"
4+
export SQLITE_VERSION="3360000"
5+
6+
curl -L http://sqlite.org/$SQLITE_RELEASE_YEAR/sqlite-amalgamation-$SQLITE_VERSION.zip --output src.zip
7+
unzip src.zip
8+
mv sqlite-amalgamation-$SQLITE_VERSION src

0 commit comments

Comments
 (0)