- Nothing changed yet.
- Add RedshiftDialect_redshift_connector (Pull #232)
- Create RedshiftDialectMixin class. Add RedshiftDialect_psycopg2cffi. (Pull #231)
- Improve reflection performance by fetching/caching metadata per schema rather than for the entire database (Pull #223)
- SQLAlchemy 1.4.x support (Pull #221)
- Allow supplying multiple role ARNs in COPY and UNLOAD commands. This allows the first role to assume other roles as explained here.
- Support AWS partitions for role-based access control in COPY and UNLOAD commands. This allows these commands to be used, e.g. in GovCloud.
- Add option to drop materialized view with CASCADE (Pull #204)
- Fix invalid SQLAlchemy version comparison (Pull #206)
- Fix for supporting SQLAlchemy 1.3.11+ (Issue #195)
- Added support for materialized views (Issue #202)
- Fix reflection of unique constraints (Issue #199)
- Support for altering column comments in Alembic migrations (Issue #191)
- Import Iterable from collections.abc for Python 3.9 compatibility (Issue #189)
- Add support for Parquet format in
UNLOAD
command (Issue #187)
- Fix unhashable type error for sortkey reflection in SQLAlchemy >= 1.3.11 (Issue #180)
- Expose supported types for import from the dialect (Issue #181)
- Reflect column comments (Issue #186)
- Extend psycopg2 package version check to also support psycopg2-binary and psycopg2cffi (Issue #178)
- Drop hard dependency on psycopg2 but require package to be present on runtime (Issue #165)
- Switch from info to keyword arguments on columns for
SQLAlchemy >= 1.3.0
(Issue #161) - Add support for column info on redshift late binding views (Issue #159)
- Add support for
MAXFILESIZE
argument toUNLOAD
. (Issue #123) - Add support for the CREATE LIBRARY command. (Issue #124)
- Add support for the ALTER TABLE APPEND command. (Issue #162)
- Add support for the
CSV
format to UnloadFromSelect. (Issue #169) - Update the list of reserved words (adds "az64" and "language") (Issue #176)
- Add support for
REGION
argument toCOPY
andUNLOAD
commands. (Issue #90)
- Update tests to adapt to changes in Redshift and SQLAlchemy (Issue #140)
- Add header option to UnloadFromSelect command (Issue #156)
- Add support for Parquet and ORC file formats in the COPY command (Issue #151)
- Add official support for Python 3.7 (Issue #153)
- Avoid manipulating search path in table metadata fetch by using system tables directly (Issue #147)
- Fix incompatibility of reflection code with SQLAlchemy 1.2.0+ (Issue #138)
- Do not enumerate search_path with external schemas (Issue #120)
- Return constraint name from get_pk_constraint and get_foreign_keys
- Use Enums for Format, Compression and Encoding. Deprecate string parameters for these parameter types (Issue #133)
- Update included certificate with the transitional ACM cert bundle (Issue #130)
- Support role-based access control in COPY and UNLOAD commands (Issue #88)
- Increase max_identifier_length to 127 characters (Issue #96)
- Fix a bug where table names containing a period caused an error on reflection (Issue #97)
- Performance improvement for reflection by caching table constraint info (Issue #101)
- Support BZIP2 compression in COPY command (Issue #110)
- Allow tests to tolerate new default column encodings in Redshift (Issue #114)
- Pull in set of reserved words from Redshift docs (Issue #94 <sqlalchemy-redshift#94> _)
- Support reflecting tables with foriegn keys to tables in non-public schemas (Issue #70)
- Fix a bug where DISTKEY and SORTKEY could not be used on column names containing spaces or commas. This is a breaking behavioral change for a command like __table_args__ = {'redshift_sortkey': ('foo, bar')}. Previously, this would sort on the columns named foo and bar. Now, it sorts on the column named foo, bar. (Issue #74)
- Change the name of the package to sqlalchemy_redshift to match the naming convention for other dialects; the redshift_sqlalchemy package now emits a DeprecationWarning and references sqlalchemy_redshift. The redshift_sqlalchemy compatibility package will be removed in a future release. (Issue #58)
- Fix a bug where reflected tables could have incorrect column order for some CREATE TABLE statements, particularly for columns with an IDENTITY constraint. (Issue #60)
- Fix a bug where reflecting a table could raise a
NoSuchTableError
in cases where its schema is not on the currentsearch_path
(Issue #64) - Add python 3.5 to the list of versions for integration tests. (Issue #61)
- Fix breakages to CopyCommand introduced in 0.3.0:
Thanks solackerman.
(Issue #53)
- When format is omitted, no FORMAT AS ... is appended to the query. This makes the default the same as a normal redshift query.
- fix STATUPDATE as a COPY parameter
- Fix view support to be more in line with SQLAlchemy standards. get_view_definition output no longer includes a trailing semicolon and views no longer raise an exception when reflected as Table objects. (Issue #46)
- Rename RedShiftDDLCompiler to RedshiftDDLCompiler. (Issue #43)
- Update commands
(Issue #52)
- Expose optional TRUNCATECOLUMNS in CopyCommand.
- Add all other COPY parameters to CopyCommand.
- Move commands to their own module.
- Support inserts into ordered columns in CopyCommand.
- Use SYSDATE instead of NOW(). Thanks bouk. (Issue #15)
- Default to SSL with hardcoded AWS Redshift CA. (Issue #20)
- Refactor of CopyCommand including support for specifying format and compression type. (Issue #21)
- Explicitly require SQLAlchemy >= 0.9.2 for 'dialect_options'. (Issue #13)
- Refactor of UnloadFromSelect including support for specifying all documented redshift options. (Issue #27)
- Fix unicode issue with SORTKEY on python 2. (Issue #34)
- Add support for Redshift
DELETE
statements that refer other tables in theWHERE
clause. Thanks haleemur. (Issue #35) - Raise
NoSuchTableError
when trying to reflect a table that doesn't exist. (Issue #38)
- Register RedshiftImpl as an alembic 3rd party dialect.
- First version of sqlalchemy-redshift that can be installed from PyPI