| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | add type RuntimeIndex | Stefan Majewsky | 2026-05-08 | 3 | -0/+135 |
| | | |||||
| * | v0.5.0v0.5.0 | Stefan Majewsky | 2026-05-08 | 1 | -1/+1 |
| | | |||||
| * | allow both None or ErrNoRows in SelectOne{,Where} | Stefan Majewsky | 2026-05-08 | 4 | -25/+141 |
| | | | | | | | | | | The None-returning style is more convenient when the application needs to genuinely behave differently in this case, e.g. returning 404 from an HTTP API endpoint (instead of 500 for a generic database error). The ErrNoRows-returning style is more convenient when control flow is not different for this case vs. other error cases. | ||||
| * | v0.4.0v0.4.0 | Stefan Majewsky | 2026-05-04 | 1 | -1/+1 |
| | | |||||
| * | return None instead of ErrNoRows from SelectOne{,Where} | Stefan Majewsky | 2026-05-04 | 8 | -33/+66 |
| | | |||||
| * | run tests when a PR is posted on GitHub | Stefan Majewsky | 2026-05-03 | 1 | -0/+68 |
| | | |||||
| * | README: adjust contribution notes, acknowledge the non-ORM-ness | Stefan Majewsky | 2026-05-02 | 1 | -3/+6 |
| | | |||||
| * | v0.3.0v0.3.0 | Stefan Majewsky | 2026-04-30 | 1 | -1/+1 |
| | | |||||
| * | shave an allocation and memcpy from Select() and SelectWhere() | Stefan Majewsky | 2026-04-30 | 2 | -11/+42 |
| | | |||||
| * | fix benchmark calling the wrong test function | Stefan Majewsky | 2026-04-30 | 1 | -1/+1 |
| | | | | | I should have been suspicious of the Gorm/Gorp numbers matching exactly :) | ||||
| * | benchmark: provide a handwritten N=1 implementation for InsertAndDelete | Stefan Majewsky | 2026-04-30 | 1 | -0/+29 |
| | | | | | | | | | | | | | | | | | As I had expected, this removes an unfair disadvantage for Oblast, which had to maintain two differently-typed slices for Insert() and Delete(). This is not really a fair comparison since usually you would not be doing both operations in one go. For Gorp, this rewrite is neutral. But in a shocking twist, Gorm somehow does _significantly_ worse with a specialized N=1 implementation: ``` BenchmarkInsertAndDelete/N=1/via_Gorm-24 before: 11508 B/op 157 allocs/op after: 12840 B/op 172 allocs/op ``` | ||||
| * | add ctx arguments to most methods | Stefan Majewsky | 2026-04-30 | 8 | -132/+154 |
| | | |||||
| * | shave off some more allocations | Stefan Majewsky | 2026-04-30 | 1 | -5/+5 |
| | | |||||
| * | one more TODO | Stefan Majewsky | 2026-04-30 | 1 | -0/+4 |
| | | |||||
| * | benchmark: compare InsertAndDelete to plain SQLite using QueryRow for INSERT | Stefan Majewsky | 2026-04-29 | 1 | -7/+41 |
| | | |||||
| * | note to self: bad memory usage stats for Insert() | Stefan Majewsky | 2026-04-24 | 1 | -0/+1 |
| | | |||||
| * | add Store.Upsert() | Stefan Majewsky | 2026-04-24 | 4 | -11/+188 |
| | | |||||
| * | exclude testhelpers from coverage testing | Stefan Majewsky | 2026-04-24 | 9 | -11/+11 |
| | | |||||
| * | remove support for SQL dialects that rely on LastInsertId() | Stefan Majewsky | 2026-04-24 | 6 | -338/+122 |
| | | | | | | | | | | | While researching for Upsert(), I noticed that both SQLite and MariaDB support INSERT with RETURNING clause, which is objectively better than LastInsertId() and cuts out a lot of useless crap from the codebase (esp. from monomorphization-relevant methods). The only tangible downside is that this drops support specifically for MySQL, but you know what? Fuck Oracle. | ||||
| * | add query planning for Upsert() | Stefan Majewsky | 2026-04-23 | 3 | -4/+99 |
| | | |||||
| * | change Store.Insert() to take arguments by pointer | Stefan Majewsky | 2026-04-19 | 4 | -42/+52 |
| | | | | | | | | | This increases memory overhead slightly, but when converting Gorp uses into Oblast, I saw that there is a legitimate risk of just ignoring the result value and continuing with the unupdated records. So according to the design priorities that I myself laid down, I'm sacrificing some performance for safety of use. | ||||
| * | notes from trying Oblast in https://github.com/sapcc/castellum | Stefan Majewsky | 2026-04-18 | 1 | -0/+2 |
| | | |||||
| * | README: refer to GitHub mirror | Stefan Majewsky | 2026-04-18 | 1 | -0/+6 |
| | | |||||
| * | v0.2.0v0.2.0 | Stefan Majewsky | 2026-04-18 | 1 | -1/+1 |
| | | |||||
| * | add StructTagKeyIs | Stefan Majewsky | 2026-04-18 | 4 | -10/+31 |
| | | | | | | Forgot this in 0.1.0. Without this, I cannot migrate existing Gorp users because Gorp does not understand `db:",auto"`. | ||||
| * | v0.1.0v0.1.0 | Stefan Majewsky | 2026-04-18 | 1 | -0/+9 |
| | | |||||
| * | add type PreparedSelectQuery | Stefan Majewsky | 2026-04-18 | 4 | -24/+205 |
| | | |||||
| * | update repo description | Stefan Majewsky | 2026-04-18 | 1 | -1/+1 |
| | | |||||
| * | write out a proper README | Stefan Majewsky | 2026-04-18 | 2 | -5/+38 |
| | | |||||
| * | fix Store.Insert() failing on tables without auto columns | Stefan Majewsky | 2026-04-18 | 2 | -15/+68 |
| | | |||||
| * | more test coverage, forbid non-zero auto columns during Insert() | Stefan Majewsky | 2026-04-18 | 4 | -24/+264 |
| | | |||||
| * | add TODOs for the remaining things that I want for 1.0 | Stefan Majewsky | 2026-04-17 | 2 | -0/+4 |
| | | |||||
| * | benchmark: add Gorm | Stefan Majewsky | 2026-04-17 | 4 | -37/+126 |
| | | |||||
| * | minimize function bodies for generic Insert function(s) | Stefan Majewsky | 2026-04-17 | 1 | -37/+78 |
| | | |||||
| * | Makefile: add benchmark target | Stefan Majewsky | 2026-04-17 | 1 | -0/+3 |
| | | |||||
| * | remove more instances of defer() | Stefan Majewsky | 2026-04-17 | 2 | -12/+8 |
| | | |||||
| * | reduce function body size for Update(), Delete() | Stefan Majewsky | 2026-04-17 | 1 | -49/+54 |
| | | |||||
| * | add type preparedStatement to simplify write ops | Stefan Majewsky | 2026-04-17 | 1 | -60/+65 |
| | | |||||
| * | basic test coverage for Insert, Update, Delete | Stefan Majewsky | 2026-04-17 | 3 | -3/+155 |
| | | |||||
| * | improve test coverage, error reporting for Select() | Stefan Majewsky | 2026-04-17 | 7 | -106/+242 |
| | | |||||
| * | fix lints | Stefan Majewsky | 2026-04-17 | 1 | -1/+1 |
| | | |||||
| * | add Store.Update() | Stefan Majewsky | 2026-04-16 | 3 | -7/+181 |
| | | |||||
| * | add PrepareThreshold tuning parameter | Stefan Majewsky | 2026-04-16 | 2 | -16/+49 |
| | | |||||
| * | benchmark: compare batches of prepared vs. one-off statements | Stefan Majewsky | 2026-04-16 | 1 | -57/+103 |
| | | |||||
| * | take non-pointer records on Insert() | Stefan Majewsky | 2026-04-16 | 2 | -11/+13 |
| | | |||||
| * | increase test coverage for planning | Stefan Majewsky | 2026-04-15 | 4 | -18/+156 |
| | | |||||
| * | before scanning, spawn member structs within pointers as necessary | Stefan Majewsky | 2026-04-15 | 4 | -5/+106 |
| | | |||||
| * | clarify behavior around recursing into struct type members | Stefan Majewsky | 2026-04-15 | 4 | -56/+137 |
| | | |||||
| * | add MysqlDialect | Stefan Majewsky | 2026-04-14 | 2 | -0/+75 |
| | | |||||
| * | fold package internal into package oblast | Stefan Majewsky | 2026-04-14 | 7 | -124/+101 |
| | | |||||
