Skip to content

Commit c14e817

Browse files
authored
render func.now() as CURRENT_TIMESTAMP (snowflakedb#396)
1 parent 63e5e20 commit c14e817

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/snowflake/sqlalchemy/base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ class SnowflakeCompiler(compiler.SQLCompiler):
154154
def visit_sequence(self, sequence, **kw):
155155
return self.dialect.identifier_preparer.format_sequence(sequence) + ".nextval"
156156

157+
def visit_now_func(self, now, **kw):
158+
return "CURRENT_TIMESTAMP"
159+
157160
def visit_merge_into(self, merge_into, **kw):
158161
clauses = " ".join(
159162
clause._compiler_dispatch(self, **kw) for clause in merge_into.clauses

tests/test_compiler.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright (c) 2012-2022 Snowflake Computing Inc. All rights reserved.
33
#
44

5-
from sqlalchemy import Integer, String, and_, select
5+
from sqlalchemy import Integer, String, and_, func, select
66
from sqlalchemy.schema import DropColumnComment, DropTableComment
77
from sqlalchemy.sql import column, quoted_name, table
88
from sqlalchemy.testing import AssertsCompiledSQL
@@ -23,6 +23,14 @@
2323
class TestSnowflakeCompiler(AssertsCompiledSQL):
2424
__dialect__ = "snowflake"
2525

26+
def test_now_func(self):
27+
statement = select(func.now())
28+
self.assert_compile(
29+
statement,
30+
"SELECT CURRENT_TIMESTAMP AS now_1",
31+
dialect="snowflake",
32+
)
33+
2634
def test_multi_table_delete(self):
2735
statement = table1.delete().where(table1.c.id == table2.c.id)
2836
self.assert_compile(

0 commit comments

Comments
 (0)