1
0
Fork 0

156 Commits (790874f60c49bee2dce4f7bba355fce35cbaebc6)

Author SHA1 Message Date
Philip O'Toole 8f45c4c8c9 Factor out read-only check 1 year ago
Philip O'Toole 92a604c4ec Move SQLite validity checks to db module 1 year ago
Philip O'Toole c1ba9157c2 More unit test of nil parameters 2 years ago
Philip O'Toole 41bf265b02 Fix more handling of nil named values 2 years ago
Philip O'Toole 053bde0ed6 Upgrade to latest SQLite driver 2 years ago
Philip O'Toole 3d555a73cb Add unit test showing malformed database issue
https://github.com/rqlite/rqlite/issues/1103
2 years ago
Philip O'Toole e74bfc182a Use new Encoder everywhere 2 years ago
Philip O'Toole 0071867e34 Don't call t.Fatal() from goroutine
It wouldn't abort the test anyway, so just log.
2 years ago
Eng Zer Jun 5141eff5fc
test: use `T.TempDir` to create temporary test directory
This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2 years ago
Philip O'Toole c91ca45ba4 Expose more DB attributes 2 years ago
Philip O'Toole a6a3567a4d DB layer returns in-memory status 2 years ago
Philip O'Toole d84fb85f01 Don't HTML escape JSON output 3 years ago
Philip O'Toole 869f3547b7 Update to SQLite 3.38 3 years ago
Philip O'Toole 7038b86dcb One final named params unit test 3 years ago
Philip O'Toole 01849e77d5 Add db-level support for named paremeters 3 years ago
Philip O'Toole 239cdc04b5 Don't run heavy memory tests in parallel
Let's see if this helps these tests run faster, especially with -race,
and prevent CircleCI timeouts.
3 years ago
Philip O'Toole 51bb54488b Explicitly handle column type nil (null) 3 years ago
Philip O'Toole c639f21cde Return time types in RFC3339 format 3 years ago
Philip O'Toole 28063bfa0d Support timestamp field 3 years ago
Philip O'Toole bed9dc2a49
Update db_test.go 3 years ago
Philip O'Toole 393a1c67a0 Fix unit tests 3 years ago
Philip O'Toole 2bf7638a8d Fix debug code in test 3 years ago
Philip O'Toole 01895e501f Serialize on-disk databases by simply reading file
This is safe according to https://sqlite.org/howtocorrupt.html and
avoids any sqlite3_serialize() limitations.
3 years ago
Philip O'Toole c0b22b0d03 Update CHANGELOG 3 years ago
Philip O'Toole 08eb74493d Add unit test for >1GiB in-memory databases
>2GiB in-memory are still not supported.
3 years ago
Philip O'Toole 44e47686ee Tests that demonstrate current isolation behavior 3 years ago
Philip O'Toole aa8df67592 DB-level unit tests pass 3 years ago
Philip O'Toole 161abb094d Add db-level FK constraints unit test 3 years ago
Philip O'Toole deb4dabf2e Thread through foreign key constraint controls 3 years ago
Philip O'Toole f7b390ab28 Adding JSON1 unit test 3 years ago
Philip O'Toole 96f9e85ee3 More concurrent query testing 3 years ago
Philip O'Toole 6c69e8a9b5 Upgrade to new compile options 3 years ago
Philip O'Toole ea723ee830 Ping databases on open to ensure full availability 3 years ago
Philip O'Toole 953e82f7c4 Add SQLite compile-time options to status output 3 years ago
Philip O'Toole cc8b924e64 Fix WaitGroup usage in test 3 years ago
Philip O'Toole 4f2818d037 Add concurrent query test 3 years ago
Philip O'Toole 6edff5ba24 Deal with SQLite connection "caching"?
https://github.com/mattn/go-sqlite3/issues/966
3 years ago
Philip O'Toole bf51947ca9 Better error messages 3 years ago
Philip O'Toole d101e10469 Test writing via the query connection
It should fail.
3 years ago
Philip O'Toole 6dc9583dab Implement concurrent reads and writes
Disk doesn't support it yet, as it has not moved to WAL mode. Perhaps
wait for next release to do that.
3 years ago
Philip O'Toole e0da96dd55 Remove support for specifying SQLite DSN
This is a breaking change. However this feature hasn't been tested and
allows end-users to break the system too easily. Low-level control over
the SQLite database is better done with PRAGMA commands where possible.
3 years ago
Philip O'Toole 2924ed407d Upgrade to rqlite/go-sqlite3 v1.20.4 3 years ago
Philip O'Toole 028419af0f Fix race in in-memory database testing 3 years ago
Philip O'Toole 1ee7a9eb17 Limit in-memory connection pool to 1 connection
https://github.com/mattn/go-sqlite3/issues/959#issuecomment-890283264
3 years ago
Philip O'Toole 8693694d14 Add current SQLite journal mode to status output 3 years ago
Philip O'Toole 503825dbaf Remove Abort functionality
No longer relevant since each Exec and Query gets its own connection.
3 years ago
Philip O'Toole 561bb47a14 Port DB layer to sql/database
Empty statements now cause panic.
3 years ago
Philip O'Toole eb8dcf74ff Start moving to SQL layer
Builds.
3 years ago
Philip O'Toole c5e67a548c Even more records during db test 4 years ago
Philip O'Toole 665d9913bb Add top-level Deserialize() to db layer 4 years ago
Philip O'Toole b83b2b241d Merge branch 'master' into no-disk-during-restore 4 years ago
Philip O'Toole 18a4f38701 Add Copy() method to db layer 4 years ago
Philip O'Toole 7900adbf53 Add Deserialize to DB layer 4 years ago
Philip O'Toole 9210297413 Unit test DB serialize 4 years ago
Philip O'Toole 011bc00784
Add SQLite database page-centric size to status output 4 years ago
Philip O'Toole 6575de779d
Use Protobuf for encoding Raft Log commands
This PR changes Raft Log Entry encoding from JSON to Protobuf. Furthermore, larger Raft commands (which can result from batching SQL statements, or individually long SQL statements) are compressed before encoding.

