kDB: Knowledge DataBase
Loading...
Searching...
No Matches
SQLInterface_p.h
1#include <QList>
2#include <QPair>
3#include <QString>
4#include <QSharedPointer>
5
6#include <kDB/Repository/TriplesStore.h>
7
8class QVariant;
9
10namespace kDB::Repository::DatabaseInterface::PostgreSQL
11{
13 {
14 SQLInterface(const SQLInterface& _rhs);
15 SQLInterface& operator=(const SQLInterface& _rhs);
18 public:
19
20 enum LockMode
21 {
22 AccessShare, RowShare, RowExclusive, ShareUpdateExclusive, Share, ShareRowExclusive, Exclusive, AccessExclusive
23 };
24 static knowCore::ReturnVoid lock(const Transaction& _transaction, const QString& _tablename, LockMode _lockMode);
25 static knowCore::ReturnVoid lockTriplesStore(const Transaction& _transaction, const QString& _tablename, bool _lock_versioning);
26
27 static QString subjectString(const knowRDF::Subject& _subject);
28
29 static knowCore::ReturnVoid dropView(const QueryConnectionInfo& _connection_info, const QString& _name);
30
31 static QString viewTableName(const Connection& _connection, const QString& _name);
32
33 static QString persistentDatasetsUnionTableName(const Connection& _connection, const QString& _name);
34 static knowCore::ReturnVoid updateUnionView(const QueryConnectionInfo& _connection_info, bool _temporary, const QString& _name, const QList<RDFDataset>& _documents);
35 static knowCore::ReturnVoid addToUnion(const QueryConnectionInfo& _connection_info, const knowCore::Uri& _union_name, const knowCore::Uri& _dataset_name);
36 static knowCore::ReturnVoid removeFromUnion(const QueryConnectionInfo& _connection_info, const knowCore::Uri& _union_name, const knowCore::Uri& _dataset_name);
37 static knowCore::ReturnVoid clearUnion(const QueryConnectionInfo& _connection_info, const knowCore::Uri& _union_name);
38 static QHash<QString, QStringList> getUnions(const QueryConnectionInfo& _connection_info);
39
40 static knowCore::ReturnVoid setDefinition(const QueryConnectionInfo& _connection_info, const RDFView::ViewDefinition& _definition);
41 static knowCore::ReturnVoid removeViewDefinition(const QueryConnectionInfo& _connection_info, const knowCore::Uri& _name);
42 static QList<RDFView::ViewDefinition> getDefinitions(const QueryConnectionInfo& _connection_info);
43
44 static knowCore::ReturnValue<QString> createTriplesStore(const Transaction& _transaction, const knowCore::Uri& _name);
45 static knowCore::ReturnVoid removeTriplesStore(const Transaction& _transaction, const knowCore::Uri& _name);
46 static knowCore::ReturnVoid createIndex(const Transaction& _transaction, const TriplesStore& _store, const QString& _field);
47
48 static knowCore::ReturnVoid enableNotifications(const QueryConnectionInfo& _connection_info, const TriplesStore& _store);
49 static knowCore::ReturnVoid disableNotifications(const QueryConnectionInfo& _connection_info, const TriplesStore& _store);
50 static QString notificationsChannel(const TriplesStore& _store);
51
52 static knowCore::ReturnVoid enableVersioning(const Transaction& _transaction, const TriplesStore& _store);
53 static knowCore::ReturnVoid disableVersioning(const QueryConnectionInfo& _connection_info, const TriplesStore& _store);
54
55 static knowCore::ReturnVoid startListeningChanges(const Transaction& _transaction, const TriplesStore& _store);
56 static knowCore::ReturnVoid stopListeningChanges(const Transaction& _transaction, const TriplesStore& _store);
57 static QList<std::tuple<QString, knowRDF::Triple>> retrieveChanges(const Transaction& _transaction, const TriplesStore& _store);
58
62 static QByteArray computeContentHash(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name);
68 static knowCore::ReturnValue<int> createRevision(const Transaction& _transaction, const QString& _triples_store_table_name, const QByteArray& _revision_hash, const QByteArray& _content_hash, int _historicity , int _tags, int _distance_to_root);
73 static knowCore::ReturnVoid removeRevision(const Transaction& _transaction, const VersionControl::Revision& _revision);
74 static knowCore::ReturnVoid recordDelta(const Transaction& _transaction, const QString& _triples_store_table_name, int _parent, int _child, const QByteArray& _hash, const QByteArray& _delta);
75 static knowCore::ReturnVoid recordDeltaSignature(const Transaction& _transaction, const QString& _triples_store_table_name, int _parent, int _child, const QByteArray& _author, const knowCore::Timestamp& _timestamp, const QByteArray& _signature);
76 static knowCore::ReturnVoid setRevisionHash(const Transaction& _transaction, const QString& _triples_store_table_name, int _revision, const QByteArray& _hash, const QByteArray& _content_hash);
77 static knowCore::ReturnVoid setRevisionTags(const Transaction& _transaction, const QString& _triples_store_table_name, const VersionControl::Revision& _revision, int _tags);
81 static knowCore::ReturnVoid notifyNewRevision(const Transaction& _transaction, const QString& _triples_store_table_name, const QByteArray& _hash);
85 static knowCore::ReturnVoid notifyRevisionTagsChanged(const Transaction& _transaction, const QString& _triples_store_table_name, const QByteArray& _hash);
86
87 static QList<VersionControl::Delta> deltas(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _revisionId);
88 static knowCore::ReturnValue<VersionControl::Delta> delta(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _parent, int _child);
89 static knowCore::ReturnValue<VersionControl::Delta> delta(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const VersionControl::Revision& _parent, const VersionControl::Revision& _child);
90 static knowCore::ReturnValue<bool> hasDelta(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _parent, const QByteArray& _child);
91 static knowCore::ReturnValue<bool> hasDelta(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _parent, int _child);
92
96 static knowCore::ReturnValue<QList<VersionControl::Signature>> deltaSignatures(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _parent, int _child);
97
98 static knowCore::ReturnVoid setUnitConversionFactors(const QueryConnectionInfo& _connection_info);
99
100 private:
101 static QList<VersionControl::Revision> queryToRevisions(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, knowDBC::Query& _query);
102 public:
103 static QList<VersionControl::Revision> revisions(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name);
107 static QList<VersionControl::Revision> revisionChildren(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _revisionId);
108 static QList<VersionControl::Revision> heads(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name);
112 static knowCore::ReturnValue<int> revisionId(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _hash);
113 static knowCore::ReturnValue<kDB::Repository::VersionControl::Revision> revision(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _hash);
114 static knowCore::ReturnValue<kDB::Repository::VersionControl::Revision> revision(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _revisionId);
115 static knowCore::ReturnValue<kDB::Repository::VersionControl::Revision> revision(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _content_hash, int _minimum_historicity);
116 static knowCore::ReturnValue<bool> hasRevision(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _hash);
117
118 static QList<qint32> forwardRevisionPath(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _source_hash, const QByteArray& _destination_hash);
119 static QList<qint32> forwardRevisionPath(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, int _source_id, int _destination_id);
120 static QPair<QList<qint32>, QList<qint32>> revisionPath(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QByteArray& _source_hash, const QByteArray& _destination_hash);
121 static knowCore::ReturnValue<QList<QList<qint32>>> revisionPath(const QueryConnectionInfo& _connection_info, const QString& _triples_store_table_name, const QList<QByteArray>& _revisions);
122
123 static knowCore::ReturnValue<knowCore::Value> parseMeta(const QJsonValue& _value);
124 static knowCore::ReturnValue<knowCore::Value> getMeta(const QueryConnectionInfo& _connection_info, const QString& _store, const QStringList& _path);
125 static knowCore::ReturnVoid setMeta(const QueryConnectionInfo& _connection_info, const QString& _store, const QStringList& _path, const knowCore::Value& _value);
126
127 static knowCore::ReturnVoid dropMeta(const QueryConnectionInfo& _connection_info, const QString& _store, const QStringList& _path);
128
129 static QList<knowCore::Uri> getGraphUris(const Transaction& _transaction, const QString& _tablename, const QString& _field);
130 static knowCore::ReturnVoid removeTriples(const Transaction& _transaction, TriplesStore* _store, const knowCore::Uri& _store_uri);
131 static knowCore::ReturnVoid insertTriples(const Transaction& _transaction, TriplesStore* _store, const knowCore::Uri& _store_uri);
132
133 static knowRDF::Triple getTriple(const Connection& _connection, const knowDBC::Result& _result, int _tuple, int _subject, int _predicate, int _object, bool _blank_as_uri);
134
140 static knowCore::ReturnVoid insertOrRemoveTriples(bool _insert, const Transaction& _connection_info, const QList<knowRDF::Triple>& _triples, const QString& _table_to_model);
141 private:
142 bool insertValue(const QueryConnectionInfo& _connection_info, const QString& _tablename, const QVariant& _variant);
143 };
144}
Definition Forward.h:10
Definition Revision.h:9
Definition ViewDefinition.h:10
Definition Connection.h:25
static knowCore::ReturnVoid removeRevision(const Transaction &_transaction, const VersionControl::Revision &_revision)
Definition SQLInterface.cpp:560
static knowCore::ReturnValue< QList< VersionControl::Signature > > deltaSignatures(const QueryConnectionInfo &_connection_info, const QString &_triples_store_table_name, int _parent, int _child)
Definition SQLInterface.cpp:704
static knowCore::ReturnValue< int > createRevision(const Transaction &_transaction, const QString &_triples_store_table_name, const QByteArray &_revision_hash, const QByteArray &_content_hash, int _historicity, int _tags, int _distance_to_root)
Definition SQLInterface.cpp:537
static knowCore::ReturnVoid notifyRevisionTagsChanged(const Transaction &_transaction, const QString &_triples_store_table_name, const QByteArray &_hash)
Definition SQLInterface.cpp:692
static QList< VersionControl::Revision > revisionChildren(const QueryConnectionInfo &_connection_info, const QString &_triples_store_table_name, int _revisionId)
Definition SQLInterface.cpp:883
static knowCore::ReturnValue< int > revisionId(const QueryConnectionInfo &_connection_info, const QString &_triples_store_table_name, const QByteArray &_hash)
Definition SQLInterface.cpp:982
static knowCore::ReturnVoid notifyNewRevision(const Transaction &_transaction, const QString &_triples_store_table_name, const QByteArray &_hash)
Definition SQLInterface.cpp:680
static knowCore::ReturnVoid insertOrRemoveTriples(bool _insert, const Transaction &_connection_info, const QList< knowRDF::Triple > &_triples, const QString &_table_to_model)
Definition SQLInterface.cpp:1445
static QByteArray computeContentHash(const QueryConnectionInfo &_connection_info, const QString &_triples_store_table_name)
Definition SQLInterface.cpp:518
Definition QueryConnectionInfo.h:8
Definition Transaction.h:19
Definition TriplesStore.h:18
Definition Timestamp.h:39
Definition Uri.h:15
Definition Value.h:21
Definition Query.h:12
Definition Result.h:23
Definition Subject.h:21
Definition Triple.h:19