Fix DROP sql for partitioned table.

This commit is contained in:
eelke 2023-01-30 20:08:24 +01:00
parent 2ff9577d41
commit 61f90668d8
6 changed files with 33 additions and 4 deletions

View file

@ -114,6 +114,17 @@ QString PgClass::aclAllPattern() const
return {}; return {};
} }
QString PgClass::ddlTypeName() const
{
switch (kind)
{
case RelKind::PartitionedTable: return "PARTITIONED TABLE";
return "TABLE";
default:
return PgNamespaceObject::ddlTypeName();
}
}
QString PgClass::createTableSql() const QString PgClass::createTableSql() const
{ {
QString sql; QString sql;

View file

@ -14,7 +14,8 @@ enum class RelPersistence {
void operator<<(RelPersistence &s, const Pgsql::Value &v); void operator<<(RelPersistence &s, const Pgsql::Value &v);
enum class RelKind { enum class RelKind
{
Table, // r Table, // r
Index, // i Index, // i
Sequence, // S Sequence, // S
@ -58,6 +59,9 @@ public:
QString typeName() const override; QString typeName() const override;
QString aclAllPattern() const override; QString aclAllPattern() const override;
protected:
virtual QString ddlTypeName() const override;
private: private:
mutable QString createSqlCache; mutable QString createSqlCache;

View file

@ -93,7 +93,7 @@ QString PgServerObject::aclAllPattern() const
QString PgServerObject::dropSql() const QString PgServerObject::dropSql() const
{ {
return "DROP " % typeName() % " " % fullyQualifiedQuotedObjectName() % ";"; return "DROP " % ddlTypeName() % " " % fullyQualifiedQuotedObjectName() % ";";
} }
QString PgServerObject::createSql() const QString PgServerObject::createSql() const
@ -110,3 +110,8 @@ QString PgServerObject::commentSql() const
+ " IS " + escapeLiteral(description) + ";"; + " IS " + escapeLiteral(description) + ";";
} }
QString PgServerObject::ddlTypeName() const
{
return typeName();
}

View file

@ -46,6 +46,10 @@ public:
virtual QString dropSql() const; virtual QString dropSql() const;
virtual QString createSql() const; virtual QString createSql() const;
QString commentSql() const; QString commentSql() const;
protected:
virtual QString ddlTypeName() const;
private: private:
Oid m_ownerOid = InvalidOid; Oid m_ownerOid = InvalidOid;
const PgAuthId * m_owner = nullptr; const PgAuthId * m_owner = nullptr;

View file

@ -0,0 +1,5 @@
---
fixes:
- |
Fix the SQL to drop a partitioned table should be the same as for a normal table.
It should NOT include the word PARTITIONED.