Skip to content

Make some optional features now mandatory - #108

Open
gmantele wants to merge 8 commits into
ivoa-std:mainfrom
gmantele:issue-94-optional-features
Open

gmantele wants to merge 8 commits into
ivoa-std:mainfrom
gmantele:issue-94-optional-features

Conversation

@gmantele

@gmantele gmantele commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

The goal of this PR is to make mandatory some well-approved and well-supported (by most DBMS used in implementations) features.

The concerned features are:

  • LOWER
  • UPPER
  • OFFSET
  • CAST
  • COALESCE
  • Common Table Expressions (CTE)
  • Set operators

About OFFSET, I have added a constraint since 2.1: it can not be used without an ORDER BY.
Two reasons:

  1. Result consistency. Two executions of a query using both will always end with the same result.
  2. Not all DBMS are as permissive as Postgres. MS-SQLServer force the usage of ORDER BY with OFFSET. Having also this constraint lets users of this DBMS be easily compatible with ADQL.

About ILIKE, it stays optional for now because not all DBMS (MySQL, SQLServer, Oracle) support it. One may say that it can be replaced by LOWER(col1) LIKE LOWER('...') but in term of performance (index) it may not be the same (although the same issue may happen with ILIKE too depending on the search pattern). In brief, it may need discussions before becoming mandatory.

Fixes #94

Because some DBMS (at least MS-SQLServer) require the usage of ORDER BY when OFFSET is used, ADQL does to. It also guarantees the consistency of the result.
The changelog has also been updated for OFFSET but also LOWER and UPPER.
and restructure a bit the changelog
@gmantele gmantele added this to the 2.2 milestone Oct 2, 2026
@gmantele gmantele added the enhancement New feature or request label Oct 2, 2026

This branch has not been deployed

No deployments
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.

LOWER, UPPER, ILIKE, OFFSET mandatory?

1 participant