From d966d37579568b900cbd8ee2e961e3cb32d55de4 Mon Sep 17 00:00:00 2001 From: Adrian Vondendriesch Date: Mon, 12 Jun 2017 21:42:35 +0200 Subject: [PATCH] MSSQL: Fix Default value translation for getdate() (#576) (#577) Currently the default value getdate() is replaced by 'now' which creates statements like: CREATE TABLE ... created timestamp 'now' ... which leads to table definitions like: default '2017-06-12 17:54:04.890129'::timestamp without time zone This is because 'now' is evaluated when creating the table. This commit fixes the issue by using CURRENT_TIMESTAMP as default instead of 'now'. --- src/sources/mssql/mssql-schema.lisp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sources/mssql/mssql-schema.lisp b/src/sources/mssql/mssql-schema.lisp index 52073b0..86f8411 100644 --- a/src/sources/mssql/mssql-schema.lisp +++ b/src/sources/mssql/mssql-schema.lisp @@ -93,7 +93,7 @@ CASE WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) = 'newid()' THEN 'generate_uuid_v4()' WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) LIKE 'convert(%varchar%,getdate(),%)' THEN 'today' - WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) = 'getdate()' THEN 'now' + WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) = 'getdate()' THEN 'CURRENT_TIMESTAMP' WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) LIKE '''%''' THEN SUBSTRING(c.column_default,4,len(c.column_default)-6) ELSE SUBSTRING(c.column_default,3,len(c.column_default)-4) END @@ -101,7 +101,7 @@ CASE WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) = 'newid()' THEN 'generate_uuid_v4()' WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) LIKE 'convert(%varchar%,getdate(),%)' THEN 'today' - WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) = 'getdate()' THEN 'now' + WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) = 'getdate()' THEN 'CURRENT_TIMESTAMP' WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) LIKE '''%''' THEN SUBSTRING(c.column_default,3,len(c.column_default)-4) ELSE SUBSTRING(c.column_default,2,len(c.column_default)-2) END