Skip to content

Merge upstream v1.5-variegata (through 542514e1) into posthog/v1.5.5 - #36

Merged
fuziontech merged 13 commits into
posthog/v1.5.5from
merge/upstream-v1.5-variegata-2026-07-30
Jul 30, 2026
Merged

Merge upstream v1.5-variegata (through 542514e1) into posthog/v1.5.5#36
fuziontech merged 13 commits into
posthog/v1.5.5from
merge/upstream-v1.5-variegata-2026-07-30

Conversation

@fuziontech

Copy link
Copy Markdown
Member

Summary

Brings the fork up to date with upstream's v1.5-stable branch: the 10 commits on duckdb/ducklake@v1.5-variegata since the July 10 sync. Zero textual conflicts (git auto-merged all 7 files; every hunk in fork-critical files was still hand-reviewed against the fork's passthrough/server-side commit paths). DuckDB submodule pin stays at d8cdaa33 (v1.5.5); no upstream CI files touched.

What comes in

Fork-interaction review

Test plan

  • GEN=ninja make release clean
  • Local suites all green: partitioning 20/20 (incl. 3 new tests, 78k assertions), transaction 13/13 (incl. new partition_commit_retry_remap.test), data_inlining 45/45 (incl. both new cleanup tests), plus basic/general/insert/delete/update/alter/catalog smoke
  • CI: quack + Postgres lanes (not runnable locally — test/sql/quack/noop_partition_alter_data_files.test is exercised only here)

🤖 Generated with Claude Code

https://claude.ai/code/session_01LUnQHp46rmLKdupmDUr7kG

pdet and others added 13 commits July 10, 2026 13:56
Test uses JOIN on attached ducklake catalog, causing
'Multiple streaming scans' error
* Bump DuckDB submodule to v1.5.5

Moves the pin from v1.5.3 (14eca11b) to v1.5.5 (d8cdaa33). No DuckLake
source changes were needed - the extension builds clean against v1.5.5
and the full suite passes: 16083 assertions in 451 test cases.

Note this does NOT bring in VARIANT extract pushdown. That lives only on
duckdb main; the v1.5-variegata branch is 20 commits past v1.5.5 and
still ships the pre-rewrite reader (variant_shredded_conversion.cpp,
no IsPushdownExtract), so upstream is not backporting it to the 1.5 line.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mntu6YhMuqNBFD9snXqvBR

* Build against v1.5.5 in CI, not just locally

The submodule bump alone was not enough. MainDistributionPipeline's
get-duckdb-version job reads .github/duckdb-version and passes it to
_extension_distribution.yml, which checks out that DuckDB version itself
rather than using the submodule. So CI - including the tagged release
build that produces ducklake-linux-{amd64,arm64}.duckdb_extension - would
still have compiled against v1.5.3 while the submodule said v1.5.5.

Local `make release` uses the submodule and was genuinely built and
tested against v1.5.5; only the CI path was wrong.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mntu6YhMuqNBFD9snXqvBR

* Port upstream DuckDB-test skips for v1.5.5

Bumping to v1.5.5 pulls in DuckDB's newer test suite, and the DBMS
Catalog Tests job runs that suite against a DuckLake backend. 11 of its
4087 cases failed - 10 of them tests that do not exist at v1.5.3 - so
these are newly-added upstream conformance tests exposing long-standing
DuckLake gaps, not regressions from the bump.

Upstream ducklake already made exactly these calls when it moved to
duckdb main (see "Fix and skip duckdb tests in ducklake", which added 136
lines to this file). Every entry here is ported verbatim from upstream
main's attach_ducklake.json, reasons included, so we are not inventing
policy:

  - native compression/storage-file internals (patas, rle, dict_fsst)
  - native db-file invalidation, checkpoint and WAL-revert semantics
  - DuckLake gives table entries a new object id on ALTER, so the oid
    stability assertion cannot hold
  - parquet writer does not support non-root VARIANT columns
  - TIMETZ second-precision offsets are quantized by parquet storage
  - two with upstream's own FIXME/"different error message" notes

test_add_col_if_not_exists_default is covered by upstream's
skip_error_messages entry rather than a path skip, so that string is
added too.

Note the diff is larger than the change: json round-trip normalised
pre-existing inconsistent indentation. Semantically this is exactly
+10 skip paths and +1 skip_error_message, nothing removed or altered -
verified by comparing the parsed JSON before and after.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mntu6YhMuqNBFD9snXqvBR

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…rtitioning

Add hive_file_pattern option to flush
Consolidates the two release lines onto posthog/v1.5.5 as the single
branch for the DuckDB v1.5.5 era. Both branches already pinned the same
DuckDB submodule commit (d8cdaa33); this merge brings over the
.github/duckdb-version bump and attach_ducklake.json config updates
that landed via #33 on the v1.5.3 branch, alongside the v1.5.5 CI and
test-skip commits unique to this branch.

After this merges, PRs should target posthog/v1.5.5 and the next
release tag (v1.0-posthog.7) cuts from here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fork/posthog/v1.5.3:
  Bump DuckDB submodule to v1.5.5 (#33)
…ease line

Brings in 10 upstream commits on top of the posthog/v1.5.3 -> posthog/v1.5.5
consolidation merge (2c92a42):

- 84ef2d1 / 17ced71: Backport partition-id remap fix (duckdb#1288, backport of
  duckdb#1223). Adds DuckLakePartition::local_partition_id so commit retries remap
  data-file partition ids off the original transaction-local id instead of a
  stale id overwritten by a failed commit attempt. Also makes a no-op
  SET PARTITIONED BY (same fields/transforms) skip the alter entirely, and
  adds an InternalException guard in DuckLakeTransactionState::GetNewDataFile
  against committing a data file with a transaction-local partition id.
- d8a1881 / c812f6e / 7e41b97: Clean up empty superseded inlined tables
  (duckdb#1321): drop per-table inlined-file-deletion tables when tables are
  dropped (metadata manager cleanup list), and drop superseded inlined
  tables client-side on commit when only flushes occurred.
- 542514e / 664400c / d0ce7df / 16be379: Respect per-table
  hive_file_pattern option in ducklake_flush_inlined_data (duckdb#1348), with
  test and quack.json skip entry.
- 22a6078: upstream-internal merge commit (no content).

Conflicts: none. Git auto-merged all 7 modified files; each merged hunk was
reviewed against the fork's versions of the commit path
(ducklake_transaction.cpp Commit(), ducklake_transaction_state.cpp
GetNewDataFile, ducklake_metadata_manager.cpp DropTables cleanup,
ducklake_flush_inlined_data.cpp) and applies cleanly to fork behavior:
- The client-side superseded-inlined-table drop lands in the no-changes
  Commit() branch only; the fork's server-side commit path (FlushChanges /
  ducklake_server_side_commit.cpp) is untouched.
- The partition remap fix flows through the shared
  GetNewPartitionKey/GetNewDataFile pipeline that the fork's server-side
  commit also uses; where local_partition_id is unset (e.g. staged-commit
  replays, catalog-loaded partitions) the IsValid() fallback preserves
  prior behavior.
- No .github/CI files were touched by upstream in this range.

DuckDB submodule pin kept at d8cdaa33 (v1.5.5); upstream did not move it in
this range.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@fuziontech
fuziontech requested a review from a team July 30, 2026 10:19
@fuziontech
fuziontech merged commit 6768849 into posthog/v1.5.5 Jul 30, 2026
22 of 23 checks passed
@fuziontech
fuziontech deleted the merge/upstream-v1.5-variegata-2026-07-30 branch July 30, 2026 10:23
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.

4 participants