Antony's work includes a client library change that lets perl/Java/or whatever run SQL on the THD. The parser was made reentrant, you connect with null credential and get current THD.
Sent from my iPhone > On Oct 13, 2016, at 1:01 PM, Andrew Hutchings <and...@linuxjedi.co.uk> wrote: > > > >> On 13/10/16 16:53, Vladislav Vaintroub wrote: >>> On 13.10.2016 17:26, Andrew Hutchings wrote: >>> >>> Whilst I agree it would be a nice feature and something I've heard for >>> years, the implementation would likely be more complex than it seems. >>> >>> For starters you have to consider the possibility of a procedure >>> crashing and taking the whole daemon with it. You would likely need to >>> fork a small worker process pool and have some kind of shared memory >>> or socket communications for safety. In addition the implementation >>> would have to be extremely careful not to add any potential security >>> hole due to a zero-day in PHP or some bad input filtering for example. >>> >>> I'm not saying it is impossible, but it will likely be a lot of work >>> to get right and the APIs would need to be carefully thought out. >>> >>> So the question becomes: is it worth spending time developing this >>> over another feature? Or is it something that could be better >>> implemented safely in another layer, such as in a database proxy? >>> >>> Kind Regards >>> Andrew >> >> I think crashing is much easier if one runs native C UDFs, or any kind >> of natively compiled plugins. > > I don't know, I've seen some horrid things happen with interpreted languages > before. > >> For external languages I think an important aspect is often overlooked. >> Namely, how to would access data. You can create a new JDBC connection, >> but it is likely not what you want to do. You just want to run a SELECT >> from the same session you're in, just like you do in SQL stored >> procedures. Exactly this requires a large amount of work in the >> connectors. It is not just running a JVM inside the server. There is >> no API for data access from the running session inside the server, not >> even for C. > > I was envisioning a tighter coupling than using connectors in the above. > Opening up the thd to a new process via a new API and blocking the client > whilst doing so. I hadn't really thought though the mechanics of it too much > though. But you are right, either way it is a lot of work. > > Again, I think this kind of thing is better suited to the application or > proxy layers. Especially with things such as MicroServices and Serverless > around which are designed to break up the logic like this (I'm not a fan of > the buzzword though). > > Kind Regards > -- > Andrew Hutchings - LinuxJedi - http://www.linuxjedi.co.uk/ > > _______________________________________________ > Mailing list: https://launchpad.net/~maria-discuss > Post to : maria-discuss@lists.launchpad.net > Unsubscribe : https://launchpad.net/~maria-discuss > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp