Skip to content

feat(gooddata-sdk): [AUTO] Add HLL data type, APPROXIMATE_COUNT operation, and HYPERLOGLOG label type#1570

Open
yenkins-admin wants to merge 1 commit intomasterfrom
auto/openapi-sync-C008-20260420-r82171
Open

feat(gooddata-sdk): [AUTO] Add HLL data type, APPROXIMATE_COUNT operation, and HYPERLOGLOG label type#1570
yenkins-admin wants to merge 1 commit intomasterfrom
auto/openapi-sync-C008-20260420-r82171

Conversation

@yenkins-admin
Copy link
Copy Markdown
Contributor

Summary

Added HLL to ColumnDataType enum in gooddata-pipelines, and HYPERLOGLOG + AUXILIARY to GoodDataLabelType enum in gooddata-dbt. APPROXIMATE_COUNT was already present in gooddata-sdk's SIMPLE_METRIC_AGGREGATION and _AGGREGATION_CONVERSION. The gooddata-sdk declarative model fields (source_column_data_type, value_type) are typed as str | None without enum validators, so no SDK-core changes were needed.

Impact: enum_addition | Services: gooddata-afm-client, gooddata-metadata-client

Files changed

  • packages/gooddata-dbt/src/gooddata_dbt/dbt/base.py
  • packages/gooddata-pipelines/src/gooddata_pipelines/ldm_extension/models/custom_data_object.py

Agent decisions

Decisions (3)

APPROXIMATE_COUNT already present — No change to gooddata-sdk metric.py or visualization.py

  • Alternatives: Add duplicate entry (incorrect), Remove and re-add (unnecessary churn)
  • Why: SIMPLE_METRIC_AGGREGATION in compute/model/metric.py already contained 'APPROXIMATE_COUNT' (line 43), and _AGGREGATION_CONVERSION in visualization.py already mapped 'approximate_count' -> 'APPROXIMATE_COUNT'. The API client also already included this value.

gooddata-sdk core fields need no change — Left source_column_data_type and value_type fields as str | None without validation

  • Alternatives: Add Literal type annotations, Add value_in_allowed validators
  • Why: The declarative model fields in dataset.py use plain str | None types with no enum-based validators, so new string values pass through automatically without any code change.

GoodDataLabelType scope — Added both HYPERLOGLOG and AUXILIARY to GoodDataLabelType in gooddata-dbt

  • Alternatives: Add only AUXILIARY, Leave for dbt team to add separately
  • Why: HYPERLOGLOG was already in the API client's declarative_label.py enum but not in the hand-written dbt GoodDataLabelType. AUXILIARY is brand-new. Both are valid LabelType values per the diff.
Assumptions to verify (3)
  • The gooddata-api-client auto-generated models will be regenerated separately to include HLL (SourceDataType) and AUXILIARY (LabelType); the hand-written SDK wrapper does not need to enumerate valid values for those fields.
  • HYPERLOGLOG was already present in the API client (declarative_label.py line 83) so the backend already supports it; the dbt enum was simply behind.
  • HLL is a valid SourceDataType usable as source_column_data_type for attributes, facts, and labels, similar to BOOLEAN or NUMERIC.
Layers touched (1)
  • entity_model — Enum definitions for LabelType (GoodDataLabelType) and SourceDataType (ColumnDataType)
    • packages/gooddata-dbt/src/gooddata_dbt/dbt/base.py
    • packages/gooddata-pipelines/src/gooddata_pipelines/ldm_extension/models/custom_data_object.py

Source commits (gdc-nas)

  • 03cb7b6 Merge pull request #21512 from pcerny/pce/cq-2118_hll_sr
  • 6faf4e2 Merge pull request #21484 from pcerny/pce/cq-2118_hll_sr
  • e6d7adb Merge pull request #21592 from pcerny/pce/cq-2118_vertica_scan
  • 5ce05e5 Merge pull request #22135 from gooddata/ine-hll-ff
  • 7ed4096 Merge pull request #22170 from pcerny/pce/cq-2232_hll_col
  • f24d083 Merge pull request #22147 from pcerny/pce/cq-2227_dataset_auxiliary
  • e35ed4c Merge pull request #20807 from gooddata/ine-cq-2014
OpenAPI diff
+      "HLL": added to SourceDataType enum,
       "SourceDataType": {
         "enum": [
           "BOOLEAN", "DATE", "NUMERIC",
+          "HLL",
           "STRING", "TIMESTAMP"
         ]
       },
       "LabelType": {
         "enum": [
+          "AUXILIARY",
+          "HYPERLOGLOG",
           "ATTRIBUTE", "GEO", ...
         ]
       },
       "MeasureAggregation": {
         "enum": [
+          "APPROXIMATE_COUNT",
           "AVG", "COUNT", ...
         ]
       }

Workflow run


Generated by SDK OpenAPI Sync workflow

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.66%. Comparing base (c00ca3b) to head (81def14).
⚠️ Report is 170 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1570       +/-   ##
===========================================
+ Coverage    0.00%   78.66%   +78.66%     
===========================================
  Files         158      230       +72     
  Lines       11048    15408     +4360     
===========================================
+ Hits            0    12121    +12121     
+ Misses      11048     3287     -7761     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

1 participant