aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix `reuse lint`Stefan Majewsky2026-05-121-0/+1
|
* v0.7.0v0.7.0Stefan Majewsky2026-05-121-1/+1
|
* add escaping in Dialect.QuoteIdentifier implementationsStefan Majewsky2026-05-122-6/+26
|
* clarify docstrings, put down TODOs based on review feedbackStefan Majewsky2026-05-122-3/+8
|
* fix typosStefan Majewsky2026-05-123-3/+3
|
* change Handle to a generic interface without explicit dep on database/sqlStefan Majewsky2026-05-1211-105/+216
|
* v0.6.0v0.6.0Stefan Majewsky2026-05-081-1/+1
|
* add type RuntimeIndexStefan Majewsky2026-05-083-0/+135
|
* v0.5.0v0.5.0Stefan Majewsky2026-05-081-1/+1
|
* allow both None or ErrNoRows in SelectOne{,Where}Stefan Majewsky2026-05-084-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.0Stefan Majewsky2026-05-041-1/+1
|
* return None instead of ErrNoRows from SelectOne{,Where}Stefan Majewsky2026-05-048-33/+66
|
* run tests when a PR is posted on GitHubStefan Majewsky2026-05-031-0/+68
|
* README: adjust contribution notes, acknowledge the non-ORM-nessStefan Majewsky2026-05-021-3/+6
|
* v0.3.0v0.3.0Stefan Majewsky2026-04-301-1/+1
|
* shave an allocation and memcpy from Select() and SelectWhere()Stefan Majewsky2026-04-302-11/+42
|
* fix benchmark calling the wrong test functionStefan Majewsky2026-04-301-1/+1
| | | | I should have been suspicious of the Gorm/Gorp numbers matching exactly :)
* benchmark: provide a handwritten N=1 implementation for InsertAndDeleteStefan Majewsky2026-04-301-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 methodsStefan Majewsky2026-04-308-132/+154
|
* shave off some more allocationsStefan Majewsky2026-04-301-5/+5
|
* one more TODOStefan Majewsky2026-04-301-0/+4
|
* benchmark: compare InsertAndDelete to plain SQLite using QueryRow for INSERTStefan Majewsky2026-04-291-7/+41
|
* note to self: bad memory usage stats for Insert()Stefan Majewsky2026-04-241-0/+1
|
* add Store.Upsert()Stefan Majewsky2026-04-244-11/+188
|
* exclude testhelpers from coverage testingStefan Majewsky2026-04-249-11/+11
|
* remove support for SQL dialects that rely on LastInsertId()Stefan Majewsky2026-04-246-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 Majewsky2026-04-233-4/+99
|
* change Store.Insert() to take arguments by pointerStefan Majewsky2026-04-194-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/castellumStefan Majewsky2026-04-181-0/+2
|
* README: refer to GitHub mirrorStefan Majewsky2026-04-181-0/+6
|
* v0.2.0v0.2.0Stefan Majewsky2026-04-181-1/+1
|
* add StructTagKeyIsStefan Majewsky2026-04-184-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.0Stefan Majewsky2026-04-181-0/+9
|
* add type PreparedSelectQueryStefan Majewsky2026-04-184-24/+205
|
* update repo descriptionStefan Majewsky2026-04-181-1/+1
|
* write out a proper READMEStefan Majewsky2026-04-182-5/+38
|
* fix Store.Insert() failing on tables without auto columnsStefan Majewsky2026-04-182-15/+68
|
* more test coverage, forbid non-zero auto columns during Insert()Stefan Majewsky2026-04-184-24/+264
|
* add TODOs for the remaining things that I want for 1.0Stefan Majewsky2026-04-172-0/+4
|
* benchmark: add GormStefan Majewsky2026-04-174-37/+126
|
* minimize function bodies for generic Insert function(s)Stefan Majewsky2026-04-171-37/+78
|
* Makefile: add benchmark targetStefan Majewsky2026-04-171-0/+3
|
* remove more instances of defer()Stefan Majewsky2026-04-172-12/+8
|
* reduce function body size for Update(), Delete()Stefan Majewsky2026-04-171-49/+54
|
* add type preparedStatement to simplify write opsStefan Majewsky2026-04-171-60/+65
|
* basic test coverage for Insert, Update, DeleteStefan Majewsky2026-04-173-3/+155
|
* improve test coverage, error reporting for Select()Stefan Majewsky2026-04-177-106/+242
|
* fix lintsStefan Majewsky2026-04-171-1/+1
|
* add Store.Update()Stefan Majewsky2026-04-163-7/+181
|
* add PrepareThreshold tuning parameterStefan Majewsky2026-04-162-16/+49
|