Re: Extract numeric filed in JSONB more effectively - Mailing list pgsql-hackers

From Andy Fan
Subject Re: Extract numeric filed in JSONB more effectively
Date
Msg-id 873417fgc0.fsf@163.com
Whole thread Raw
In response to Re: Extract numeric filed in JSONB more effectively  (Haibo Yan <tristan.yim@gmail.com>)
Responses Re: Extract numeric filed in JSONB more effectively
List pgsql-hackers
Hi Haibo,

> I’d like to continue pushing this patch forward.
> Based on the earlier discussion, I reworked the patch into a smaller
> stage-1 version with a narrower scope and a simpler rewrite
> strategy. ..
> and does not yet try to cover array/path extraction or integer/float
> typed extractors.

Thanks for working on this. I did a quick comparison between this
version and my last patch v18 [1],  here is the difference.

My previous v18[1]: 542 insertions(+), 59 deletions(-)
Your patch: 543 insertions(+), 5 deletions(-)

However as what you have realized, your current patch still lack of many
optimizations, Not only the integer/float stuff, but also many
functions, e.g. jsonb_array_element, jsonb_extract_path,
jsonb_path_query and jsonb_path_query_first. After considering this,
what patch will look like in your approach? I guess you can see many
duplications. Less code doesn't always mean better, but I think this
still be a key consideration to address/check.


> I also ran a small microbenchmark to isolate the cast-over-object-field path. On my setup, the current patch shows
thefollowing gains: 
> Query                                        Before      After       Speedup
> --------------------------------------------------------------------------------
> SELECT sum((j->'n')::numeric) FROM t         118.028 ms  56.082 ms   2.10x
> SELECT count(*) FROM t WHERE (j->'b')::bool  115.665 ms  51.945 ms   2.23x
> --------------------------------------------------------------------------------

Thanks for running the test.

[1] https://www.postgresql.org/message-id/87ttk0lgcx.fsf%40163.com

--
Best Regards
Andy Fan




pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: DOCS: typo on CLUSTER page
Next
From: Michael Paquier
Date:
Subject: Re: Refactor query normalization into core query jumbling