Here you can see the full list of changes between each SQLAlchemy-Searchable release.
- Add support for Python 3.12
- Add support for PostgreSQL 16
- Allow specifying schema in
drop_trigger
andsync_trigger
(#95, pull request by @acarapetis) - Add
update_rows
parameter tosync_trigger
(#76, pull request by @scribu)
- BREAKING CHANGE: Drop support for Python 3.6 and 3.7.
- BREAKING CHANGE: Drop support for SQLAlchemy 1.3.
- BREAKING CHANGE: Remove
quote_identifier
function. - BREAKING CHANGE: Remove
SearchManager.search_function_ddl
method. UseCreateSearchFunctionSQL(column)
instead. - BREAKING CHANGE: Remove
SearchManager.search_trigger_ddl
method. UseCreateSearchTriggerSQL(column)
instead. - Migrate from Travis CI to Github workflows in order to have a working CI again.
- Remove
validators
dependency - Add support for Python 3.10 and 3.11.
- Use the
pyproject.toml
standard to specify project metadata, dependencies and tool configuration. Use Hatch to build the project. - Use Ruff for linting the project, replacing both isort and flake8.
- Upgrade Python syntax with pyupgrade to the minimum Python version supported.
- Use Black to format Python code.
- Add support for SQLAlchemy 2.0.
- Use SQLAlchemy's compilation extension to build the SQL for creating and dropping the search functions and triggers.
- Update SQLAlchemy-Utils dependency to >=0.40.0.
- Fix the deprecation warning for
sqlalchemy.orm.mapper()
inmake_searchable()
andremove_listeners()
. - Migrate the Read the Docs configuration to use .readthedocs.yaml configuration file.
- Rewrite the test suite to use pytest fixtures ove classic xunit-style set-up.
- Fix
parse_websearch
tests on PostgreSQL 14 and later. - Add PostgreSQL versions 11, 13, 14 and 15 to the CI build matrix. Previously, the tests were only run on PostgreSQL 12.
- Rewrite the documentation to be up-to-date with the codebase, to fix the grammar and formatting issues, and to ensure the code examples are correct.
- The query interface is considered legacy in SQLAlchemy 2.0. Migrate the tests
and documentation to use
Session.execute()
in conjunction withselect()
to run ORM queries.
- Added auto_index option
- Simplify search parsing
- Fix parser errors with search keywords containing special characters such as underscores
- Raise PostgreSQL requirement to version 11
- Use websearch_to_tsquery internally rather than own parsing functions
- Drop py34, py35 support
- Fixed 'or' keyword parsing (#93)
- Dropped py27 support
- Fixed some issues with query parsing
- Fixed 'or' keyword parsing (#85)
- Dropped py33 support
- Fixed deprecation warnings (#81, pull request courtesy of Le-Stagiaire)
- Add missing expressions.sql
- Fixed import issue with expressions.sql
- Made all parser functions immutable
- Added pure PostgreSQL search query parsing (faster and can be used on SQL level)
- PostgreSQL >= 9.6 required
- Added support for phrase searching
- Removed python search query parsing
- Removed pyparsing from requirements
- Removed symbol removal (now handled implicitly on PostgreSQL side)
- Fixed Flask-SQLAlchemy support (#63, pull request by quantus)
- Added drop_trigger utility function (#58, pull request by ilya-chistyakov)
- Index generation no longer manipulates table args (#55, pull request by jmuhlich)
- Fixed 'Lo' unicode letter parsing (#50, pull request courtesy by StdCarrot)
- Fixed vector matching to use global configuration regconfig as fallback
- Use identifier quoting for reserved keywords (#45, pull request by cristen)
- Fixed unicode parsing in search query parser, #42
- Removed Python 2.6 support
- Added support for search term weights
- Fixed listener configuration (#31)
- Added sort param to search function for ordering search results by relevance
- Added PyPy support
- Added isort and flake8 checks
- Added support for custom vectorizers in sync_trigger, #25
- Fixed and / or parsing where search word started with keyword, #22
- Removed 'and' as keyword from search query parser (spaces are always considered as 'and' keywords)
- Made search function support for queries without entity_zero
- Changed catalog configuration option name to regconfig to be compatible with the PostgreSQL and SQLAlchemy naming
- Added custom type and column vectorizers
- SQLAlchemy requirement updated to 0.9.0
- SQLAlchemy-Utils requirement updated to 0.29.0
- Changed GIN indexes to table args Index constructs. This means current version of alembic should be able to create these indexes automatically.
- Changed GIN index naming to adhere to SQLAlchemy index naming conventions
- Replaced remove_hyphens configuration option by more generic remove_symbols configuration option
- Emails are no longer considered as special tokens by default.
- Added sync_trigger alembic helper function
- Python 3 support
- Enhanced email token handling
- New configuration option: remove_hyphens
- Updated validators dependency to 0.2.0
- Search query string parser now notices emails and leaves them as they are (same behavious as in PostgreSQL tsvector parser)
- Fixed index/trigger creation when multiple vectors attached to single class
- Search vector without columns do not generate triggers anymore
- Fixed single table inheritance handling in define_triggers_and_indexes manager method.
- Fixed negation operator parsing
- Completely rewritten search API
- Renamed SearchQueryMixin.search and main module search function's 'language' parameter to 'catalog'
- Support for multiple search vectors per class
- Fixed support for numbers in parse_search_query
- Added support for hyphens between words
- Fixed parse_search_query to support nested parenthesis and negation operator
- Added better search query parsing capabilities (support for nested parenthesis, or operator and negation operator)
- Made psycopg dependency more permissive
- Added dependency to SQLAlchemy-Utils
- Search vectors must be added manually to each class
- Fixed safe_search_terms single quote handling
- Language set explicitly on each query condition
- Fixed search function when using session based queries
- Added table name identifier quoting
- Fixed search_filter func when using empty or undefined search options
- Added support for custom language parameter in query search functions
- Added psycopg2 to requirements, fixed travis.yml
- safe_search_terms support for other than english catalogs
- Initial public release