Skip to content

feat: regex pushdown for partial search, case-insensitive matching, and expanded integration tests#776

Merged
oleksii-donets merged 9 commits intodevelopmentfrom
feat/768-regex-pushdown-for-partial-search
Mar 23, 2026
Merged

feat: regex pushdown for partial search, case-insensitive matching, and expanded integration tests#776
oleksii-donets merged 9 commits intodevelopmentfrom
feat/768-regex-pushdown-for-partial-search

Conversation

@oleksii-donets
Copy link
Contributor

@oleksii-donets oleksii-donets commented Mar 20, 2026

Applicable issues

Description of changes

  • Use regexp.compile for partial string search pushdown in Flux queries, enabling case-insensitive matching for $contains, $not_contains, $starts_with, $ends_with, and $like filters across both InfluxDB 2 and InfluxDB 3 engines
  • Expand AbstractInfluxContainerTest from 21 to 32 tests, organized into @Nested inner classes (Aggregation, GroupBy, Filter, PartialStringSearch, CaseInsensitiveSearch, Pagination, EdgeCase)
  • Fix InfluxEngine to return a default row with zeros for ungrouped aggregation queries with no matching rows, aligning with SQL-standard behavior and InfluxDB 3

Checklist

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

oleksii-donets and others added 3 commits March 20, 2026 09:37
…ueries (#768)

Replace strings.containsStr/hasPrefix/hasSuffix with regexp.compile + =~/!~
operators for CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, and LIKE filters.
Regex is compiled into a separate variable before from() so InfluxDB can push
the filter down to the storage engine. Add container tests for all partial
search operators against both InfluxDB 2 and InfluxDB 3.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Add (?i) flag to Flux regex patterns and use ILIKE instead of LIKE in
SQL queries for CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, and
LIKE operators. Add case-insensitive container tests for both engines.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
…nflux2 (#768)

Add new integration tests organized into @nested classes covering
filters ($eq, $ne, $or), pagination (limit/offset), and edge cases
(empty results, no-match count, expression aliases).

Fix InfluxEngine to return a default row with zeros for ungrouped
aggregation queries that produce empty results, aligning with
SQL-standard behavior and InfluxDB 3.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

@oleksii-donets oleksii-donets changed the title feat: regex pushdown for partial search, case-insensitive matching, and expanded integration tests (#768) feat: regex pushdown for partial search, case-insensitive matching, and expanded integration tests Mar 20, 2026
@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

…r across sub-queries (#768)

The aggregation query builder was dropping the preamble (regex variable
declarations like _re0 = regexp.compile(...)) when combining sub-queries,
causing invalid Flux queries when using partial string filters (starts_with,
contains, etc.) with aggregations. Also made the regex counter shared across
all sub-queries to avoid variable name collisions.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

@ai-dial-actions
Copy link
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

settings.gradle

PackageVersionLicenseIssue Type
com.gradle:common-custom-user-data-gradle-plugin2.1NullUnknown License
com.gradle:develocity-gradle-plugin4.3.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
maven/com.gradle:common-custom-user-data-gradle-plugin 2.1 UnknownUnknown
maven/com.gradle:develocity-gradle-plugin 4.3.1 UnknownUnknown

Scanned Files

  • settings.gradle

@oleksii-donets oleksii-donets merged commit 5f38bc9 into development Mar 23, 2026
12 checks passed
@oleksii-donets oleksii-donets deleted the feat/768-regex-pushdown-for-partial-search branch March 23, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Audit/Dashboard] Filters take too long and display "No Data" on Dev Environment.

3 participants