September 26, 2024: PostgreSQL 17 Released!
Unsupported versions: 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

Chapter 10. Lisp Programming Interface

pg.el is a socket-level interface to Postgres for emacs.

Author: Written by Eric Marsden on 1999-07-21

pg.el is a socket-level interface to Postgres for emacs (text editor extraordinaire). The module is capable of type coercions from a range of SQL types to the equivalent Emacs Lisp type. It currently supports neither crypt or Kerberos authentication, nor large objects.

The code (version 0.2) is available under GNU GPL from Eric Marsden

Changes since last release:

  • now works with XEmacs (tested with Emacs 19.34 & 20.2, and XEmacs 20.4)

  • added functions to provide database metainformation (list of databases, of tables, of columns)

  • arguments to `pg:result' are now :keywords

  • MULE-resistant

  • more self-testing code

Please note that this is a programmer's API, and doesn't provide any form of user interface. Example:

 (defun demo ()
    (interactive)
    (let* ((conn (pg:connect "template1" "postgres" "postgres"))
           (res (pg:exec conn "SELECT * from scshdemo WHERE a = 42")))
      (message "status is %s"   (pg:result res :status))
      (message "metadata is %s" (pg:result res :attributes))
      (message "data is %s"     (pg:result res :tuples))
      (pg:disconnect conn)))