summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoufal Ibrahim <noufal@nibrahim.net.in>2013-12-05 18:21:49 +0530
committerNoufal Ibrahim <noufal@nibrahim.net.in>2013-12-10 01:07:36 +0530
commit4eb8437f61139179a18f63168ff9987acfd0f3ca (patch)
treece7ab115f704dccad0e434472d543ca54ad28fe7
parent96359c6f3e81f55275666e94d9b9cadb7a1d923e (diff)
downloadsqlalchemy-4eb8437f61139179a18f63168ff9987acfd0f3ca.tar.gz
Updates documentation for tsvector type.
Signed-off-by: Noufal Ibrahim <noufal@nibrahim.net.in>
-rw-r--r--doc/build/dialects/postgresql.rst4
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py27
2 files changed, 29 insertions, 2 deletions
diff --git a/doc/build/dialects/postgresql.rst b/doc/build/dialects/postgresql.rst
index c5a28bacf..4fbbf52b6 100644
--- a/doc/build/dialects/postgresql.rst
+++ b/doc/build/dialects/postgresql.rst
@@ -17,7 +17,7 @@ they originate from :mod:`sqlalchemy.types` or from the local dialect::
DOUBLE_PRECISION, ENUM, FLOAT, HSTORE, INET, INTEGER, \
INTERVAL, MACADDR, NUMERIC, REAL, SMALLINT, TEXT, TIME, \
TIMESTAMP, UUID, VARCHAR, INT4RANGE, INT8RANGE, NUMRANGE, \
- DATERANGE, TSRANGE, TSTZRANGE
+ DATERANGE, TSRANGE, TSTZRANGE, TSVECTOR
Types which are specific to PostgreSQL, or have PostgreSQL-specific
construction arguments, are as follows:
@@ -77,6 +77,8 @@ construction arguments, are as follows:
.. autoclass:: REAL
:members: __init__
+.. autoclass:: TSVECTOR
+ :members: __init__
.. autoclass:: UUID
:members: __init__
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index 5ef16c412..ed8a8c90f 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -369,6 +369,31 @@ class UUID(sqltypes.TypeEngine):
PGUuid = UUID
class TSVECTOR(sqltypes.TypeEngine):
+ """The TSVECTOR type implements the Postgresql text search type
+ TSVECTOR.
+
+ It can be used to do full text queries on natural language
+ *documents*.
+
+ Search queries are performed using the ``@@`` operator in
+ postgresql. This is made available with the ``match`` method
+ available on the column.
+
+ This means that if you have a table ``Example`` with a column
+ ``text`` of type ``TSVECTOR``, you can create a search clause like
+ so
+
+ ::
+
+ Example.text.match("search string")
+
+ which will be compiled to
+
+ ::
+
+ text @@ to_tsquery('search string')
+
+ """
__visit_name__ = 'TSVECTOR'
@@ -1169,7 +1194,7 @@ class PGDDLCompiler(compiler.DDLCompiler):
class PGTypeCompiler(compiler.GenericTypeCompiler):
def visit_TSVECTOR(self, type):
return "TSVECTOR"
-
+
def visit_INET(self, type_):
return "INET"