From 22059500a799d788c09171e31b668ab8259ec057 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Sat, 17 Nov 2018 23:41:25 +0300 Subject: Add support for builds manifest value --- libbrep/build-package.hxx | 46 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 37 deletions(-) (limited to 'libbrep/build-package.hxx') diff --git a/libbrep/build-package.hxx b/libbrep/build-package.hxx index 0d6b5bf..4294106 100644 --- a/libbrep/build-package.hxx +++ b/libbrep/build-package.hxx @@ -69,17 +69,6 @@ namespace brep build_repository (): canonical_name (id.canonical_name) {} }; - // "Foreign" value type that is mapped to a subset of the build_constraint - // value type (see libbpkg/manifest.hxx for details). - // - #pragma db value - struct build_constraint_subset - { - bool exclusion; - string config; - optional target; - }; - // Foreign object that is mapped to a subset of the package object. // #pragma db object table("build_package") pointer(shared_ptr) readonly @@ -90,15 +79,21 @@ namespace brep upstream_version version; lazy_shared_ptr internal_repository; - // Mapped to a subset of the package object build_constraints member - // using the PostgreSQL foreign table mechanism. + // Mapped to the package object builds member using the PostgreSQL foreign + // table mechanism. + // + build_class_exprs builds; + + // Mapped to the package object build_constraints member using the + // PostgreSQL foreign table mechanism. // - vector constraints; + build_constraints constraints; // Database mapping. // #pragma db member(id) id column("") #pragma db member(version) set(this.version.init (this.id.version, (?))) + #pragma db member(builds) id_column("") value_column("") #pragma db member(constraints) id_column("") value_column("") private: @@ -149,29 +144,6 @@ namespace brep // #pragma db member(result) column("count(" + build_package::id.name + ")") }; - - // Packages that have the build constraints. Note that only buildable - // (internal and non-stub) packages can have such constraints, so there is - // no need for additional checks. - // - #pragma db view \ - table("build_package_constraints" = "c") \ - object(build_package inner: \ - "c.exclusion AND " \ - "c.tenant = " + build_package::id.tenant + "AND" + \ - "c.name = " + build_package::id.name + "AND" + \ - "c.version_epoch = " + build_package::id.version.epoch + "AND" + \ - "c.version_canonical_upstream = " + \ - build_package::id.version.canonical_upstream + "AND" + \ - "c.version_canonical_release = " + \ - build_package::id.version.canonical_release + "AND" + \ - "c.version_revision = " + build_package::id.version.revision) \ - object(build_tenant: build_package::id.tenant == build_tenant::id) \ - query(distinct) - struct build_constrained_package - { - shared_ptr package; - }; } #endif // LIBBREP_BUILD_PACKAGE_HXX -- cgit v1.1