Skip to content

P0.1+P0.2: Quota model changes & remove dead feature flags #125

Description

@fupelaqu

Phase-0 foundation of the pricing-repackaging epic (combined stories P0.1 + P0.2, elasticsql core).

P0.1 — Quota model changes

  • Remove maxConcurrentQueries from the Quota case class (it was never enforced).
  • Final Quota shape: Quota(maxMaterializedViews, maxQueryResults, maxClusters = Some(0), maxJoins = Some(0)) (4 args).
  • Community tier rebalanced: maxJoins 1 -> 2, maxMaterializedViews 3 -> 1.
    • Community = { MV Some(1), results Some(10000), clusters Some(1), joins Some(2) }.
  • Drop the max_concurrent_queries row from SHOW LICENSE output (ADR D1).

P0.2 — Remove dead feature flags

  • Remove UnlimitedResults and AdvancedAggregations from the Feature enum (values / fromString / toSnakeCase).
  • Result-limit policy is now driven solely by Quota.maxQueryResults per tier (no feature flag) — covered by the new ResultLimitInvariantSpec.
  • Feature.values = [MaterializedViews, JdbcDriver, AdbcDriver, FlightSql, Federation, Repl] (size 6).

Verification

  • + sql/compile, + core/compile (cross 2.12 + 2.13) green.
  • licensing suites (QuotaSpec, FeatureSpec, FeatureFromStringSpec, LicenseManagerSpec, LicenseKeySpec, LicenseUsageSpec, ResultLimitInvariantSpec) — 82 tests pass.
  • core LicenseExecutorSpec — 13 tests pass.
  • scalafmtAll + headerCheck clean.
  • licensing + core publishLocal'd at 0.20-SNAPSHOT (2.12 + 2.13) to unblock downstream P0.3/P0.4/P0.5/P0.6.

Docs/marketing deferred to P1.3 (no doc sync in this PR).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions