Skip to content

Merge main into duckdb/main to sync merge-base#615

Merged
javihern98 merged 39 commits intoduckdb/mainfrom
merge-main-into-duckdb
Mar 20, 2026
Merged

Merge main into duckdb/main to sync merge-base#615
javihern98 merged 39 commits intoduckdb/mainfrom
merge-main-into-duckdb

Conversation

@javihern98
Copy link
Copy Markdown
Contributor

Summary

  • Merges main into duckdb/main so that the two branches share a recent common ancestor
  • This makes PR Add duckdb transpiler and executor (DO NOT MERGE) #613 (duckdb/main → main) show only the actual DuckDB additions instead of the full historical divergence
  • Resolves the test_S3.py modify/delete conflict (deleted, s3fs dependency removed)
  • Resolves poetry.lock conflict (keeps duckdb/main version with duckdb + psutil deps)

Important

This PR must be merged with a merge commit (not squash), otherwise the merge-base won't advance and PR #613 will still show the full diff.

Closes #614

mla2001 and others added 30 commits February 26, 2026 12:37
* Added visitScalarWithCast statement into sub AST constructor to handle ScalarWithCastContext

* Added related test
* Added visitScalarWithCast statement into sub AST constructor to handle ScalarWithCastContext

* Added related test

* Harden DuckDB error handling and detect infinite values (#541)

- Add pyarrow-based inf detection for ratio_to_report (division by zero)
- Add ieee_floating_point_ops=false to eval operator connection
- Add inf check on eval operator measure columns
- Replace bare exceptions in eval with dedicated error codes
- Add centralized error messages: 2-1-1-1, 2-1-3-1, 2-3-8, 1-1-1-21, 1-1-1-22
- Add test for ratio_to_report on zero-sum partitions

* Remove unrelated changes from issue #537

---------

Co-authored-by: Mateo <mateo.delorenzo@meaningfuldata.eu>
* Eval operator now cast Date columns to date64[pyarrow]

* Added related test

* Minor fix

* Refactor Eval operator to normalize date columns and improve readability

* Fixed ruff errors

* Fixed mypy errors
* Added legacy representation method to TimePeriodHandler class

* Added legacy time period representation formatter

* Added related tests

* Renamed format_time_period_external_representation dataset argument to operand.

* Added related error message

* Updated invalid TimePeriodRepresentation exception

* Updated docs

* Updated docs

* updated sdmx reporting D regex

* Added related tests

* Updated docs
* Add Extra Inputs documentation page for Value Domains and External Routines (#544)

* Improve extra_inputs docs and fix deploy job skip on release

- Add Time format example in Value Domains supported types
- Add SQL file example in External Routines
- Add note that only SQL external routines are supported
- Fix function names: validate_value_domain, validate_external_routine
- Fix deploy job being skipped when check-docs-label is skipped

* Remove broken .sql file support for external routines

The directory loading path filtered for .sql files but the file handler
only accepted .json, causing all .sql loads to fail. Removed the dead
.sql code path and updated docs to reflect JSON-only file support.

* Fix external_routines docstrings and type signature

Update run() and run_sdmx() docstrings from "String or Path" to
"Dict or Path" to match semantic_analysis() and value_domains. Remove
dead str type from load_external_routines() signature since strings
are rejected at runtime.

* Add automated tests for documentation Python examples

- Extract and execute Python code blocks from RST files (walkthrough.rst, extra_inputs.rst)
- Validate run results against reference CSV files using pyarrow dtype comparison
- Fix pre-existing bugs in walkthrough examples: wrong path casing (Docs/ → docs/),
  language "sqlite" → "SQL", Me_1 → Id_2 in VD membership, variable name typo,
  malformed value_domains dict, wrong VD/routine names in Example_6.vtl
- Update reference CSVs (Example_5.csv, Example_6_output.csv) to match corrected examples

* Fix incorrect parameter name in S3 example

Rename `output` to `output_folder` in environment_variables.rst to match the actual run() API signature.

* Fix Python 3.9 compatibility in doc example tests

Replace `str | None` (PEP 604, requires 3.10+) with `Optional[str]` to support Python 3.9.

* Fix Windows encoding error in RST code extractor

Specify UTF-8 encoding in read_text() to avoid charmap codec errors on Windows.
* Bump version to 1.6.0rc2

* Update AI coding assistant instructions with version bump branch naming convention
* Added legacy representation method to TimePeriodHandler class

* Added legacy time period representation formatter

* Added related tests

* Renamed format_time_period_external_representation dataset argument to operand.

* Added related error message

* Updated invalid TimePeriodRepresentation exception

* Updated docs

* Updated docs

* updated sdmx reporting D regex

* Added related tests

* Updated docs

* Updated legacy Time_Period month repr from YYYY-Mdd to YYYY-MM

* Updated related tests

* Updated docs
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.2 to 0.15.4.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.2...0.15.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add date normalization method to Analytic class

* Add Date type handling in Aggregation class

* Added VTL error handling for duckdb query in Analytic class

* Minor fix

* Fixed linting errors

* Added Aggregate related tests

* Added Analytic related tests

* Enhanced error handling in Analytic class for duckdb query conversion issues

* Updated Analytic TimePeriod Handler

* Fixed ruff errors

* Added RANGE test

* Added Time_Period test

* Removed Time handler until review

* Fixed ruff errors

* Remove Time Period handler
… Duration, TimePeriod, and TimeInterval (#558)

* Add semantic error handling for TimeInterval in Analytic and Aggregate operations

* Added related tests

* Added missing RunTimeError with TimePeriods with different durations test

* Enhance TimePeriod handling in Aggregation and Analytic operations with improved regex extraction and error handling

* Updated related tests

* Fixed related ests

* Fixed grammar test

* Fixed linting errors

* Minor fix
* Updated VTL Grammar

* Uodated lexer and parser

* Fixed related tests

* Grammar updated to the official VTL grammar

* Lexer and Parser regenerated

* Refactor comment handling in generate_ast_comment to use rstrip for newline removal

* Refactor time-related parsing in Expr and ExprComp

* Refactor constant handling in Terminals

* Fixed ruff errors

* Fixed mypy errors
The rename validation now excludes components being renamed away when
checking for name conflicts, and builds result components atomically
instead of sequentially to handle swaps correctly.
…detect other separators usage on input CSVs (#577)

* Updated parser logic

* Added related tests

* Simplified delimiter detection logic

* Fixed ruff errors

* Fixed mypy errora

* Fixed linting errors

* Minor fix

* Test commit sign

* Remove commit sign
* Fix #578: Duration scalar-scalar comparison uses magnitude order instead of alphabetical

Apply PERIOD_IND_MAPPING conversion in scalar_evaluation before comparing
Duration values, consistent with all other evaluation paths. Also replace
raw Exception with .get() returning None for invalid durations.

* Add duration scalar comparison tests in additional scalars

Cover all six comparison operators (=, <>, <, >, <=, >=) with Duration
cast values to verify magnitude-based ordering.

* Add dataset, component-scalar, and component-component duration comparison tests

Cover all Duration comparison evaluation paths: scalar-scalar, dataset-dataset,
dataset-scalar, component-scalar, and component-component.

* Add TimePeriod comparison tests across all evaluation paths

Cover scalar-scalar, dataset-dataset, dataset-scalar, component-scalar,
and component-component comparisons for TimePeriod type.
Commit messages may reference issue numbers (e.g. (#569)) which cause
the pullRequest GraphQL query to fail with NOT_FOUND. Catch partial
errors and use the valid data instead of failing the entire workflow.
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.4 to 0.15.5.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.4...0.15.5)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Removed Hierarchy AST rules validation and sorting from interpreter

* Updated DAG to validate and sort Hierarchical roll-up rules

* Added related tests

* Updated related test

* Minor fix

* Fixed mypy errors

* Removed outdated  pysapark code

* Added HRuleset rule sorting statement into DAGAnalyzer

* Fixed related assertion tests

* Updated cyclic graph detection

* Fixed related tests

* Added duplicated HR EQ rules error

* Updated related tests

* Fixed linting errors

* Fixed related tests
…_all and windowing (#584)

* Grammar aligned with the official VTL 2.1

* Regenerated Lexer, Parser and VTLVisitor

* Fixed related tests

* Fixed mypy errors
javihern98 and others added 9 commits March 12, 2026 14:06
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.5 to 0.15.6.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.5...0.15.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fixed empty/only-comments AST generation

* Added related tests
* Fixed empty/only-comments AST generation

* Added related tests

* Fixed errorlevel as boolean handling on ASTString

* Fixed linting errors

* Added related tests

* Fixed mypy errors

* Minor fix
* Implemented new time_agg in group_by/except functionality

* Added related tests

* Added more tests
Co-authored-by: Francisco Javier Hernández del Caño <javier.hernandez@meaningfuldata.eu>
* Fixed apply validation method fails on semantic execution

* Added related test
* Fixed SetDiff operator taking rows with pre-existing null values as results

* Fixed related test references

* Added related test
# Conflicts:
#	poetry.lock
#	tests/API/test_S3.py
@javihern98 javihern98 merged commit 6a99cc6 into duckdb/main Mar 20, 2026
@javihern98 javihern98 deleted the merge-main-into-duckdb branch March 20, 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.

2 participants