On Saturday, February 15th, 2025 at 4:25 PM, Ihor Radchenko 
<yanta...@posteo.net> wrote:

> Ihor Radchenko yanta...@posteo.net writes:
> 
> > May you please post the patch on Emacs bug tracker? (M-x
> > submit-emacs-patch) and X-Debbugs-CC me?
> > That way, we get the Emacs maintainers involved into the discussion.
> 
> 
> The patch is in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76025
> 
> There are no major objections to the patch other than the maintainer
> being interested to coordinate ob-sql improvements and sql.el
> changes.
> 
> I am CCing the feature request thread so that we can discuss everything
> together.
> 
> May you please update your latest patch for ob-sql.el, converting it
> into (1) patch to sql.el; (2) patch for ob-sql.el that assumes changes
> to sql.el?
> 
> --
> Ihor Radchenko // yantar92,

I'm sorry to be late to this party, but this is the first real description of 
what features were needed from sql.el. 

Based on what I'm seeing, I think the feature you want is already present (but 
can be made simpler for you to use). And the support for the empty name sqlite 
database is similar to in-memory databases that I have in a local development 
branch that hasn't been merged/pushed.

The `sql-connect' machinery suppresses prompts for parameters in the connection 
alist already. There are two ways to take advantage of that: install connection 
parameters in `sql-connection-alist' with an ob-sql specific connection name 
and then `sql-connect' to it, or allow `sql-connect' to be called with a 
complete connection alist entry in place of the connection name. I think the 
latter option is a better choice, and easy to incorporate into the code; the 
former option would be a total ob-sql solution. Id be cautious modifying 
`sql-product-interactive' directly since so much passes thru there and 
`sql-connect' already implements the logic you want around it.

For sqlite, I've added support for an in-memory database using the name 
":memory:" in my local repo. Obviously an empty name indicates a temporary 
database which may be in-memory, or if larger, in temporary disk space. I'll 
take a look at adding support for temporary databases but I'm not a huge fan of 
an empty database name option. Maybe support ":tempdb:" (or similar)?

I am looking to cleanup sql.el (some of it's code is 20+ years old) and has 
some very broken pieces in it. Changing it to simplify support from treesit and 
eglot exposes rough edges that will break things for existing users. 
`sql-connect' is the intended interface for programmatic invocation of 
SQL-interactive processes.

--
mich...@mauger.com // FSF and SFConservancy // GNU Emacs sql.el maintainer

Reply via email to