Download raw body.
sqlports: show complete DistTuple
On Sun, 30 Nov 2025 11:39:30 +0100
Marc Espie <marc.espie.openbsd@gmail.com> wrote:
> On Fri, Nov 28, 2025 at 11:50:41AM -0800, Thomas Frohwein wrote:
> > Marc, ports@,
> >
> > It's been irking me for a while that sqlports' DistTuple shows only
> > the last tuple (set of 5 components) for a package, rather than all
> > of them. I figured out that the UNIQUE constraint on FullPkgPath for
> > _DistTuple and the `INSERT OR REPLACE` logic replace rather than add
> > multiple DIST_TUPLE sets to a package entry.
>
>
> Here is a proper patch.
>
> Basically, I included ->noreplace for completeness, but I never use
> it.
>
> The proper way, like for _categories, is to actually include the right
> columns in ->constraint, which spews out the correct
> unique(...) list in the table definition.
Thanks! I figured that my approach had problems; I have only marginal
experience with the pitfalls of SQLite. So thanks for fixing this up
into a proper patch.
I went ahead and committed it...
>
> Index: Makefile
> ===================================================================
> RCS file: /build/data/openbsd/cvs/ports/databases/sqlports/Makefile,v
> diff -u -p -r1.152 Makefile
> --- Makefile 3 Nov 2025 14:46:04 -0000 1.152
> +++ Makefile 30 Nov 2025 10:38:36 -0000
> @@ -1,5 +1,5 @@
> CATEGORIES = databases
> -V = 7.53
> +V = 7.54
> DISTNAME = sqlports-$V
> DISTFILES =
> COMMENT-main = sqlite database of ports
> Index: files/Var.pm
> ===================================================================
> RCS file:
> /build/data/openbsd/cvs/ports/databases/sqlports/files/Var.pm,v diff
> -u -p -r1.76 Var.pm --- files/Var.pm 3 Nov 2025 14:46:04
> -0000 1.76 +++ files/Var.pm 30 Nov 2025 10:37:14 -0000
> @@ -1233,10 +1233,10 @@ sub create_tables($self, $inserter)
> {
> $self->create_table(
> $self->fullpkgpath,
> - Sql::Column::Text->new("Type"),
> - Sql::Column::Text->new("Account"),
> - Sql::Column::Text->new("Project"),
> - Sql::Column::Text->new("Id"),
> + Sql::Column::Text->new("Type")->constraint,
> + Sql::Column::Text->new("Account")->constraint,
> + Sql::Column::Text->new("Project")->constraint,
> + Sql::Column::Text->new("Id")->constraint,
> Sql::Column::Text->new("Mv"));
> $self->create_view(
> $self->pathref,
sqlports: show complete DistTuple