Commit Graph

1031 Commits

Author SHA1 Message Date
justinsb
9794660801 docs: clarify GCP section
GCP (at least Google Compute Engine) is a VM, and does not have restrictions relating to gcc.

Also it appears that this whole section refers to general compiling, rather than compiling on GCP.
2025-04-01 22:39:11 +09:00
Halil ibrahim Onay
b9f4d8c067 chore: Fix memory leak in callbackRetText function 2025-04-01 22:33:32 +09:00
Tim Van Baak
cff37b40bd Fix json example
Because of sqlite's flexible typing, even though the column was declared as jsonb, the values are stored as the TEXT-typed json because they're converted to strings by Value/Scan. If the table is strict with a BLOB column, the example fails because of the type mismatch. This can be fixed by using the `jsonb()` function to convert incoming string-typed json and the `json()` function to convert outgoing binary-typed jsonb. The example is expanded to show both of these approaches.

Note that both approaches use the same string-typed marshalling functions because the conversion to jsonb occurs within sqlite3, not within the Go code. SQLite docs state that the binary format is internal and applications shouldn't try to generate it: https://sqlite.org/json1.html#jsonb
2025-01-21 06:42:16 -08:00
nina
7658c06970 Fix sqlite3_opt_unlock_notify with USE_LIBSQLITE3 (#1262)
A valid sqlite header must always be included (like in the other
files) but sqlite3-binding.h explicitly guards against the system
library case.
2024-12-08 23:36:34 -05:00
Charlie Vieth
c61eeb5d1d remove superfluous use of runtime.SetFinalizer on SQLiteRows
The commit removes the use of runtime.SetFinalizer to finalize
SQLiteRows since only serves to close the associated SQLiteStmt which
already has a registered finalizer.

It also fixes a race and potential panic in SQLiteRows.Close around the
SQLiteRows.s field (*SQLiteStmt) which is accessed without a mutex being
held, but modified with it held (null'd out). Further the mutex we are
holding is that of the SQLiteStmt so a subsequent call to Close will
cause a panic sine it'll attempt to dereference a nil field. The fix
here is to add a mutex for closing to SQLiteRows.

Since we now also set the s field to nil when closing this commit
removes the "closed" field (since checking if s is nil is the same) and
also changes the type of "nc" (number of columns) to an int32 so that we
can pack the nc and cls fields, and add the close mutex without making
the struct any bigger.

```
goos: darwin
goarch: arm64
pkg: github.com/charlievieth/go-sqlite3
cpu: Apple M4 Pro
                                          │   x1.txt    │               x4.txt                │
                                          │   sec/op    │   sec/op     vs base                │
Suite/BenchmarkExec/Params-14               719.2n ± 2%   716.9n ± 1%        ~ (p=0.897 n=10)
Suite/BenchmarkExec/NoParams-14             506.5n ± 3%   500.1n ± 0%   -1.25% (p=0.002 n=10)
Suite/BenchmarkExecContext/Params-14        1.584µ ± 0%   1.567µ ± 1%   -1.07% (p=0.007 n=10)
Suite/BenchmarkExecContext/NoParams-14      1.524µ ± 1%   1.524µ ± 1%        ~ (p=0.539 n=10)
Suite/BenchmarkExecStep-14                  443.9µ ± 3%   441.4µ ± 0%   -0.55% (p=0.011 n=10)
Suite/BenchmarkExecContextStep-14           447.8µ ± 1%   442.9µ ± 0%   -1.10% (p=0.000 n=10)
Suite/BenchmarkExecTx-14                    1.643µ ± 1%   1.640µ ± 0%        ~ (p=0.642 n=10)
Suite/BenchmarkQuery-14                     1.968µ ± 3%   1.821µ ± 1%   -7.52% (p=0.000 n=10)
Suite/BenchmarkQuerySimple-14               1.207µ ± 2%   1.040µ ± 1%  -13.84% (p=0.000 n=10)
Suite/BenchmarkQueryContext/Background-14   2.400µ ± 1%   2.320µ ± 0%   -3.31% (p=0.000 n=10)
Suite/BenchmarkQueryContext/WithCancel-14   8.847µ ± 5%   8.512µ ± 4%   -3.79% (p=0.007 n=10)
Suite/BenchmarkParams-14                    2.131µ ± 2%   1.967µ ± 1%   -7.70% (p=0.000 n=10)
Suite/BenchmarkStmt-14                      1.444µ ± 1%   1.359µ ± 1%   -5.89% (p=0.000 n=10)
Suite/BenchmarkRows-14                      61.57µ ± 1%   60.24µ ± 1%   -2.16% (p=0.000 n=10)
Suite/BenchmarkStmtRows-14                  60.15µ ± 1%   59.08µ ± 1%   -1.78% (p=0.000 n=10)
Suite/BenchmarkQueryParallel-14             960.9n ± 1%   420.8n ± 2%  -56.21% (p=0.000 n=10)
geomean                                     4.795µ        4.430µ        -7.62%
```
2024-12-09 13:00:34 +09:00
Sam Jewell
ab13d63ae7 Remove suggestion that CGO isn't always needed (#1290)
Fixes #855
2024-12-04 20:38:50 -05:00
Jonathan Stacks
348128fdcf Upgrade upload-artifact action
action/upload-artifact@v1 has been deprecated for a while. It seems like GitHub Actions
will now cancel workflows if it is still using v1 of the action. This
upgrades to the latest v4 of the action.

See https://github.blog/news-insights/product-news/get-started-with-v4-of-github-actions-artifacts/
for details.
2024-11-27 07:51:01 +09:00
Yasuhiro Matsumoto
82bc911e85 close statement when missing query arguments
fixes #1280
2024-10-04 23:58:44 +09:00
Yasuhiro Matsumoto
846fea6c14 Update amalgamation code to 3.46.1 2024-09-04 22:29:32 +09:00
Dustin Ward
3c0390b77c add support for libsqlite3 on z/OS 2024-05-01 22:59:32 +09:00
pomadev
18cdded900 fix: some typos 2024-02-22 14:15:27 +09:00
Yasuhiro Matsumoto
6ee3e6746e close channel 2024-02-03 02:00:28 +09:00
Yasuhiro Matsumoto
4702d9b5d6 Update amalgamation code to 3.45.1 2024-01-31 22:13:41 +09:00
Yasuhiro Matsumoto
64bbe6202c add example 2024-01-25 23:34:36 +09:00
Yasuhiro Matsumoto
cdc8095814 Update amalgamation code to 3.45.0 2024-01-25 23:34:36 +09:00
Yasuhiro Matsumoto
d3c33332c3 update go version 2024-01-25 22:55:22 +09:00
Yasuhiro Matsumoto
1f0dc0a0ef go fmt ./... 2024-01-25 22:55:22 +09:00
Yasuhiro Matsumoto
c91bca4fb4 update go version to 1.19 2024-01-25 22:55:22 +09:00
leso-kn
00b02e0ba9 Fix musl build (#1164) 2023-12-15 10:23:24 +09:00
Diego Becciolini
d9e2789502 temporary fix to make the job pass
use same workaround as https://github.com/authelia/authelia/pull/6404
before https://github.com/mattn/go-sqlite3/pull/1177 fixes the build
otherwise
2023-12-14 10:25:47 +09:00
Diego Becciolini
c260ecf7e4 use locally checked out lib in the docker job
see https://github.com/mattn/go-sqlite3/pull/1177
2023-12-14 10:25:47 +09:00
Yasuhiro Matsumoto
9fd6f4ffd3 Update amalgamation code 2023-11-04 23:05:11 +09:00
Yasuhiro Matsumoto
f08f1b6b9c Update amalgamation code 2023-06-01 08:32:35 +09:00
Partho Kumar Rajvor
d366d8de4e Update README.md 2023-05-17 10:16:53 +09:00
Andrew Zhang
edc3bb6955 Fix virtual table example. (#1149) 2023-04-05 22:46:26 -04:00
Denis Dmitriev
85a15a7254 Add build tags to support both x86 and ARM compilation on macOS (#1069)
* Add build tags to support both x86 and ARM compilation on macOS

* Documentation fix: command line for build under macOS

* Global replace 'macOS X' -> 'macOS'. Fix typo in -tags cmd line param

* `README.md`: fix all `--tags` -> `-tags`

---------

Co-authored-by: Denis Dmitriev <dmitriev@itspartner.net>
2023-02-23 00:00:03 -05:00
Connor Hindley
819cc0ddf2 Add go 1.20 to workflow matrix, remove 1.17 (#1136)
Closes #1129
2023-02-15 23:42:36 -05:00
Charlie Vieth
7ce62b2ade Replace namedValue with driver.NamedValue to avoid copying exec/query args (#1128) 2023-02-11 17:14:42 -05:00
Philip O'Toole
1603038a4d Add Serialize and Deserialize support (#1089)
Add support for Serialize and Deserialize, which wrap sqlite3_serialize and sqlite3_deserialize.
2022-11-17 08:03:02 -05:00
Philip O'Toole
bce3773726 Update expected test output
Broken in https://github.com/mattn/go-sqlite3/pull/1085
2022-10-26 22:03:24 +09:00
Yasuhiro Matsumoto
31c761827c Update amalgamation code 2022-10-26 22:03:24 +09:00
David Vassallo
4b8633cceb Updating vtable example, "BestIndex" method (#1099)
As it was, the vtable example will give an error when adding any kind of SQL constraint in the SQL statement. Updating the BestIndex method will ensure that adding SQL constraints will not result in errors

Signed-off-by: David Vassallo <davevassallo@gmail.com>

Signed-off-by: David Vassallo <davevassallo@gmail.com>
2022-10-18 19:04:52 -04:00
David Vassallo
0b3708425e Update README.md to include vtable feature (#1100)
Added documentation for sqlite_vtable build tag to the README.
2022-10-18 18:31:09 -04:00
Luca Guidi
90900be5db Cross Compiling for Mac OS via musl-cross
# Enhancement

Update `README.md` with new instructions for Mac OS cross compiling.

# Why?

The current suggested solution `xgo` is no longer maintained (GitHub archived repository).

# Credits

Credits go to Pieter Claerhout (@pieterclaerhout) and his blog post: https://www.yellowduck.be/posts/cross-compile-a-go-package-which-uses-sqlite3
2022-09-18 22:34:48 +09:00
kkqy
be28dec3df Golang's linker add mingwex and mingw32 automatically,so we don't need add them manually. 2022-09-18 22:20:58 +09:00
Levi Gruspe
17f6553f94 Add support for sqlite_math_functions tag (#1059)
Add support for SQLITE_ENABLE_MATH_FUNCTIONS compile-time option via the sqlite_math_functions build tag.

Co-authored-by: Dominik Kraus <dominik.kraus@nktek.de>
2022-09-17 10:45:46 -04:00
KiYugadgeter
7476442ed6 こんにちわ is wrong Japanse. The correct word is こんにちは 2022-09-04 18:00:08 +09:00
RewardedIvan
da62659c58 Fix "ennviroment" (#1077)
Fix typo in README
2022-09-01 22:47:55 -04:00
Joshua Hull
4ef63c9c0d Rollback on constraint failure (#1071)
Always rollback on a commit error
2022-09-01 22:45:11 -04:00
Joshua Hull
f92b6bb2a1 Fix TestQueryer test to use exec for multistatement insertion 2022-09-02 00:14:06 +09:00
Joshua Hull
d5355d86f9 Fix TestQueryer test 2022-09-02 00:14:06 +09:00
Yoshiki Shibukawa
c8a114388a Update README to fix reference URL
R.I.P. godoc.org
2022-09-01 11:56:18 +09:00
Oliver Giles
f1eef49b3f TestQueryer: actually check Rows returned
Fixes a test which did not correctly exercise the multi-statement
Queryer functionality
2022-08-16 21:24:19 +09:00
Ben Johnson
a2e94c9d58 Add build tag to enable OSTRACE() logging
This commit adds the `sqlite_os_trace` build tag which sets the
`SQLITE_FORCE_OS_TRACE` and `SQLITE_DEBUG_OS_TRACE` compilation
flags. This produces verbose debugging output of every operating
system call made by SQLite.
2022-08-16 21:21:55 +09:00
Yasuhiro Matsumoto
d8e192b752 Update amalgamation code 2022-08-16 16:16:48 +09:00
Bryan C. Mills
595e13285d Retract +incompatible releases
(For #965.)

This retraction will take effect when this commit is included in the
latest v1 release (presumably v1.14.11).
2022-08-16 14:22:03 +09:00
Aoang
fd616a2f47 Update supported Go version to Go 1.19 2022-08-15 15:12:08 +09:00
Phil Eaton
3ccccfb4c9 Support returning any from callbacks (#1046)
Support returning any from callbacks
2022-05-29 21:06:43 -04:00
Kristóf Havasi
b819467576 Add error checking in simple example for tx.Commit
Based on https://golang.org/pkg/database/sql/#Tx.Commit this function returns an error type.
So why not check it.
2022-05-28 23:40:45 +09:00
mattn
43dcd3131f Update _example/simple/Dockerfile 2022-05-18 11:53:00 +09:00