summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* v0.13.1v0.13.1Stefan Majewsky2 days1-0/+4
|
* v0.13.0v0.13.0Stefan Majewsky2 days1-1/+1
|
* replace types Handle, DB, Conn, Tx with their gg/gsql equivalentsStefan Majewsky2 days14-311/+93
|
* replace ioError with gg/errext.WithCleanupStefan Majewsky2 days8-98/+26
|
* update apidox refs on package handleStefan Majewsky14 days1-3/+3
|
* v0.12.0v0.12.0Stefan Majewsky2026-07-171-1/+1
|
* cache buildPlan resultsStefan Majewsky2026-07-175-22/+103
|
* benchmark: go get -u all && go mod tidyStefan Majewsky2026-07-173-25/+27
|
* v0.11.0v0.11.0Stefan Majewsky2026-07-171-1/+1
|
* add type SelectionStefan Majewsky2026-07-176-160/+236
|
* bump gg, fix test assertions in benchmarkStefan Majewsky2026-07-174-15/+8
|
* oblast_pgx: support pgxpoolStefan Majewsky2026-07-051-2/+10
|
* bump gg to 0.10.0, use gg/assertStefan Majewsky2026-06-2010-279/+216
|
* go.mod: simplify go statementStefan Majewsky2026-06-021-1/+1
|
* v0.10.0v0.10.0Stefan Majewsky2026-05-221-1/+1
|
* doc proofreadingStefan Majewsky2026-05-222-1/+2
|
* bring back support for LastInsertId-based INSERTStefan Majewsky2026-05-226-42/+229
| | | | | | As the remaining TODO noted, this really is much more memory-efficient than QueryRow when we can use it, since it does not allocate an *sql.Rows instance inside the *sql.Row instance where we call Scan().
* v0.9.0v0.9.0Stefan Majewsky2026-05-181-1/+1
|
* replace Wrap with NewDB/NewConn/NewTxStefan Majewsky2026-05-188-91/+168
|
* TODO: oblast.SqlHandle[] is inconvenient to useStefan Majewsky2026-05-131-0/+1
|
* v0.8.0v0.8.0Stefan Majewsky2026-05-131-1/+1
|
* return a concrete type from Wrap() to enable non-Oblast DB operationsStefan Majewsky2026-05-138-97/+110
|
* Insert, Upsert, Update, Delete: do not panic on indirection through nil pointerStefan Majewsky2026-05-136-28/+169
|
* add PostgreSQL benchmark, comparing lib/pq against pgx both with and w/o OblastStefan Majewsky2026-05-129-20/+670
|
* 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-32/+65
|
* 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.