That would be nice. I've resorted to a few horrible hacks like this:
SELECT parse(data), extract("name"), extract("address"), release(data) FROM some_table; It works, but it relies on LTR parsing of arguments (which it does now, but I seriously doubt is a guarantee), as well as global/thread-local variables. Though I can still live with that one - it works. What I would like to see - is if you have an indexed expression like so: create index some_index on some_table( json_extract(json, '$.name') ); And you run: select json_extract(json, '$.name') from some_table indexed by some_index; That it returns the resultant value that is already stored in the index, rather than re-executing the expression. - Deon -----Original Message----- From: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] On Behalf Of Domingo Alvarez Duarte Sent: Wednesday, March 22, 2017 5:04 PM To: SQLite mailing list <sqlite-users@mailinglists.sqlite.org> Subject: [sqlite] Memoization in sqlite json1 functions Hello Richard ! I noticed that sqlite do not use any memoization in json1 functions. For example jsonExtractFunc and others parse the json string every time it's called even when the json string is the same. minimal example : "select json_extract(json, '$.name') name, json_extract(json, '$.address') name from some_table;" Could be possible to have some kind of memoization as a general option for any sqlite functions ? Cheers ! _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users