From f97a5e2c9d275286386edd6f13046959d9e6efd1 Mon Sep 17 00:00:00 2001 From: Jonathan Abbey Date: Sun, 21 Sep 2014 01:38:46 -0500 Subject: [PATCH 1/2] Hacked in TYPE for postgres alter column --- src/lobos/backends/postgresql.clj | 3 ++- src/lobos/compiler.clj | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lobos/backends/postgresql.clj b/src/lobos/backends/postgresql.clj index 9a0d809..36b37db 100644 --- a/src/lobos/backends/postgresql.clj +++ b/src/lobos/backends/postgresql.clj @@ -64,13 +64,14 @@ (defmethod compile [:postgresql DataTypeClause] [expression] - (let [{:keys [dtype args options]} expression + (let [{:keys [dtype args options alter]} expression {:keys [time-zone]} options dtype (first (replace compiler-data-type-aliases [dtype])) args (if (#{:bytea :text} dtype) [] args)] (unsupported (#{:binary :varbinary} dtype) "Use blob instead.") (join \space + (when alter "TYPE") (str (as-sql-keyword dtype) (as-list args)) (when time-zone "WITH TIME ZONE")))) diff --git a/src/lobos/compiler.clj b/src/lobos/compiler.clj index 12ea669..1256342 100644 --- a/src/lobos/compiler.clj +++ b/src/lobos/compiler.clj @@ -311,7 +311,7 @@ (defmethod compile [::standard AlterModifyDataTypeAndOptionsAction] [action] (let [{:keys [db-spec element]} action] - (str "ALTER COLUMN " (compile element)))) + (str "ALTER COLUMN " (compile (assoc element :alter :alter))))) (defmethod compile [::standard AlterModifyDefaultAction] [action] From 5489759aee734299f6eb31f63f7c49d1045118d5 Mon Sep 17 00:00:00 2001 From: Jonathan Abbey Date: Sun, 21 Sep 2014 01:57:45 -0500 Subject: [PATCH 2/2] Fixed placement of TYPE keyword for postgres alter column --- src/lobos/backends/postgresql.clj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lobos/backends/postgresql.clj b/src/lobos/backends/postgresql.clj index 36b37db..4b86c4e 100644 --- a/src/lobos/backends/postgresql.clj +++ b/src/lobos/backends/postgresql.clj @@ -64,23 +64,23 @@ (defmethod compile [:postgresql DataTypeClause] [expression] - (let [{:keys [dtype args options alter]} expression + (let [{:keys [dtype args options]} expression {:keys [time-zone]} options dtype (first (replace compiler-data-type-aliases [dtype])) args (if (#{:bytea :text} dtype) [] args)] (unsupported (#{:binary :varbinary} dtype) "Use blob instead.") (join \space - (when alter "TYPE") (str (as-sql-keyword dtype) (as-list args)) (when time-zone "WITH TIME ZONE")))) (defmethod compile [:postgresql ColumnDefinition] [definition] (let [{:keys [db-spec cname data-type default - auto-inc not-null others]} definition] + auto-inc not-null others alter]} definition] (apply join \space (as-identifier db-spec cname) + (when alter "TYPE") (if auto-inc (if (= :bigint (:dtype data-type)) "BIGSERIAL"