Most of the important database access is through the $form object.

$form->{dbh} is a non-autocommit database handle.

$form->dbinit initiates the $form->{dbh} and caches the custom fields table.

$form->callproc($procname, @arguments) returns @hashref_records
This is a wrapper for the stored procedures.  Prepares a parameterized query,
fills in the arguments, and returns the results as a list of hashrefs.
rce.jones.dk/notmuch' title='notmuch Git repository'/>
<link rel='vcs-git' href='user@source.jones.dk:notmuch' title='notmuch Git repository'/>
</head>
<body>
<div id='cgit'><table id='header'>
<tr>
<td class='logo' rowspan='2'><a href='/'><img src='/cgit-css/cgit.png' alt='cgit logo'/></a></td>
<td class='main'><a href='/'>index</a> : <a href='/notmuch/'>notmuch</a></td><td class='form'><form method='get'>
<select name='h' onchange='this.form.submit();'>
<option value='master' selected='selected'>master</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Unnamed repository; edit this file 'description' to name the repository.</td><td class='sub right'>Jonas Smedegaard</td></tr></table>
<table class='tabs'><tr><td>
<a href='/notmuch/?h=master'>summary</a><a href='/notmuch/refs/?h=master'>refs</a><a href='/notmuch/log/tags/8d/22?h=master'>log</a><a href='/notmuch/tree/tags/8d/22?h=master'>tree</a><a class='active' href='/notmuch/commit/tags/8d/22?h=master'>commit</a><a href='/notmuch/diff/tags/8d/22?h=master'>diff</a></td><td class='form'><form class='right' method='get' action='/notmuch/log/tags/8d/22'>
<input type='hidden' name='h' value='master'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/notmuch/commit/?h=master'>root</a>/<a href='/notmuch/commit/tags?h=master'>tags</a>/<a href='/notmuch/commit/tags/8d?h=master'>8d</a>/<a href='/notmuch/commit/tags/8d/22?h=master'>22</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='master'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>Jonas Smedegaard &lt;dr@jones.dk&gt;</td><td class='right'>2023-06-27 09:35:08 +0200</td></tr>
<tr><th>committer</th><td>Jonas Smedegaard &lt;dr@jones.dk&gt;</td><td class='right'>2023-06-27 09:35:08 +0200</td></tr>
<tr><th>commit</th><td colspan='2' class='oid'><a href='/notmuch/commit/tags/8d/22?h=master&amp;id=fd54908da2b05c526dd3bee9b6dcd093214a220d'>fd54908da2b05c526dd3bee9b6dcd093214a220d</a> (<a href='/notmuch/patch/tags/8d/22?id=fd54908da2b05c526dd3bee9b6dcd093214a220d'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='oid'><a href='/notmuch/tree/?h=master'>c69c845069c99d1d01044f6fafda7c08433329c6</a> /<a href='/notmuch/tree/tags/8d/22?h=master'>tags/8d/22</a></td></tr>
<tr><th>parent</th><td colspan='2' class='oid'><a href='/notmuch/commit/tags/8d/22?h=master&amp;id=ba46132213560cf3335d53560d519c0ec0190da2'>ba46132213560cf3335d53560d519c0ec0190da2</a> (<a href='/notmuch/diff/tags/8d/22?h=master&amp;id2=ba46132213560cf3335d53560d519c0ec0190da2'>diff</a>)</td></tr></table>
<div class='commit-subject'><span class='decoration'><a class='branch-deco' href='/notmuch/log/tags/8d/22?h=master'>master</a></span></div><div class='commit-msg'></div><div class='diffstat-header'><a href='/notmuch/diff/?h=master'>Diffstat</a> (limited to 'tags/8d/22')</div><table summary='diffstat' class='diffstat'>