Re: Extract numeric filed in JSONB more effectively
| От | Andy Fan |
|---|---|
| Тема | Re: Extract numeric filed in JSONB more effectively |
| Дата | |
| Msg-id | 873417fgc0.fsf@163.com обсуждение |
| Ответ на | Re: Extract numeric filed in JSONB more effectively (Haibo Yan <tristan.yim@gmail.com>) |
| Ответы |
Re: Extract numeric filed in JSONB more effectively
|
| Список | 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 по дате отправления: