[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#873729: UDD: size column in UDD is too small



Package: qa.debian.org
Severity: normal
User: qa.debian.org@packages.debian.org
Usertags: udd

The UDD column to represent the size of the binary package is an 'int' which
is a signed, 32 bit integer. Packages keep getting bigger and now there are
dbgsym packages that are bigger than that 2GiB limit.

The attached patch enlarges the column to be bigints (64 bit signed integers)
which should see us through for the time being...

(UDD does not currently import dbgsym packages; it probably should)

cheers
Stuart


$ xzcat .../debian-debug/dists/sid-debug/main/*/Packages.xz | grep-dctrl -F Size --ge 2147483648 -s Package,Source,Size,Architecture
Package: clang-5.0-dbgsym
Source: llvm-toolchain-5.0
Size: 2169432936
Architecture: amd64

Package: clang-6.0-dbgsym
Source: llvm-toolchain-snapshot
Size: 2221263616
Architecture: amd64

Package: clang-5.0-dbgsym
Source: llvm-toolchain-5.0
Size: 2161246344
Architecture: arm64

Package: clang-5.0-dbgsym
Source: llvm-toolchain-5.0
Size: 2175035264
Architecture: armel

Package: clang-5.0-dbgsym
Source: llvm-toolchain-5.0
Size: 2323314752
Architecture: s390x
>From d82ccb3759fbf0c81a789a2e3fc77b5e19cb832f Mon Sep 17 00:00:00 2001
From: Stuart Prescott <stuart@debian.org>
Date: Thu, 31 Aug 2017 00:32:48 +1000
Subject: [PATCH] Switch 'size' column to use bigint

Some binary packages are now greater than 2GiB in size (particularly dbgsym
packages) so to fit the size into the table, the a wider integer format must
be used.
---
 sql/setup.sql   | 8 ++++----
 sql/upgrade.sql | 7 +++++++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/sql/setup.sql b/sql/setup.sql
index 48a9101..08a67fc 100644
--- a/sql/setup.sql
+++ b/sql/setup.sql
@@ -62,7 +62,7 @@ CREATE TABLE packages
   (package text, version debversion, architecture text, maintainer text, maintainer_name text, maintainer_email text, description
     text, description_md5 text, source text, source_version debversion, essential text, depends text,
     recommends text, suggests text, enhances text, pre_depends text, breaks text,
-    installed_size int, homepage text, size int,
+    installed_size int, homepage text, size bigint,
     build_essential text, origin text, sha1 text, replaces text, section text,
     md5sum text, bugs text, priority text, tag text, task text, python_version text,
     ruby_versions text, 
@@ -118,7 +118,7 @@ CREATE TABLE ubuntu_packages
   (package text, version debversion, architecture text, maintainer text, maintainer_name text, maintainer_email text, description
     text, description_md5 text, source text, source_version debversion, essential text, depends text,
     recommends text, suggests text, enhances text, pre_depends text, breaks text,
-    installed_size int, homepage text, size int,
+    installed_size int, homepage text, size bigint,
     build_essential text, origin text, sha1 text, replaces text, section text,
     md5sum text, bugs text, priority text, tag text, task text, python_version text,
     ruby_versions text, 
@@ -174,7 +174,7 @@ CREATE TABLE derivatives_packages
   (package text, version debversion, architecture text, maintainer text, maintainer_name text, maintainer_email text, description
     text, description_md5 text, source text, source_version debversion, essential text, depends text,
     recommends text, suggests text, enhances text, pre_depends text, breaks text,
-    installed_size int, homepage text, size int,
+    installed_size int, homepage text, size bigint,
     build_essential text, origin text, sha1 text, replaces text, section text,
     md5sum text, bugs text, priority text, tag text, task text, python_version text,
     ruby_versions text, 
@@ -231,7 +231,7 @@ CREATE TABLE archived_packages
   (package text, version debversion, architecture text, maintainer text, maintainer_name text, maintainer_email text, description
     text, description_md5 text, source text, source_version debversion, essential text, depends text,
     recommends text, suggests text, enhances text, pre_depends text, breaks text,
-    installed_size int, homepage text, size int,
+    installed_size int, homepage text, size bigint,
     build_essential text, origin text, sha1 text, replaces text, section text,
     md5sum text, bugs text, priority text, tag text, task text, python_version text,
     ruby_versions text, 
diff --git a/sql/upgrade.sql b/sql/upgrade.sql
index 3257f45..63f31a1 100644
--- a/sql/upgrade.sql
+++ b/sql/upgrade.sql
@@ -483,3 +483,10 @@ INSERT INTO bts_tags (tag,tag_type) VALUES ('bullseye-ignore','');
 UPDATE releases SET releaseversion='8' WHERE release='jessie';
 UPDATE releases SET releaseversion='8' WHERE release='jessie-security';
 UPDATE releases SET releaseversion='8' WHERE release='jessie-proposed-updates';
+
+
+-- 2017-08-30 change package's size column to be bigint for packages > 2GB
+ALTER TABLE packages ALTER COLUMN size TYPE bigint;
+ALTER TABLE ubuntu_packages ALTER COLUMN size TYPE bigint;
+ALTER TABLE derivatives_packages ALTER COLUMN size TYPE bigint;
+ALTER TABLE archived_packages ALTER COLUMN size TYPE bigint;
-- 
2.11.0


Reply to: