<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go-oblast, branch v0.3.0</title>
<subtitle>A small ORM library for Go, focused on type safety and performance
</subtitle>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/'/>
<entry>
<title>v0.3.0</title>
<updated>2026-04-29T23:55:09+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T23:55:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=a25fed853f9fe93b5b545a9750844948d26ef01e'/>
<id>a25fed853f9fe93b5b545a9750844948d26ef01e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>shave an allocation and memcpy from Select() and SelectWhere()</title>
<updated>2026-04-29T23:37:48+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T23:37:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=4b582016e34128dca038ab0c1ee3511d75fae8fd'/>
<id>4b582016e34128dca038ab0c1ee3511d75fae8fd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix benchmark calling the wrong test function</title>
<updated>2026-04-29T23:19:20+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T23:19:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=651fb229ce9dba18fe076a8a33b904c74e1b7c6f'/>
<id>651fb229ce9dba18fe076a8a33b904c74e1b7c6f</id>
<content type='text'>
I should have been suspicious of the Gorm/Gorp numbers matching exactly :)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I should have been suspicious of the Gorm/Gorp numbers matching exactly :)
</pre>
</div>
</content>
</entry>
<entry>
<title>benchmark: provide a handwritten N=1 implementation for InsertAndDelete</title>
<updated>2026-04-29T23:09:48+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T23:02:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=ea9464fccd26783564e852f10212fc9ce850c5ff'/>
<id>ea9464fccd26783564e852f10212fc9ce850c5ff</id>
<content type='text'>
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
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
```
</pre>
</div>
</content>
</entry>
<entry>
<title>add ctx arguments to most methods</title>
<updated>2026-04-29T22:56:38+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T22:56:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=71d4c873bd12233b585637404115cfea9462c904'/>
<id>71d4c873bd12233b585637404115cfea9462c904</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>shave off some more allocations</title>
<updated>2026-04-29T22:26:10+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T22:26:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=24bfa86b90f7b9bec886af7e3e4f02fee25ce99c'/>
<id>24bfa86b90f7b9bec886af7e3e4f02fee25ce99c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>one more TODO</title>
<updated>2026-04-29T22:18:53+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T22:18:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=5b5fc09a62c3c82f30e78eb49501d10c3cc0c172'/>
<id>5b5fc09a62c3c82f30e78eb49501d10c3cc0c172</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>benchmark: compare InsertAndDelete to plain SQLite using QueryRow for INSERT</title>
<updated>2026-04-29T21:36:28+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T21:36:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=b0c7e5a3bd1e590d49f793da65a74d646eadb538'/>
<id>b0c7e5a3bd1e590d49f793da65a74d646eadb538</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>note to self: bad memory usage stats for Insert()</title>
<updated>2026-04-24T14:17:41+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-24T14:17:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=eeca7893949a6bf71472a14bb7beb75c469f32db'/>
<id>eeca7893949a6bf71472a14bb7beb75c469f32db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add Store.Upsert()</title>
<updated>2026-04-24T14:10:09+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-24T14:08:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=5954b420d2acff038a79aa0e09d2ba3ab8dc37a9'/>
<id>5954b420d2acff038a79aa0e09d2ba3ab8dc37a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
