Commit Graph

190 Commits

Author SHA1 Message Date
Anton
66283fbc1e doc: ncruces example 2024-06-10 22:13:31 +05:00
Anton
818954d339 refactor: use vfs=memdb instead of mode=memory&cache=shared
Shared cache is discouraged. The supported alternative
(and increasingly recommended by SQLite developers),
is the memdb VFS (which I believe is supported by all drivers).
I'm sure modernc has it, and mattn also does if compiled with
SQLITE_ENABLE_DESERIALIZE, which became the default in 2021.

https://github.com/ncruces/go-sqlite3/issues/94#issuecomment-2157679766
2024-06-10 21:55:49 +05:00
Anton
f8bd947de1 refactor: single-statement sql exec
Multi-statement DB.Exec implementations are inconsistent
(mattn/modernc) or missing (ncruces), and the performance
benefits are questionable, so I decided to switch to single
statements.
2024-06-10 21:39:11 +05:00
Anton
45e88a2f1d doc: readme - performance 2024-06-10 10:13:25 +05:00
Anton
22d9def071 doc: granular docs 2024-06-10 09:09:50 +05:00
Anton
7bf2940748 fix: cmd/redka - remove duplicate driver import 2024-06-09 18:54:58 +05:00
Anton
5692cf5488 doc: db - the pragma problem (#28) 2024-06-09 02:22:27 +05:00
Anton
6a6119f0b4 test: parser - case-insensitive string comparison 2024-06-09 01:45:46 +05:00
Anton
eccd6aa75e fix: db - set pragmas in connection string (#28) 2024-06-09 01:37:00 +05:00
Anton
673d1e5e15 fix: cmd/redka - enforce pragmas on each connection (#28) 2024-06-09 01:09:43 +05:00
Anton
05f54ab8b2 doc: redka - OpenDB allows pragma 2024-06-09 00:16:11 +05:00
Anton
2e507f8319 fix: command - always return non-nil command when parsing (fix #27)
To avoid panic when calling pcmd.Error in handlers.parse.
2024-06-09 00:14:12 +05:00
Anton
ce62018609 fix: parser - case-insensitive string comparison 2024-06-08 23:42:52 +05:00
Anton Zhiyanov
dd87141d07 doc: funding 2024-06-08 23:41:48 +05:00
Anton
72a3b9f5a5 doc: readme - v0.5.1 2024-06-07 13:53:34 +05:00
Jo
f631c08f30 build: fix macos amd64 build (#26) v0.5.1 2024-06-07 13:41:42 +05:00
Anton
c6b4e5c707 feat: command - lolwut 2024-06-06 16:57:29 +05:00
Anton
1bc2e5436e test: rkey - expire then set 2024-06-02 19:30:53 +05:00
Anton
4578305b25 refactor: redka - allow pragma in OpenDB 2024-06-02 19:25:34 +05:00
Anton
190d4dc3b0 doc: libsql example 2024-05-26 15:22:22 +05:00
Anton
788ceb3c50 fix: sqlx - ignore empty pragma map 2024-05-26 15:15:31 +05:00
Anton
33590cd27f impr: redka - driver name option 2024-05-26 14:35:32 +05:00
Anton
4294bbf153 impr: redka - OpenDB and custom pragmas 2024-05-26 13:53:53 +05:00
Anton
495ee53db2 doc: readme - v0.5.0 download links 2024-05-20 19:03:30 +05:00
Anton
d0f89c633f doc: readme - v0.5.0 2024-05-20 18:59:17 +05:00
Anton
470ed7bcd3 feat: command - set v0.5.0 2024-05-18 18:50:55 +05:00
Anton
90fd5e9c7f feat: sets 2024-05-08 23:04:28 +05:00
Anton
91766abaaa doc: readme - list typo 2024-05-06 16:45:49 +05:00
Anton
cfaf930f80 doc: readme - v0.4.0 2024-05-05 18:13:30 +05:00
Anton
7b25c85f8f refactor: sqlx - add vkey view v0.4.0 2024-05-05 15:55:32 +05:00
Anton
31c07ca9a4 refactor: sqlx - simpler view queries 2024-05-05 15:55:24 +05:00
Anton
5b59de3888 refactor: docker - use valkey-cli for smaller image 2024-05-05 15:30:27 +05:00
Anton
4aff4a9033 fix: command - distinguish between key not found and zero value 2024-05-04 23:33:37 +05:00
Anton
91ba6db411 impr: command - dbsize, ttl, type 2024-05-04 20:54:30 +05:00
Anton
1a54e3205b impr: rkey - len 2024-05-04 20:53:15 +05:00
Anton
043f1c123b impr: docker - healthcheck using ping (fix #17) 2024-05-04 20:17:47 +05:00
Anton
05aeb4be39 refactor: rstring - single-query set 2024-05-04 10:13:25 +05:00
Anton
5acaeaa21e refactor: sqlx - rename key_id to kid 2024-05-04 01:24:50 +05:00
Anton
4f3ce933b4 refactor: sqlx - strict tables 2024-05-04 01:06:46 +05:00
Anton
d692027cfc refactor: disallow the same key for different data types
Duplicate key names, introduced in 1b55ad8, do not play
well with rkey methods like Get, so I decided to undo
the change and settle for unique key names and
"key type mismatch" checking.

Unlike the v0.3 implementation, Redka now checks for
"key type mismatch" situations using the NOT NULL constraint
on rkey update instead of a separate ON UPDATE trigger, so
there is (almost) no performance penalty.

The general advice still applies:

Please don't use the same key for different data types.
It's a VERY bad idea.
2024-05-03 17:08:16 +05:00
Anton
24af28e0f0 refactor: rkey - incr version on expire/persist 2024-05-03 09:32:21 +05:00
Anton
4e76dda6e2 test: rstring - check key version 2024-05-03 09:23:42 +05:00
Anton
2901796811 refactor: rzset - store zset length 2024-05-03 09:13:19 +05:00
Anton
d8be92e8f5 refactor: rhash - store hash length 2024-05-03 08:05:07 +05:00
Anton
da2359ac13 refactor: rlist - store list length 2024-05-02 23:28:03 +05:00
Anton
dcd246d115 refactor: rkey - hardcode initial key version 2024-05-01 23:49:55 +05:00
Anton
b3e7a47be5 refactor: core - rename TypeSortedSet to TypeZSet 2024-05-01 23:44:33 +05:00
Anton
4459afa8cf refactor: allow keys with same name and different types 2024-05-01 23:38:18 +05:00
Anton
fc9070d238 refactor: change ErrNotFound value 2024-05-01 17:58:27 +05:00
Anton
c7eb7e7931 feat: command - list 2024-05-01 17:06:36 +05:00