text: Title: CockroachDB + SQLAlchemy trouble
  Body: <!--
  Thank you for reporting an issue/feature request.
  
  If this is a feature request, please disregard this template.  If this is
  a bug report, please answer to the questions below.
  
  It will be much easier for us to fix the issue if a test case that reproduces
  the problem is provided, with clear instructions on how to run it.
  
  Thank you!
  -->
  
  * **asyncpg version**: 0.23.0
  * **PostgreSQL version**: cockroachdb/cockroach:latest
  * **Do you use a PostgreSQL SaaS?  If so, which?  Can you reproduce
    the issue with a local PostgreSQL install?**: N/A
  * **Python version**: 3.8.10
  * **Platform**: Arch Linux
  * **Do you use pgbouncer?**: No
  * **Did you install asyncpg with pip?**: Yes
  * **If you built asyncpg locally, which version of Cython did you use?**: N/A
  * **Can the issue be reproduced under both asyncio and
    [uvloop](https://github.com/magicstack/uvloop)?**: Yes
  
  <!-- Enter your issue details below this comment. -->
  
  Disclaimer, I'm not entirely sure whether the actual bug is in this repository or in SQLAlchemy. That said, when trying to use `sqlalchemy` with the `asyncpg` driver to connect to CockroachDB, [this function](https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/asyncpg.py#L1015-L1039) causes some problems. The [`json` block](https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/asyncpg.py#L1026-L1032) causes `asyncpg` to emit a `ValueError: unknown type: pg_catalog.json`, and, when commented out, the [`jsonb` block](https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/asyncpg.py#L1033-L1039) emits `asyncpg.exceptions._base.InterfaceError: cannot use custom codec on non-scalar type pg_catalog.jsonb`. I wrote [this patch](https://github.com/SoftwareSheriff/sqlalchemy/commit/c9a386c0a6b401838a87b678cf97543b8b0e263c) for SQLAlchemy which successfully works around these two problems, but I feel like it probably breaks something else and also that there's just no way that this right way to fix this.