Files
@ 3c1928b5b569
Branch filter:
Location: rattail-project-contrib/sqlalchemy-pervasive/sqlalchemy_pervasive/base.py - annotation
3c1928b5b569
2.0 KiB
text/x-python
Update changelog
33d3f301a3d6 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 33d3f301a3d6 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 465060104188 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 465060104188 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 465060104188 465060104188 465060104188 465060104188 465060104188 465060104188 465060104188 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 b48e6cbb8d64 | # -*- coding: utf-8; -*-
################################################################################
#
# sqlalchemy-pervasive -- SQLAlchemy Dialect for Pervasive PSQL
# Copyright © 2013-2021 Sacramento Natural Foods Co-op, Inc
#
# This file is part of sqlalchemy-pervasive.
#
# sqlalchemy-pervasive is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# sqlalchemy-pervasive is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# sqlalchemy-pervasive. If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
"""
Support for the Pervasive PSQL database engine.
"""
from sqlalchemy.sql.compiler import SQLCompiler
from sqlalchemy.engine.default import DefaultDialect
from sqlalchemy.exc import InvalidRequestError
class PervasiveCompiler(SQLCompiler):
"""
Custom SQL statement compiler for Pervasive PSQL.
"""
def get_select_precolumns(self, select):
# This logic was copied from the ``sqlalchemy-access`` dialect.
s = 'DISTINCT ' if select._distinct else ''
if select._limit:
s += 'TOP {0} '.format(select._limit)
if select._offset:
raise InvalidRequestError(
"Pervasive PSQL does not support limit with an offset")
return s
def limit_clause(self, select):
return ''
def visit_true(self, expr, **kw):
return '1'
def visit_false(self, expr, **kw):
return '0'
class PervasiveDialect(DefaultDialect):
name = 'pervasive'
statement_compiler = PervasiveCompiler
|