<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go-oblast, branch v0.5.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.5.0</title>
<updated>2026-05-08T14:58:04+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-08T14:58:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=9b456c354ec23ae85f21054e1326683ebccca86a'/>
<id>9b456c354ec23ae85f21054e1326683ebccca86a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>allow both None or ErrNoRows in SelectOne{,Where}</title>
<updated>2026-05-08T14:52:46+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-08T14:52:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=f79d61a9eef42a05aca6f4ddb8d95192549036a5'/>
<id>f79d61a9eef42a05aca6f4ddb8d95192549036a5</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>v0.4.0</title>
<updated>2026-05-04T14:23:38+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-04T14:23:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=dadb36a1f73d39948e4989a3ab4333a61f70ee7a'/>
<id>dadb36a1f73d39948e4989a3ab4333a61f70ee7a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>return None instead of ErrNoRows from SelectOne{,Where}</title>
<updated>2026-05-04T14:23:24+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-04T14:23:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=f2d6d6f2f24e7e7d594296b77fa044ccd547321d'/>
<id>f2d6d6f2f24e7e7d594296b77fa044ccd547321d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>run tests when a PR is posted on GitHub</title>
<updated>2026-05-03T19:01:00+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-03T18:57:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=5e47f483cf08edd619012ba7762449954c81117d'/>
<id>5e47f483cf08edd619012ba7762449954c81117d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>README: adjust contribution notes, acknowledge the non-ORM-ness</title>
<updated>2026-05-01T22:18:44+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-01T22:16:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=31513796b0057e4d7e623a22e664b3557bbe54a3'/>
<id>31513796b0057e4d7e623a22e664b3557bbe54a3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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>
</feed>
