I'm writing a patch which try to set ~sql-product~ when editing sql src block.
Here is the code: #+begin_src emacs-lisp (defun org-babel-edit-prep:sql (info) "Set `sql-product' in Org edit buffer. Set `sql-product' in Org edit buffer according to the corresponding :engine source block header argument." (let ((product (cdr (assq :engine (nth 2 info))))) (sql-set-product product))) #+end_src But =ob-sql.el= source code hardcoded ~:engine~ names which some are not matched with ~sql-product-alist~ in =sql-mode=. For example =:engine postgresql=, but it's ~postgres~ in ~sql-product-alist~. For now, I have two solutions: 1. write an adapter function which translate ~:engine~ header argument value into ~sql-product-alist~ product names. This is a safe way, which will not incompatiable with old Org document. 2. modify source code hardcoded ~:engine~ names (also need to update Org document), this has a minor advantage is *consistance*. WDYT? BTW, about writing an adapter function to translate names. I want to hear some suggestion about use which method. Writing an hash map or assoc list etc? Regards -- [ stardiviner ] I try to make every word tell the meaning what I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3