<p></p>
<h2 dir="auto">What version of osm2pgsql are you using?</h2>
<p dir="auto">2022-05-25 12:26:54  osm2pgsql version 1.4.1<br>
Compiled using the following library versions:<br>
Libosmium 2.16.0<br>
Proj [API 4] Rel. 7.2.1, January 1st, 2021<br>
Lua 5.3.3</p>
<h2 dir="auto">What operating system and PostgreSQL/PostGIS version are you using?</h2>
<p dir="auto">Official PostGIS Docker image</p>
<h2 dir="auto">Tell us something about your system</h2>
<p dir="auto">16 GB RAM, i7 8th gen, Dell 7400</p>
<h2 dir="auto">What did you do exactly?</h2>
<p dir="auto">I want to import only node, ways and their relations on DB, with a simple structure. I grab the basic flex example and modified it to my needs. These are the essential parts.</p>
<div class="highlight highlight-source-lua"><pre><span class="pl-k">local</span> tables <span class="pl-k">=</span> {}
<span class="pl-k">local</span> projection <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>WGS84<span class="pl-pds">'</span></span>

tables.<span class="pl-smi">nodes</span> <span class="pl-k">=</span> osm2pgsql.<span class="pl-c1">define_node_table</span>(<span class="pl-s"><span class="pl-pds">'</span>node<span class="pl-pds">'</span></span>, {
    { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>tags<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>jsonb<span class="pl-pds">'</span></span> },
    { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>geom<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>point<span class="pl-pds">'</span></span>, projection <span class="pl-k">=</span> projection },
})

tables.<span class="pl-smi">ways</span> <span class="pl-k">=</span> osm2pgsql.<span class="pl-c1">define_way_table</span>(<span class="pl-s"><span class="pl-pds">'</span>way<span class="pl-pds">'</span></span>, {
    { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>tags<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>jsonb<span class="pl-pds">'</span></span> },
    { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>oneway<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>boolean<span class="pl-pds">'</span></span> },
    { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>geom<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>linestring<span class="pl-pds">'</span></span>, projection <span class="pl-k">=</span> projection },
})

tables.<span class="pl-smi">nodeWays</span> <span class="pl-k">=</span> osm2pgsql.<span class="pl-c1">define_table</span>({
    name <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>nodeWay<span class="pl-pds">'</span></span>,
    ids <span class="pl-k">=</span> { type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>way<span class="pl-pds">'</span></span>, id_column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>wayId<span class="pl-pds">'</span></span> },
    columns <span class="pl-k">=</span> {
        { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>nodeId<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>int<span class="pl-pds">'</span></span> },
        { column <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>nodeIndex<span class="pl-pds">'</span></span>, type <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>int<span class="pl-pds">'</span></span> }
    }
})

<span class="pl-k">function</span> <span class="pl-en">osm2pgsql.process_node</span>(<span class="pl-smi">object</span>)
    <span class="pl-k">if</span> <span class="pl-c1">clean_tags</span>(object.<span class="pl-smi">tags</span>) <span class="pl-k">then</span>
        <span class="pl-k">return</span>
    <span class="pl-k">end</span>

    tables.<span class="pl-smi">nodes</span>:<span class="pl-c1">add_row</span>({
        tags <span class="pl-k">=</span> object.<span class="pl-smi">tags</span>,
    })
<span class="pl-k">end</span></pre></div>
<p dir="auto">Then I launch <code class="notranslate">osm2pgsql -c /home/nord-est-latest.osm.pbf -d osm -O flex -S /home/flex.lua -s</code> with the nord-est file taken from Geofabrik on north east of Italy.</p>
<h2 dir="auto">What did you expect to happen?</h2>
<p dir="auto">Upload all nodes with id, tag and location.</p>
<h2 dir="auto">What did happen instead?</h2>
<pre class="notranslate"><code class="notranslate">ERROR: Failed to execute Lua function 'osm2pgsql.process_node': /home/flex.lua:365: Error in 'add_row': Invalid type 'table' for text column.

stack traceback:
        [C]: in method 'add_row'
        /home/flex.lua:365: in function </home/flex.lua:358>.
</code></pre>
<h2 dir="auto">What did you do to try analyzing the problem?</h2>
<p dir="auto">If I do the processing without the tags in the <code class="notranslate">add_row</code> function, the nodes are loaded with the tags column filled with <code class="notranslate">NULL</code> values.<br>
Instead, if I do the processing with the nodes stringified (i used <a href="https://gist.github.com/tylerneylon/59f4bcf316be525b30ab">this</a>) they are loaded as expected.</p>
<p dir="auto">The same happens even if I use the provided example <code class="notranslate">simple.lua</code>.</p>
<p dir="auto">The table structure will probably change for my needs, but the interesting part for me is the node upload error.</p>
<p dir="auto">I don't know if this is a bug or if I did a mistake, but I did not found similar issues, so I hope this to be helpful to someone.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/osm2pgsql/issues/1677">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AA6353Q6ETJAVHLYBEL6FMLVLYNLTANCNFSM5W47YP5Q">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AA6353W64AAMU7IKWOQQ7NDVLYNLTA5CNFSM5W47YP52YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4STDP5OA.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/osm2pgsql/issues/1677</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/osm2pgsql/issues/1677",
"url": "https://github.com/openstreetmap/osm2pgsql/issues/1677",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>