X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fsequences.lisp;fp=sql%2Fsequences.lisp;h=3e9a2e4816f4440d6a34bcefff481ac48381268f;hp=5800e596700877d4ddf79e71de04cb829b5053ea;hb=dc107d34212597ed1272cfa21138d384e71b00d2;hpb=8535462c3fdef182cd226770e6e07160f380acac diff --git a/sql/sequences.lisp b/sql/sequences.lisp index 5800e59..3e9a2e4 100644 --- a/sql/sequences.lisp +++ b/sql/sequences.lisp @@ -21,15 +21,10 @@ ;;; Sequence functions (defun %sequence-name-to-table (sequence-name database) - (concatenate 'string - (convert-to-db-default-case "_CLSQL_SEQ_" database) - (sql-escape sequence-name))) - -(defun %table-name-to-sequence-name (table-name database) - (and (>= (length table-name) 11) - (string-equal (subseq table-name 0 11) - (convert-to-db-default-case "_CLSQL_SEQ_" database)) - (subseq table-name 11))) + (escaped + (combine-database-identifiers + (list sequence-name 'CLSQL_SEQ) + database))) (defmethod database-create-sequence (sequence-name database) (let ((table-name (%sequence-name-to-table sequence-name database))) @@ -47,11 +42,17 @@ (concatenate 'string "DROP TABLE " (%sequence-name-to-table sequence-name database)) database)) +(defun %table-name-to-sequence-name (table-name) + ;; if this was escaped it still should be, + ;; if it wasnt it still shouldnt-be + (check-type table-name string) + (replace-all table-name "_CLSQL_SEQ" "")) + (defmethod database-list-sequences (database &key (owner nil)) (declare (ignore owner)) (mapcan #'(lambda (s) - (let ((sn (%table-name-to-sequence-name s database))) - (and sn (list sn)))) + (and (search "_CLSQL_SEQ" s :test #'string-equal) + (list (%table-name-to-sequence-name s)))) (database-list-tables-and-sequences database))) (defmethod database-set-sequence-position (sequence-name position database)