mirror of
https://github.com/NixOS/nix.git
synced 2025-11-19 08:49:35 +01:00
Rework the db schema for derivation outputs
Add a new table for tracking the derivation output mappings. We used to hijack the `DerivationOutputs` table for that, but (despite its name), it isn't a really good fit: - Its entries depend on the drv being a valid path, making it play badly with garbage collection and preventing us to copy a drv output without copying the whole drv closure too; - It dosen't guaranty that the output path exists; By using a different table, we can experiment with a different schema better suited for tracking the output mappings of CA derivations. (incidentally, this also fixes #4138)
This commit is contained in:
parent
58cdab64ac
commit
3ac9d74eb1
5 changed files with 172 additions and 80 deletions
|
|
@ -210,8 +210,8 @@ public:
|
|||
|
||||
/* Register the store path 'output' as the output named 'outputName' of
|
||||
derivation 'deriver'. */
|
||||
void registerDrvOutput(const DrvOutputId & outputId, const DrvOutputInfo & info) override;
|
||||
void registerDrvOutput_(State & state, uint64_t deriver, const string & outputName, const StorePath & output);
|
||||
void registerDrvOutput(const Realisation & info) override;
|
||||
void cacheDrvOutputMapping(State & state, const uint64_t deriver, const string & outputName, const StorePath & output);
|
||||
|
||||
std::optional<const Realisation> queryRealisation(const DrvOutput&) override;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue