Re: [sqlite] sqlite3_get_auxdata() defect

2017-11-27 Thread Stadin, Benjamin
Hi Clemens, Even though the documentation makes no guaranty about the lifetime, it is was also for me rather useless. I need to do some spatial calculations in my custom SQL function, and use the proj4 projection library within it. This SQL function is called very often, and having to

Re: [sqlite] sqlite3_get_auxdata() defect

2017-11-27 Thread petern
Clemens, Indeed. It doesn't work as a basis for reliable performance improvement of user code. Basically, that API is practically useless except for the narrow in-house use case for which it was created. And yes, I already make heavy use of the natural aggregate cache functionality but for the

Re: [sqlite] sqlite3_get_auxdata() defect

2017-11-27 Thread Clemens Ladisch
petern wrote: > Evidently the sqlite3_get_auxdata() API is very buggy. The documentation says that | under some circumstances the associated metadata may be preserved. You have found circumstances where the metadata is not preserved. This is not a bug. I can see that you are unhappy, but that

Re: [sqlite] sqlite3_get_auxdata() defect

2017-11-27 Thread petern
Clemens. Here it that example again, but with the argument factored out so there is no question about value or memory location of the cache argument target. Remarkably, caching doesn't work at all when one does this! sqlite> WITH arg(x) AS (SELECT 'x'), t(id) AS (VALUES(1),(2)) SELECT

Re: [sqlite] sqlite3_get_auxdata() defect

2017-11-27 Thread petern
>The auxdata is intended as a cache, so it must depend only on the >argument value, not on any other state. I'm not following. Where is the argument different in my example. The zeroth argument is always 'x'. Are you saying the argument has to be the same memory location as well as the same

Re: [sqlite] sqlite3_get_auxdata() defect

2017-11-27 Thread Clemens Ladisch
petern wrote: > So, at the very least, the documentation at > https://sqlite.org/c3ref/get_auxdata.html is woefully incomplete because: > > 1. The identical function in a different column of the same SELECT has a > separate meta-data cache. This is an implementation detail of the current version.