Skip to content

feat: Support PostgreSQL regular expression operators (~, ~*, !~, !~*) #190

@ajitpratap0

Description

@ajitpratap0

Description

Add support for PostgreSQL's regular expression matching operators.

Operators Needed

  • ~ - Case-sensitive regex match
  • ~* - Case-insensitive regex match
  • !~ - Case-sensitive regex non-match
  • !~* - Case-insensitive regex non-match

Example SQL

SELECT * FROM users WHERE name ~ '^J.*';
SELECT * FROM products WHERE description ~* 'sale|discount';
SELECT * FROM logs WHERE message !~ 'DEBUG';
SELECT * FROM emails WHERE subject !~* 'spam';

Current Behavior

These regex operators are not recognized.

Expected Behavior

Parser should tokenize and parse these as binary comparison operators.

Priority

Medium - useful for text pattern matching in PostgreSQL

Implementation Notes

  • Add token types: TokenTypeTilde, TokenTypeTildeAsterisk, TokenTypeNotTilde, TokenTypeNotTildeAsterisk
  • Handle these as binary operators in expression parsing

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions