From 2aae37f93b413176d683259e0bc712728af931db Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 11 Jul 2021 19:40:59 -0400 Subject: represent tablesample.sampling as FunctionElement in all cases Fixed regression where the :func:`_sql.tablesample` construct would fail to be executable when constructed given a floating-point sampling value not embedded within a SQL function. Fixes: #6735 Change-Id: I557bcd4bdbffc4329ad69d5659ba99b1c8deb554 --- lib/sqlalchemy/sql/selectable.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib/sqlalchemy/sql') diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index 235c74ea7..42cb6e5ae 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -1970,18 +1970,18 @@ class TableSample(AliasedReturnsRows): sampling, name=name, seed=seed ) + @util.preload_module("sqlalchemy.sql.functions") def _init(self, selectable, sampling, name=None, seed=None): + functions = util.preloaded.sql_functions + if not isinstance(sampling, functions.Function): + sampling = functions.func.system(sampling) + self.sampling = sampling self.seed = seed super(TableSample, self)._init(selectable, name=name) - @util.preload_module("sqlalchemy.sql.functions") def _get_method(self): - functions = util.preloaded.sql_functions - if isinstance(self.sampling, functions.Function): - return self.sampling - else: - return functions.func.system(self.sampling) + return self.sampling class CTE( -- cgit v1.2.1