Dmitry Marakasov
Dmitry Marakasov
So, the idea is to implement it along with #527. In fact, it seems to be the only reliable way to ignore and unignore versions post-factum. #527 would provide granular...
Aggregation by version done here needs some extra attention: - It needs to be aware of version comparison. E.g. it needs to treat `1.0` and `1.0.0` as single version and...
This is also a very good chance to switch some code to C++, as some parts are really asking for this: - Proper parallelization. Python multiprocessing facilities are just lacking,...
```sql CREATE TABLE repositories_history_new AS WITH input AS ( SELECT ts, jsonb_each(snapshot) AS d FROM repositories_history ) SELECT ts, (select id from repositories where name=(d).key) AS repository_id, ((d).value->>'num_problems')::int AS num_problems,...
Alternatively, more compact (2/3x) representation based on composite type instead of json: ```sql CREATE TYPE repository_statistics AS ( id smallint, num_problems integer, num_maintainers integer, num_metapackages integer, num_metapackages_newest integer, num_metapackages_unique integer,...
Query to clean up duplicate rows from the table created with the first method: ```sql WITH duplicate_rows AS ( SELECT repository_id, ts FROM ( SELECT repository_id, ts, row(num_problems, num_maintainers, num_projects,...
NB. Instead of eliminating redundant data points, we could instead modify repository update process to make it either generate a new history data point when repository statistics change, or update...
Notably, there are history entries which reference no longer existent repositories. Need to create legacy entries for them as they could be needed in other places which want to switch...
This is actually planned from day 0 (#1). release-monitoring.org integration was also thought of, but it's conflicting package naming makes it nonviable.
Some quick tests. ``` repology=> create table create table test as select effname, array_agg(distinct n) from (select effname, unnest('{}'::text[] || effname || name || srcname || binname) as n from...