import datetime
import re
-from ... import exc
-from ... import processors
-from ... import schema as sa_schema
-from ... import sql
-from ... import types as sqltypes
-from ... import util
-from ...engine import default
-from ...engine import reflection
-from ...sql import compiler
+from sqlalchemy import exc
+from sqlalchemy import processors
+from sqlalchemy import schema as sa_schema
+from sqlalchemy import sql
+from sqlalchemy import types as sqltypes
+from sqlalchemy import util
+from sqlalchemy.engine import default
+from sqlalchemy.engine import reflection
+from sqlalchemy.sql import compiler
+from sqlalchemy.sql import functions
from ...types import BLOB # noqa
from ...types import BOOLEAN # noqa
from ...types import CHAR # noqa
colspec = self.preparer.format_column(column) + " " + coltype
default = self.get_column_default_string(column)
if default is not None:
+ if isinstance(column.server_default.arg, functions.Function):
+ default = '(' + default + ')'
colspec += " DEFAULT " + default
if not column.nullable:
"""SQLite-specific tests."""
import datetime
import os
+import sqlite3
from sqlalchemy import and_
from sqlalchemy import bindparam
[(False,), (True,)],
)
+ @testing.provide_metadata
+ def test_function_default(self):
+ t = Table(
+ "t",
+ self.metadata,
+ Column("x", String, server_default=func.sqlite_version()),
+ )
+ t.create(testing.db)
+ testing.db.execute(t.insert())
+ testing.db.execute(t.insert().values(x="Test"))
+ eq_(
+ testing.db.execute(t.select().order_by(t.c.x)).fetchall(),
+ [(sqlite3.sqlite_version,), ("Test",)],
+ )
+
def test_old_style_default(self):
"""test non-quoted integer value on older sqlite pragma"""