Function: sql-postgres-completion-object
sql-postgres-completion-object is a byte-compiled function defined in
sql.el.gz.
Signature
(sql-postgres-completion-object SQLBUF SCHEMA)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/sql.el.gz
(defun sql-postgres-completion-object (sqlbuf schema)
(sql-redirect sqlbuf "\\t on")
(let ((aligned
(string= "aligned"
(car (sql-redirect-value
sqlbuf "\\a"
"Output format is \\(.*\\)[.]$" 1)))))
(when aligned
(sql-redirect sqlbuf "\\a"))
(let* ((fs (or (car (sql-redirect-value
sqlbuf "\\f" "Field separator is \"\\(.\\)[.]$" 1))
"|"))
(re (concat "^\\([^" fs "]*\\)" fs "\\([^" fs "]*\\)"
fs "[^" fs "]*" fs "[^" fs "]*$"))
(cl (if (not schema)
(sql-redirect-value sqlbuf "\\d" re '(1 2))
(append (sql-redirect-value
sqlbuf (format "\\dt %s.*" schema) re '(1 2))
(sql-redirect-value
sqlbuf (format "\\dv %s.*" schema) re '(1 2))
(sql-redirect-value
sqlbuf (format "\\ds %s.*" schema) re '(1 2))))))
;; Restore tuples and alignment to what they were.
(sql-redirect sqlbuf "\\t off")
(when (not aligned)
(sql-redirect sqlbuf "\\a"))
;; Return the list of table names (public schema name can be omitted)
(mapcar (lambda (tbl)
(if (string= (car tbl) "public")
(format "\"%s\"" (cadr tbl))
(format "\"%s\".\"%s\"" (car tbl) (cadr tbl))))
cl))))