Re: SQL/JSON: JSON_TABLE

From: Erik Rijkers <er(at)xs4all(dot)nl>
To: Nikita Glukhov <n(dot)gluhov(at)postgrespro(dot)ru>, Andrew Dunstan <andrew(at)dunslane(dot)net>, David Steele <david(at)pgmasters(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Oleg Bartunov <obartunov(at)gmail(dot)com>, Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>, Zhihong Yu <zyu(at)yugabyte(dot)com>
Subject: Re: SQL/JSON: JSON_TABLE
Date: 2021-03-30 16:56:58
Message-ID: 2101814418.20240.1617123418368@webmailclassic.xs4all.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On 2021.03.27. 02:12 Nikita Glukhov <n(dot)gluhov(at)postgrespro(dot)ru> wrote:
>
> Attached 47th version of the patches.
>
[..]
>
> I have added forgotten files and fixed the first patch.
>
> [0001-SQL-JSON-functions-v47.patch]
> [0002-JSON_TABLE-v47.patch]
> [0003-JSON_TABLE-PLAN-DEFAULT-clause-v47.patch]
> [0004-JSON_TABLE-PLAN-clause-v47.patch]

Hi,

Apply, build all fine. It also works quite well, and according to specification, as far as I can tell.

But today I ran into:

ERROR: function ExecEvalJson not in llvmjit_types.c

I think that it is caused by:

set enable_bitmapscan = off;

(I installed llvm a few days ago. llvm-3.9-dev on this debian stretch).

This is the test sql I concocted, which runs fine with enable_bitmapscan on (the default):

select jt1.*
from myjsonfile100k as t(js, id)
, json_table(
t.js
, '$' columns (
"lastname" text path '$. "lastname" '
, "firstname" text path '$. "firstname" '
, "date" text path '$. "date" '
, "city" text path '$. "city" '
, "country" text path '$. "country" '
, "name 0(1)" text path '$. "array"[0] '
, "name 4(5)" text path '$. "array"[4] '
, "names" text[] path '$. "array" '
, "randfloat" float path '$. "random float" '
)
) as jt1
where js @> ('[ { "city": "Santiago de Cuba" } ]')
and js[0]->>'firstname' = 'Gilda'
;
ERROR: function ExecEvalJson not in llvmjit_types.c

That statement only errors out if the table is large enough. I have no time now to make a sample table but if no-one understands the problem off-hand, I'll try to construct such a table later this week (the one I'm using is large, 1.5 GB).

Erik Rijkers

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jacob Champion 2021-03-30 17:06:51 Re: Proposal: Save user's original authenticated identity for logging
Previous Message Stephen Frost 2021-03-30 16:55:06 Re: Autovacuum worker doesn't immediately exit on postmaster death