sqlalchemy/dialects/postgresql/__init__.py:
- Added import references to JSON class

 sqlalchemy/dialects/postgresql/base.py:
 - Added visitor method for JSON class

 sqlalchemy/dialects/postgresql/pgjson (new):
 - JSON class, supports automatic serialization and deserialization of json data, as well as basic json operators.
Merge branch 'rel_0_9' of https://github.com/nathan-rice/sqlalchemy into rel_0_9
 sqlalchemy/dialects/postgresql/pgjson:
 - Fixed reference to HSTORE
 - Corrected spelling of SQLAlchemy

 sqlalchemy/dialects/postgresql/psycopg2:
 - Added psycopg2 specific wrapper type for JSON which uses inherent json deserialization facilities
 - Added code to detect and utilize the JSON wrapper if psycopg2 >= 2.5

test/dialect/postgresql/test_types:
- removed reference to use_native_hstore
 sqlalchemy/dialects/postgresql/psycopg2:
 - Removed unneeded import of psycopg2.extensions
 sqlalchemy/dialects/postgresql/pgjson:
 - Added support for additional operators
 - Made return as json default (rather than text)
 sqlalchemy/dialects/postgresql/pgjson:
 - Updated documentation for JSON class
Merge branch 'issue_2581' of github.com:nathan-rice/sqlalchemy into pg_json
- enhance the exclusions system to support database versions within the __only_on__ attribute
- rework JSON expressions to be based off __getitem__ exclusively
- add support for "standalone" JSON objects; this involves getting CAST
to upgrade the given type of a bound parameter.  should add a core-only test
for this.
- add tests for "standalone" json round trips both with and without unicode
- add mechanism by which we remove psycopg2's "json" handler in order to get
the effect of using our non-native result handlers
- using AssertsCompiledSQL so need __dialect__
this test appears to be failing with pg 9.3, not sure how to restore it
- The :func:`.cast` function, when given a plain literal value,
will now apply the given type to the given literal value on the
bind parameter side according
to the type given to the cast.   This essentially replaces what would
normally be the detected type of the literal value.   This only
takes effect if the auto-detected type of the literal value is either
"nulltype" (e.g. couldn't detect)
or a type that is of the same "affinity" as the cast type.
The net change here is that the :func:`.cast` function includes more
of the functionality already present in the :func:`.type_coerce` function.
- changelog