hstmt
+null-ptr+ 0
+null-ptr+ 0
- table-cs (length table) ;;$SQL_NTS
+ table-cs $SQL_NTS
(if unique $SQL_INDEX_UNIQUE $SQL_INDEX_ALL)
(if ensure $SQL_ENSURE $SQL_QUICK)))))
(defmethod database-list-table-indexes (table (database odbc-database)
&key (owner nil))
(declare (ignore owner))
+ (if (eq :mysql (database-odbc-db-type database))
+ (mysql-workaround-bug-list-table-indexes table database)
+ (odbc-list-table-indexes table database)))
+
+(defun mysql-workaround-bug-list-table-indexes (table database)
+ ;; MyODBC 3.52 does not properly return results from SQLStatistics
+ (do ((results nil)
+ (rows (database-query
+ (format nil "SHOW INDEX FROM ~A" (string-upcase table))
+ database nil)
+ (cdr rows)))
+ ((null rows) (nreverse results))
+ (let ((col (nth 2 (car rows))))
+ (unless (find col results :test #'string-equal)
+ (push col results)))))
+
+(defun odbc-list-table-indexes (table database)
(multiple-value-bind (rows col-names)
(odbc-dbi:list-table-indexes
(string-downcase table)
Package: cl-sql-aodbc
Architecture: all
-Depends: cl-sql-base (>= ${Source-Version})
+Depends: cl-sql-base (>= ${Source-Version}), cl-sql-mysql, cl-sql-postgresql
Provides: cl-sql-backend
Suggests: acl-pro-installer
Description: CLSQL database backend, AODBC
Package: cl-sql-odbc
Architecture: all
-Depends: cl-sql-base (>= ${Source-Version}),unixodbc-dev
+Depends: cl-sql-base (>= ${Source-Version}), unixodbc-dev, cl-sql-mysql, cl-sql-postgresql
Provides: cl-sql-backend
Suggests: acl-pro-installer
Description: CLSQL database backend, ODBC
(unless (index-exists-p index-name :database database)
(return-from drop-index)))
(:error t))
- (unless (db-type-use-column-on-drop-index? (database-underlying-type database))
+ (unless (db-type-use-column-on-drop-index?
+ (database-underlying-type database))
(setq on nil))
(execute-command (format nil "DROP INDEX ~A~A" index-name
(if (null on) ""