mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-28 03:26:01 -04:00
2104d0ba2d
the indexing. this is for more natural operation. - also add cast() to the JSON expression to complement astext. This integrates the CAST call which will be needed frequently. Part of [ticket:2687]. - it's a little unclear how more advanced unicode attribute-access is going to go, some quick attempts at testing yielded strange error messages from psycopg2. - do other cross linking as mentioned in [ticket:2687].
171 lines
3.2 KiB
ReStructuredText
171 lines
3.2 KiB
ReStructuredText
.. _postgresql_toplevel:
|
|
|
|
PostgreSQL
|
|
==========
|
|
|
|
.. automodule:: sqlalchemy.dialects.postgresql.base
|
|
|
|
PostgreSQL Data Types
|
|
------------------------
|
|
|
|
As with all SQLAlchemy dialects, all UPPERCASE types that are known to be
|
|
valid with Postgresql are importable from the top level dialect, whether
|
|
they originate from :mod:`sqlalchemy.types` or from the local dialect::
|
|
|
|
from sqlalchemy.dialects.postgresql import \
|
|
ARRAY, BIGINT, BIT, BOOLEAN, BYTEA, CHAR, CIDR, DATE, \
|
|
DOUBLE_PRECISION, ENUM, FLOAT, HSTORE, INET, INTEGER, \
|
|
INTERVAL, JSON, MACADDR, NUMERIC, REAL, SMALLINT, TEXT, TIME, \
|
|
TIMESTAMP, UUID, VARCHAR, INT4RANGE, INT8RANGE, NUMRANGE, \
|
|
DATERANGE, TSRANGE, TSTZRANGE, TSVECTOR
|
|
|
|
Types which are specific to PostgreSQL, or have PostgreSQL-specific
|
|
construction arguments, are as follows:
|
|
|
|
.. currentmodule:: sqlalchemy.dialects.postgresql
|
|
|
|
.. autoclass:: array
|
|
|
|
.. autoclass:: ARRAY
|
|
:members: __init__, Comparator
|
|
|
|
|
|
.. autoclass:: Any
|
|
|
|
.. autoclass:: All
|
|
|
|
.. autoclass:: BIT
|
|
:members: __init__
|
|
|
|
|
|
.. autoclass:: BYTEA
|
|
:members: __init__
|
|
|
|
|
|
.. autoclass:: CIDR
|
|
:members: __init__
|
|
|
|
|
|
.. autoclass:: DOUBLE_PRECISION
|
|
:members: __init__
|
|
|
|
|
|
.. autoclass:: ENUM
|
|
:members: __init__, create, drop
|
|
|
|
|
|
.. autoclass:: HSTORE
|
|
:members:
|
|
|
|
|
|
.. autoclass:: hstore
|
|
:members:
|
|
|
|
|
|
.. autoclass:: INET
|
|
:members: __init__
|
|
|
|
|
|
.. autoclass:: INTERVAL
|
|
:members: __init__
|
|
|
|
.. autoclass:: JSON
|
|
:members:
|
|
|
|
.. autoclass:: JSONElement
|
|
:members:
|
|
|
|
.. autoclass:: MACADDR
|
|
:members: __init__
|
|
|
|
|
|
.. autoclass:: REAL
|
|
:members: __init__
|
|
|
|
.. autoclass:: TSVECTOR
|
|
:members: __init__
|
|
|
|
.. autoclass:: UUID
|
|
:members: __init__
|
|
|
|
|
|
Range Types
|
|
~~~~~~~~~~~
|
|
|
|
The new range column types founds in PostgreSQL 9.2 onwards are
|
|
catered for by the following types:
|
|
|
|
.. autoclass:: INT4RANGE
|
|
|
|
|
|
.. autoclass:: INT8RANGE
|
|
|
|
|
|
.. autoclass:: NUMRANGE
|
|
|
|
|
|
.. autoclass:: DATERANGE
|
|
|
|
|
|
.. autoclass:: TSRANGE
|
|
|
|
|
|
.. autoclass:: TSTZRANGE
|
|
|
|
|
|
The types above get most of their functionality from the following
|
|
mixin:
|
|
|
|
.. autoclass:: sqlalchemy.dialects.postgresql.ranges.RangeOperators
|
|
:members:
|
|
|
|
.. warning::
|
|
|
|
The range type DDL support should work with any Postgres DBAPI
|
|
driver, however the data types returned may vary. If you are using
|
|
``psycopg2``, it's recommended to upgrade to version 2.5 or later
|
|
before using these column types.
|
|
|
|
|
|
PostgreSQL Constraint Types
|
|
---------------------------
|
|
|
|
SQLAlchemy supports Postgresql EXCLUDE constraints via the
|
|
:class:`ExcludeConstraint` class:
|
|
|
|
.. autoclass:: ExcludeConstraint
|
|
:members: __init__
|
|
|
|
For example::
|
|
|
|
from sqlalchemy.dialects.postgresql import ExcludeConstraint, TSRANGE
|
|
|
|
class RoomBookings(Base):
|
|
|
|
room = Column(Integer(), primary_key=True)
|
|
during = Column(TSRANGE())
|
|
|
|
__table_args__ = (
|
|
ExcludeConstraint(('room', '='), ('during', '&&')),
|
|
)
|
|
|
|
psycopg2
|
|
--------------
|
|
|
|
.. automodule:: sqlalchemy.dialects.postgresql.psycopg2
|
|
|
|
py-postgresql
|
|
--------------------
|
|
|
|
.. automodule:: sqlalchemy.dialects.postgresql.pypostgresql
|
|
|
|
pg8000
|
|
--------------
|
|
|
|
.. automodule:: sqlalchemy.dialects.postgresql.pg8000
|
|
|
|
zxjdbc
|
|
--------------
|
|
|
|
.. automodule:: sqlalchemy.dialects.postgresql.zxjdbc
|