Skip to content

fix(db): reject cyclic class inheritance imports#12903

Open
megayu wants to merge 2 commits into
masterfrom
fix/edn-class-extends-cycle
Open

fix(db): reject cyclic class inheritance imports#12903
megayu wants to merge 2 commits into
masterfrom
fix/edn-class-extends-cycle

Conversation

@megayu

@megayu megayu commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds cycle detection for class inheritance (:build/class-extends) during SQLite build transactions, preventing invalid ontology imports that would create cyclic class graphs (per db-test issue #998).

Changes:

  • Added a pre-build validation step to reject cycles in :build/class-extends graphs.
  • Added new tests covering self-cycle, multi-class cycle, and a valid diamond-shaped inheritance graph.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
deps/db/src/logseq/db/sqlite/build.cljs Adds :build/class-extends cycle validation and invokes it during build-blocks-tx*.
deps/db/test/logseq/db/sqlite/build_test.cljs Adds regression tests ensuring cyclic inheritance is rejected and non-cyclic inheritance succeeds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread deps/db/src/logseq/db/sqlite/build.cljs Outdated
@megayu megayu requested a review from tiensonqin July 14, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EDN import crash with self-extending class

2 participants