This primary reason for this change is to reduce IO load since that is one of the largest performance bottlenecks. It will also reduce internode traffic.

Legacy JSON-encoded commands are still handled by this code, so this change is backwards-compatible with previous releases in the v5 series.
4 years ago
Philip O'Toole b4867713e4 Better variable name, Query -> SQL 4 years ago
Philip O'Toole ee9f929735 ABL 4 years ago
Philip O'Toole 69ab554b58 Unit test parameterized statements 4 years ago
Philip O'Toole 1075315a11 DB Query now accepts complex Statements 4 years ago
Philip O'Toole db992d1dce DB Execute now accepts complex Statements 4 years ago
Philip O'Toole 3cfb0c3910 JSON types are also text 5 years ago
Philip O'Toole 0e69be3949 Store layer supports generating SQL format backups
Port PR453.
5 years ago
Philip O'Toole 43ea24fb82 DB layer supports generating SQL format backups
Port of PR451.
5 years ago
Philip O'Toole 0471877f26 Abort transaction if load operation fails 5 years ago
Philip O'Toole 6d5d4b3d81 Fix unit tests due to SQLite master table changes 7 years ago
Philip O'Toole bca0e43218 Unit test JOIN at the database level 7 years ago
Philip O'Toole 20f0eb505c Add test showing OK PRAGMA table_info 8 years ago
Philip O'Toole 86a59adc57 Unit test query of SQLite master table 8 years ago
Philip O Toole ffffd99f33 Test Common Table Expressions at database layer 8 years ago
Philip O Toole b0e7432dc3 Check for nil row from Execer 8 years ago
Philip O'Toole 9a7ff4c979 Handle "" types
Add unit test for concatenated queries. This deals with issue #240 but
this may be a hack. I need to dig into this issue more.
8 years ago
Philip O Toole efc49511a5 Test multiline statements at DB level 8 years ago
Philip O Toole 6815f09873 Database can return FK constraint state 8 years ago
Philip O'Toole 1de7848362 Clean up and simplify DB tests 8 years ago
Philip O'Toole 6b3704a9fa Add db test helper functions 8 years ago
Philip O'Toole 60443bee0b Reduce test cyclo complexity 8 years ago
Philip O'Toole 9fce85b059 Add UNIQUE constraint test 8 years ago
Philip O'Toole c40fff4d46 Support controlling FK constraints at startup
This was possible previously, but would need to be set everytime on
startup via the API. This change allows it to set at startup AND enables
foreign constraint checking by default.
8 years ago
Philip O'Toole 56778f1764 'go lint' fixes 8 years ago
Philip O'Toole 6fde29ff62 Fix typos 9 years ago
Philip O'Toole 6405dc01a8 Add function for loading in-memory db from file 9 years ago
Philip O'Toole f4c9ff0c3b Start with new DB layer 9 years ago
Zac Medico 9f348a6171 Use SQLiteRows.DeclTypes() to fix issue #52 9 years ago
Philip O'Toole 3f1a3b3777 Fix Raft snapshots of in-memory databases
The snapshot code assumed all databases were disk-based.
9 years ago
Philip O Toole 524e6170bf Final tests of backup 9 years ago
Philip O Toole 8b3c4202cc Work for database backup
Tests are failing.
9 years ago
Philip O Toole 170a916dd5 fmt and lint fixes 9 years ago
Philip O Toole 2ba973d7b7 Allow control of time display from db layer
This is not a great solution, and somewhat of a hack to make
unit-testing easier. However, it will allow control over "time"
in the response in the future.
9 years ago
Philip O Toole a6cb950ff4 Allow DSN config at command line
It might still need to be richer, so end-users could specify an
in-memory SQLite database. Specifying a DSN would require the user
to supply the full path to the SQLite database. This is OK. However,
the code then needs to be able to parse out the path to the database
so it can remove it before start up.
9 years ago
Philip O'Toole 1bbff9d53a Lowest-layer database tests completed 9 years ago
Philip O'Toole e047d9e9d9 Test_SimpleFailingStatements ported 9 years ago
Philip O'Toole 3c88305a77 Unit test failing statement 9 years ago
Philip O'Toole 57b4dddd26 Add unit test of db package 9 years ago
Philip O'Toole b95c84d16e Add database interface to Store
CREATE TABLE now works.
9 years ago
Philip O'Toole e17cceed91 Better name for test helper 9 years ago
Philip O'Toole 40b156fd47 Test_TransactionsHardFail now passes 9 years ago
Philip O'Toole 226938c0d1 Test_TransactionsConstraintViolation now passing 9 years ago
Philip O'Toole 801158fa83 Test_SimpleTransactions now passing 9 years ago
Philip O'Toole 62137fc798 Test_FailingSimpleStatements now passing 9 years ago