diff --git a/pglab/crud/CrudModel.cpp b/pglab/crud/CrudModel.cpp index bf3016a..d688bd6 100644 --- a/pglab/crud/CrudModel.cpp +++ b/pglab/crud/CrudModel.cpp @@ -525,7 +525,8 @@ void CrudModel::initializeColumnList() { columnList.clear(); columnList.reserve(m_roData->cols()); - auto columns = m_database->catalog()->attributes()->getColumnsForRelation(m_table->oid()); + auto atts = m_database->catalog()->attributes(); + auto columns = atts->getColumnsForRelation(m_table->oid()); for (int col = 0; col < m_roData->cols(); ++col) { int attnum = m_roData->ftableCol(col); diff --git a/pglab/crud/CrudModel.h b/pglab/crud/CrudModel.h index 979580c..5a6beb3 100644 --- a/pglab/crud/CrudModel.h +++ b/pglab/crud/CrudModel.h @@ -211,6 +211,13 @@ private: bool callLoadData = false; std::shared_ptr m_roData; + + struct ColumnData + { + std::string name; + // identity allways or generated + }; + std::vector columnList; // list of columnMeta 1 to 1 with columns in m_roData. PendingRowList m_pendingRowList; diff --git a/pglablib/catalog/PgConstraint.cpp b/pglablib/catalog/PgConstraint.cpp index 83ad036..dd2d5ce 100644 --- a/pglablib/catalog/PgConstraint.cpp +++ b/pglablib/catalog/PgConstraint.cpp @@ -24,6 +24,12 @@ void operator<<(ConstraintType &s, const Pgsql::Value &v) case 'x': s = ConstraintType::ExclusionConstraint; break; + case 'n': + s = ConstraintType::NotNull; + break; + default: + s = ConstraintType::Unknown; + break; } } @@ -49,7 +55,10 @@ QString ShortNameForConstraintType(ConstraintType ct) case ConstraintType::ExclusionConstraint: s = "XC"; break; - default: + case ConstraintType::NotNull: + s = "NN"; + break; + default: s = "?"; break; } @@ -78,6 +87,9 @@ QString LongNameForConstraintType(ConstraintType ct) case ConstraintType::ExclusionConstraint: s = "exclusion constraint"; break; + case ConstraintType::NotNull: + s = "not null"; + break; default: s = "?"; break; diff --git a/pglablib/catalog/PgConstraint.h b/pglablib/catalog/PgConstraint.h index ae8feac..56f64c8 100644 --- a/pglablib/catalog/PgConstraint.h +++ b/pglablib/catalog/PgConstraint.h @@ -11,12 +11,14 @@ #include enum class ConstraintType { + Unknown, // not recognized, new??? PrimaryKey, // p ForeignKey, // f Unique, // u Check, // c ConstraintTrigger, // t ExclusionConstraint, // x + NotNull, // n }; void operator<<(ConstraintType &s, const Pgsql::Value &v);