X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-odbc%2Fodbc-dbi.lisp;h=f9e8493f55a7a78ad762344aa543628b93ac220a;hb=db9892632e6eb7869aea7a94c16b523a82de1501;hp=ff96c213b3ba113e635b4befd9bef4099a7037ca;hpb=a9f57540c378329f627b5b3bd2a2991689638331;p=clsql.git diff --git a/db-odbc/odbc-dbi.lisp b/db-odbc/odbc-dbi.lisp index ff96c21..f9e8493 100644 --- a/db-odbc/odbc-dbi.lisp +++ b/db-odbc/odbc-dbi.lisp @@ -33,6 +33,7 @@ #:list-all-data-sources #:list-all-database-tables #:list-all-table-columns + #:list-table-indexes #:loop-over-results #:prepare-sql #:rr-sql @@ -180,6 +181,20 @@ the query against." )) (coerce (column-names query) 'list)))) (db-close-query query)))) +(defun list-table-indexes (table &key db unique hstmt) + (declare (ignore hstmt)) + (let ((query (get-free-query db))) + (unwind-protect + (progn + (with-slots (hstmt) query + (unless hstmt (setf hstmt (%new-statement-handle (hdbc db)))) + (%table-statistics table hstmt :unique unique) + (%initialize-query query nil nil) + (values + (db-fetch-query-results query) + (coerce (column-names query) 'list)))) + (db-close-query query)))) + (defun list-all-table-columns (table &key db hstmt) (declare (ignore hstmt)) (db-describe-columns db "" "" table ""))