DistroSeriesDifference table.
This script creates DistroSeriesDifference entries for the package
version differences between a derived DistroSeries and its parent.
The entries will still need to be processed by the cron job that works
out the exact differences. Any pre-existing DistroSeriesDifference
entries remain untouched.
| Function | compose_sql_find_latest_source_package_releases | Produce SQL that gets the last-published `SourcePackageRelease`s. |
| Function | compose_sql_find_differences | Produce SQL that finds differences for a DistroSeries. |
| Function | compose_sql_difference_type | Produce SQL to compute a difference's DistroSeriesDifferenceType. |
| Function | compose_sql_populate_distroseriesdiff | Create DistroSeriesDifference rows based on found differences. |
| Function | drop_table | Drop table, if it exists. |
| Function | populate_distroseriesdiff | Compare derived_distroseries to parent, and register differences. |
| Function | find_derived_series | Find all derived DistroSeries. |
| Class | DSDUpdater | Call DistroSeriesDifference.update() where appropriate. |
| Class | PopulateDistroSeriesDiff | Populate DistroSeriesDifference for pre-existing differences. |
Produce SQL that gets the last-published `SourcePackageRelease`s. Within `distroseries`, looks for the `SourcePackageRelease` belonging to each respective `SourcePackageName`'s respective latest `SourcePackagePublishingHistory`. For each of those, it produces a tuple consisting of: * `SourcePackageName` id: sourcepackagename * `SourcePackageRelease` id: sourcepackagerelease * Source package version: version. :return: SQL query, as a string.
Produce SQL that finds differences for a `DistroSeries`. The query compares `derived_distroseries` and its `previous_series` and for each package whose latest `SourcePackageRelease`s in the respective series differ, produces a tuple of: * `SourcePackageName` id: sourcepackagename * Source package version in derived series: source_version * Source package version in parent series: parent_source_version. :return: SQL query, as a string.
DistroSeriesDifferenceType.
Works with the parent_source_version and source_version fields as
produced by the SQL from compose_sql_find_differences.
| Returns | SQL query, as a string. | |
Create `DistroSeriesDifference` rows based on found differences.
Uses field values that describe the difference, as produced by the
SQL from `compose_sql_find_differences`:
* sourcepackagename
* source_version
* parent_source_version
Existing `DistroSeriesDifference` rows are not affected.
:param derived_distroseries: A derived `DistroSeries`.
:param temp_table: The name of a table to select the input fields
from.
:return: SQL query, as a string.
derived_distroseries to parent, and register differences.
The differences are registered by creating DistroSeriesDifference
records, insofar as they do not yet exist.