Commit Graph

965 Commits

Author SHA1 Message Date
George Dunlap 1e5b7497ff Add test for sqliteconn.Raw()
Note that you can't call cgo from within a test file; so in order to
test the functionality, create new package, .../internal/sqlite3test,
to define the callback.  Then in the main sqlite3 package, add a test
file which includes this package and calls the callback.

As with the previous commit, the idea and the basic code was written
by @rittneje; I massaged it so that it compiled and passed with Go
1.9, and wrote this commit message and the comments.

NB that Golang 1.9 doesn't have sql.OpenDB, so we have to register a
new database driver.

Signed-off-by: George Dunlap <dunlapg@umich.edu>

v4:
- Refactor to get rid of sql.OpenDB call, which only appeared in Go
  1.10

v3:
- New
2023-12-19 08:12:54 +00:00
George Dunlap 70f16d879b SQLiteConn: Add 'Raw' method to give access to underlying sqlite3 context structure
This is necessary, for instance, to allow users of the package to make
their own CGo callbacks, and have the underlying sqlite3 library call
those C functions directly.

Note that the intention from the sqlite3 library seems to be that
there should be a measure of binary compatibility between versions:
even extensions compiled against an older different version of sqlite3
should be able to call sqlite3_create_function with no problems. So
this should work even if users of the package have a slightly
different version of the sqlite3.h header.

Note that the code itself was written by @rittneje.  I tested it and
wrote the comments.

Signed-off-by: George Dunlap <dunlapg@umich.edu>

v2:
Just copy @rittneje's code exactly:
- Grab the lock while the function is running
- Replace the error code with our own if it's of type ErrNo
2023-12-19 08:12:54 +00: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
KEINOS c122302862 feat: simple example of Dockerfile w/ multi-stage build 2022-05-18 11:53:00 +09:00
Yasuhiro Matsumoto aa1e904220 Update amalgamation code 2022-05-13 11:15:23 +09:00
mattn adb060d295 Update .github/workflows/go.yaml 2022-05-13 10:44:42 +09:00
Aoang a68a2b7fc5 Update supported Golang version to Go 1.18 2022-05-13 10:44:42 +09:00
Corey Butler bedc2985ef Update sqlite3_opt_preupdate_omit.go 2022-04-23 14:23:00 +09:00
Corey Butler c1379fcb35 Update sqlite3_opt_preupdate_hook.go 2022-04-23 14:23:00 +09:00
Phil Eaton 2df077b74c Update amalgamation 2022-02-28 09:00:54 +09:00
Ben Johnson ae2a61f847 Add sqlite3_file_control() support
This commit adds the SQLiteConn.FileControlInt() method which calls the
underlying sqlite3_file_control() function with an int argument. This can
be used for low-level operations on SQLite databases such as persisting
the WAL file after database close.
2022-01-29 01:58:27 +09:00
Yasuhiro Matsumoto 671e666c2e Add example using driverName 2022-01-10 23:30:33 +09:00
Yasuhiro Matsumoto c0fa5ea6d6 Add driverName to be possible change driver name 2022-01-10 23:30:33 +09:00
Yasuhiro Matsumoto 98c52198ca Temporary disable test for dropping vtable 2021-12-29 22:26:06 +09:00
Yasuhiro Matsumoto 7fbc50c941 Update amalgamation code 2021-12-29 22:26:06 +09:00
Yasuhiro Matsumoto 85436841b3 Fix GitHub workflows 2021-10-26 10:18:49 +09:00
mattn 4761e9cad1
Do no test with go-acc on Windows (#980)
Currently, no way to fix failing
2021-10-26 10:18:18 +09:00
mattn 48c6a56ee0
Add go.mod and go.sum for upgrade (#978)
* Add go.mod and go.sum for upgrade

* Fix upgrade tools to have to run on upgrade directory
2021-10-26 09:39:02 +09:00
mattn bb15a32a4f
Drop old versions (#979) 2021-10-26 09:38:41 +09:00