1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
from sqlalchemy.testing import fixtures
from sqlalchemy.testing import AssertsCompiledSQL, assert_raises_message
from sqlalchemy.sql import select, func, text
from sqlalchemy.engine import default
from sqlalchemy import exc
from sqlalchemy import Table, Integer, String, Column
from sqlalchemy import tablesample
class TableSampleTest(fixtures.TablesTest, AssertsCompiledSQL):
__dialect__ = default.DefaultDialect(supports_native_boolean=True)
run_setup_bind = None
run_create_tables = None
@classmethod
def define_tables(cls, metadata):
Table(
"people",
metadata,
Column("people_id", Integer, primary_key=True),
Column("age", Integer),
Column("name", String(30)),
)
def test_standalone(self):
table1 = self.tables.people
# no special alias handling even though clause is not in the
# context of a FROM clause
self.assert_compile(
tablesample(table1, 1, name="alias"),
"people AS alias TABLESAMPLE system(:system_1)",
)
self.assert_compile(
table1.tablesample(1, name="alias"),
"people AS alias TABLESAMPLE system(:system_1)",
)
self.assert_compile(
tablesample(
table1, func.bernoulli(1), name="alias", seed=func.random()
),
"people AS alias TABLESAMPLE bernoulli(:bernoulli_1) "
"REPEATABLE (random())",
)
def test_select_from(self):
table1 = self.tables.people
self.assert_compile(
select([table1.tablesample(text("1"), name="alias").c.people_id]),
"SELECT alias.people_id FROM "
"people AS alias TABLESAMPLE system(1)",
)
|