diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2023-02-17 21:06:00 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2023-02-20 16:17:32 +0300 |
commit | eaebfcff492cf7f707b44a3d28620e786116faf1 (patch) | |
tree | f76076ca5c06be6cf932c9e330a282546ec1008c /bpkg | |
parent | 4887f43d983898e48feaffc467327bc7fc4e1180 (diff) |
Store in database and document type and language package manifest values
Diffstat (limited to 'bpkg')
-rw-r--r-- | bpkg/package.hxx | 24 | ||||
-rw-r--r-- | bpkg/package.xml | 44 |
2 files changed, 67 insertions, 1 deletions
diff --git a/bpkg/package.hxx b/bpkg/package.hxx index e811e62..e5e70ad 100644 --- a/bpkg/package.hxx +++ b/bpkg/package.hxx @@ -11,6 +11,7 @@ #include <type_traits> // static_assert #include <odb/core.hxx> +#include <odb/section.hxx> #include <odb/nested-container.hxx> #include <libbutl/timestamp.hxx> @@ -27,7 +28,7 @@ // #define DB_SCHEMA_VERSION_BASE 12 -#pragma db model version(DB_SCHEMA_VERSION_BASE, 22, closed) +#pragma db model version(DB_SCHEMA_VERSION_BASE, 23, closed) namespace bpkg { @@ -513,6 +514,10 @@ namespace bpkg operator size_t () const {return result;} }; + // language + // + #pragma db value(language) definition + // package_location // #pragma db value @@ -685,6 +690,11 @@ namespace bpkg upstream_version_type version; optional<string> upstream_version; + optional<string> type; + + small_vector<language, 1> languages; + odb::section languages_section; + optional<package_name> project; // List of repository fragments to which this package version belongs @@ -743,6 +753,8 @@ namespace bpkg : id (move (m.name), m.version), version (move (m.version)), upstream_version (move (m.upstream_version)), + type (move (m.type)), + languages (move (m.languages)), project (move (m.project)), dependencies (convert (move (m.dependencies))), tests (move (m.tests)), @@ -794,6 +806,16 @@ namespace bpkg // #pragma db member(id) id column("") #pragma db member(version) set(this.version.init (this.id.version, (?))) + + // languages + // + #pragma db member(languages) id_column("") value_column("language_") \ + section(languages_section) + + #pragma db member(languages_section) load(lazy) update(always) + + // locations + // #pragma db member(locations) id_column("") value_column("") \ unordered value_not_null diff --git a/bpkg/package.xml b/bpkg/package.xml index a8558fd..fd332bc 100644 --- a/bpkg/package.xml +++ b/bpkg/package.xml @@ -1,4 +1,48 @@ <changelog xmlns="http://www.codesynthesis.com/xmlns/odb/changelog" database="sqlite" version="1"> + <changeset version="23"> + <alter-table name="main.available_package"> + <add-column name="type" type="TEXT" null="true"/> + </alter-table> + <add-table name="main.available_package_languages" kind="container"> + <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/> + <column name="version_epoch" type="INTEGER" null="true"/> + <column name="version_canonical_upstream" type="TEXT" null="true"/> + <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/> + <column name="version_revision" type="INTEGER" null="true"/> + <column name="version_iteration" type="INTEGER" null="true"/> + <column name="index" type="INTEGER" null="true"/> + <column name="language_name" type="TEXT" null="true"/> + <column name="language_impl" type="INTEGER" null="true"/> + <foreign-key name="object_id_fk" on-delete="CASCADE"> + <column name="name"/> + <column name="version_epoch"/> + <column name="version_canonical_upstream"/> + <column name="version_canonical_release"/> + <column name="version_revision"/> + <column name="version_iteration"/> + <references table="main.available_package"> + <column name="name"/> + <column name="version_epoch"/> + <column name="version_canonical_upstream"/> + <column name="version_canonical_release"/> + <column name="version_revision"/> + <column name="version_iteration"/> + </references> + </foreign-key> + <index name="available_package_languages_object_id_i"> + <column name="name"/> + <column name="version_epoch"/> + <column name="version_canonical_upstream"/> + <column name="version_canonical_release"/> + <column name="version_revision"/> + <column name="version_iteration"/> + </index> + <index name="available_package_languages_index_i"> + <column name="index"/> + </index> + </add-table> + </changeset> + <changeset version="22"> <alter-table name="main.available_package"> <add-column name="upstream_version" type="TEXT" null="true"/> |