Rework of catalog objects. Several of them are now inheriting from common

base classes that implement common functionality.
This commit is contained in:
eelke 2018-11-25 19:45:06 +01:00
parent 840af1e0a9
commit 73c4cf4790
45 changed files with 340 additions and 265 deletions

View file

@ -38,7 +38,7 @@ void CrudModel::setConfig(std::shared_ptr<OpenDatabase> db, const PgClass &table
{
m_database = db;
m_table = table;
m_primaryKey = db->catalog()->constraints()->getPrimaryForRelation(table.oid);
m_primaryKey = db->catalog()->constraints()->getPrimaryForRelation(table.oid());
//cat->attributes()->getColumnsForRelation()
callLoadData = true;
auto dbconfig = m_database->config();
@ -163,7 +163,7 @@ QVariant CrudModel::data(const QModelIndex &index, int role) const
void CrudModel::loadData()
{
QString table_name = genFQTableName(*m_database->catalog(), m_table);
QString table_name = m_table->fullyQualifiedQuotedObjectName(); // genFQTableName(*m_database->catalog(), *m_table);
std::string q = "SELECT * FROM ";
q += std::string(table_name.toUtf8().data());
m_dbConn.send(q, [this] (Expected<std::shared_ptr<Pgsql::Result>> res, qint64) {
@ -295,7 +295,7 @@ std::tuple<QString, Pgsql::Params> CrudModel::createUpdateQuery(const PKeyValues
{
Pgsql::Params params;
auto data = pending_row.data();
QString table_name = genFQTableName(*m_database->catalog(), m_table);
QString table_name = m_table->fullyQualifiedQuotedObjectName(); //genFQTableName(*m_database->catalog(), *m_table);
QString buffer;
QTextStream q(&buffer);
q << "UPDATE " << table_name << " AS d\n SET ";
@ -329,12 +329,12 @@ std::tuple<QString, Pgsql::Params> CrudModel::createInsertQuery(const PendingRow
{
Pgsql::Params params;
auto data = pending_row.data();
QString table_name = genFQTableName(*m_database->catalog(), m_table);
QString table_name = m_table->fullyQualifiedQuotedObjectName(); // genFQTableName(*m_database->catalog(), *m_table);
QString buffer;
QTextStream q(&buffer);
q << "INSERT INTO " << table_name << "(";
auto columns = m_database->catalog()->attributes()->getColumnsForRelation(m_table.oid);
auto columns = m_database->catalog()->attributes()->getColumnsForRelation(m_table->oid());
bool first = true;
for (auto e : data) {
int num = e.first + 1;
@ -362,7 +362,7 @@ std::tuple<QString, Pgsql::Params> CrudModel::createInsertQuery(const PendingRow
std::tuple<QString, Pgsql::Params> CrudModel::createDeleteStatement(const PKeyValues &pkey_values)
{
Pgsql::Params params;
QString table_name = genFQTableName(*m_database->catalog(), m_table);
QString table_name = m_table->fullyQualifiedQuotedObjectName(); // genFQTableName(*m_database->catalog(), *m_table);
QString buffer;
QTextStream q(&buffer);
q << "DELETE FROM " << table_name;