diff options
Diffstat (limited to 'libbrep/package.hxx')
-rw-r--r-- | libbrep/package.hxx | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/libbrep/package.hxx b/libbrep/package.hxx index b66fade..affa2ac 100644 --- a/libbrep/package.hxx +++ b/libbrep/package.hxx @@ -20,7 +20,7 @@ // #define LIBBREP_PACKAGE_SCHEMA_VERSION_BASE 27 -#pragma db model version(LIBBREP_PACKAGE_SCHEMA_VERSION_BASE, 33, closed) +#pragma db model version(LIBBREP_PACKAGE_SCHEMA_VERSION_BASE, 34, closed) namespace brep { @@ -260,7 +260,7 @@ namespace brep // optional<string> interactive; // Note: foreign-mapped in build. - timestamp creation_timestamp; + timestamp creation_timestamp; // Note: foreign-mapped in build. bool archived = false; // Note: foreign-mapped in build. optional<tenant_service> service; // Note: foreign-mapped in build. @@ -269,7 +269,7 @@ namespace brep // of the last attempt to load the tenant (see the build_unloaded() tenant // services notification for details). // - optional<timestamp> loaded_timestamp; + optional<timestamp> loaded_timestamp; // Note: foreign-mapped in build. // Note that due to the implementation complexity and performance // considerations, the service notifications are not synchronized. This @@ -324,6 +324,10 @@ namespace brep #pragma db index member(service.id) + // Speed-up queries with ordering the result by loaded_timestamp. + // + #pragma db member(loaded_timestamp) index + private: friend class odb::access; tenant () = default; @@ -433,6 +437,20 @@ namespace brep repository (): tenant (id.tenant), canonical_name (id.canonical_name) {} }; + // Repositories count. + // + #pragma db view object(repository) + struct repository_count + { + size_t result; + + operator size_t () const {return result;} + + // Database mapping. + // + #pragma db member(result) column("count(" + repository::id.tenant + ")") + }; + // The 'to' expression calls the PostgreSQL to_tsvector(weighted_text) // function overload (package-extra.sql). Since we are only interested // in "write-only" members of this type, make the 'from' expression |