C++: Add the beginnings of overlay support#20874
Conversation
There was a problem hiding this comment.
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
databaseMetadataandoverlayChangedFilesrelations to the database schema - Created upgrade and downgrade scripts to handle schema migration
- Enabled overlay evaluation support via
compileForOverlayEval: trueconfiguration
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> | |||
There was a problem hiding this comment.
Where's this data coming from? A test, or artificial data added to DCA?
There was a problem hiding this comment.
It's artificial. codeql dataset measure is currently unable to make stats for overlay databases, so we can't get it from a test.
jketema
left a comment
There was a problem hiding this comment.
One question, otherwise LGTM.
No description provided.