Skip to content

PostgreSQL Support#42

Merged
ez-plugins merged 4 commits intomainfrom
feature/postgresql-support
Apr 22, 2026
Merged

PostgreSQL Support#42
ez-plugins merged 4 commits intomainfrom
feature/postgresql-support

Conversation

@ez-plugins
Copy link
Copy Markdown
Contributor

This update has been in focus in adding PostgreSQL support.

PostgreSQL dialect with ILIKE and RETURNING support

  • Add PostgreSqlDialect extending AbstractSqlDialect:
    double-quote identifier quoting, supportsReturning()=true,
    appendConditionFragment override for ILIKE/NOT ILIKE
  • Register SqlDialect.POSTGRESQL constant in SqlDialect interface
  • Add ILIKE and NOT_ILIKE to Operator enum (PostgreSQL-only operators)
  • Add supportsReturning() hook to AbstractSqlDialect;
    renderDelete() now appends RETURNING clause when the hook returns true

RETURNING clause support to DML builders

  • Add returningColumns field + getter/setter to Query
  • DeleteBuilder.returning(String... columns): passed through Query
    to AbstractSqlDialect.renderDelete() via supportsReturning() hook
  • InsertBuilder.returning(String... columns): appended inline to SQL
  • UpdateBuilder.returning(String... columns): appended inline to SQL

whereILike / orWhereILike builder methods

  • QueryBuilder.whereILike(column, value): ILIKE condition with AND connector
  • QueryBuilder.orWhereILike(column, value): ILIKE condition with OR connector
  • SelectBuilder.whereILike(column, value): ILIKE condition with AND connector
    (follows existing whereLike pattern; no orWhere* in SelectBuilder)

- Add PostgreSqlDialect extending AbstractSqlDialect:
  double-quote identifier quoting, supportsReturning()=true,
  appendConditionFragment override for ILIKE/NOT ILIKE
- Register SqlDialect.POSTGRESQL constant in SqlDialect interface
- Add ILIKE and NOT_ILIKE to Operator enum (PostgreSQL-only operators)
- Add supportsReturning() hook to AbstractSqlDialect;
  renderDelete() now appends RETURNING clause when the hook returns true
- Add returningColumns field + getter/setter to Query
- DeleteBuilder.returning(String... columns): passed through Query
  to AbstractSqlDialect.renderDelete() via supportsReturning() hook
- InsertBuilder.returning(String... columns): appended inline to SQL
- UpdateBuilder.returning(String... columns): appended inline to SQL
- QueryBuilder.whereILike(column, value): ILIKE condition with AND connector
- QueryBuilder.orWhereILike(column, value): ILIKE condition with OR connector
- SelectBuilder.whereILike(column, value): ILIKE condition with AND connector
  (follows existing whereLike pattern; no orWhere* in SelectBuilder)

  Rendered correctly only with SqlDialect.POSTGRESQL
… 1.1.0

- PostgreSqlDialectTest (14 tests): identifier quoting, ILIKE/NOT ILIKE
  rendering, RETURNING on DELETE/INSERT/UPDATE, dialect isolation
- SqlDialectTest: add postgresqlDialectIsSingleton() test
- pom.xml: bump version 1.0.7 -> 1.1.0 (minor: new public API surface)
@ez-plugins
Copy link
Copy Markdown
Contributor Author

Solves #22

@ez-plugins ez-plugins added the enhancement New feature or request label Apr 22, 2026
@ez-plugins ez-plugins merged commit e602d5d into main Apr 22, 2026
5 checks passed
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 22, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant