Skip to content

Conversation

@igfoo
Copy link
Contributor

@igfoo igfoo commented Nov 19, 2025

No description provided.

@igfoo igfoo added the depends on internal PR This PR should only be merged in sync with an internal Semmle PR label Nov 19, 2025
@github-actions github-actions bot added the C++ label Nov 19, 2025
@igfoo igfoo marked this pull request as ready for review November 21, 2025 15:36
@igfoo igfoo requested a review from a team as a code owner November 21, 2025 15:36
Copilot AI review requested due to automatic review settings November 21, 2025 15:36
Copilot finished reviewing on behalf of igfoo November 21, 2025 15:37
Copy link
Contributor

Copilot AI left a comment

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 the beginnings of overlay support for C++ by introducing two new database relations (databaseMetadata and overlayChangedFiles) to the database schema. These relations enable the CLI to track metadata about overlay databases and identify which files have been changed during overlay database construction.

Key changes:

  • Added databaseMetadata and overlayChangedFiles relations to the database schema
  • Created upgrade and downgrade scripts to handle schema migration
  • Enabled overlay evaluation support via compileForOverlayEval: true configuration

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
cpp/ql/lib/semmlecode.cpp.dbscheme Added two new relations (databaseMetadata and overlayChangedFiles) after line 2381 for overlay support
cpp/ql/lib/qlpack.yml Added compileForOverlayEval: true configuration to enable overlay evaluation
cpp/ql/lib/upgrades/1a6854060d5d3ada16c580a29f8c5ce21f3367f8/upgrade.properties Upgrade script properties defining the schema migration
cpp/ql/lib/upgrades/1a6854060d5d3ada16c580a29f8c5ce21f3367f8/semmlecode.cpp.dbscheme Complete new schema with overlay support (2469 lines)
cpp/ql/lib/upgrades/1a6854060d5d3ada16c580a29f8c5ce21f3367f8/old.dbscheme Previous schema version without overlay support (2450 lines)
cpp/downgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties Downgrade script properties to remove overlay relations
cpp/downgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.dbscheme Schema version for downgrade (2450 lines, matches old schema)

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

@@ -1762,13 +1762,60 @@
</e>
</typesizes>
<stats>
<relation>
Copy link
Contributor

Choose a reason for hiding this comment

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

Where's this data coming from? A test, or artificial data added to DCA?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's artificial. codeql dataset measure is currently unable to make stats for overlay databases, so we can't get it from a test.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for clarifying.

Copy link
Contributor

@jketema jketema left a comment

Choose a reason for hiding this comment

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

One question, otherwise LGTM.

@jketema jketema added the no-change-note-required This PR does not need a change note label Nov 21, 2025
Copy link
Contributor

@jketema jketema left a comment

Choose a reason for hiding this comment

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

LGTM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C++ depends on internal PR This PR should only be merged in sync with an internal Semmle PR no-change-note-required This PR does not need a change note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants