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

@ -111,7 +111,18 @@ QString PgClass::aclAllPattern() const
default:
break;
}
return {};
return {};
}
QString PgClass::ddlTypeName() const
{
switch (kind)
{
case RelKind::PartitionedTable: return "PARTITIONED TABLE";
return "TABLE";
default:
return PgNamespaceObject::ddlTypeName();
}
}
QString PgClass::createTableSql() const

View file

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

View file

@ -37,7 +37,7 @@ QString PgObject::fullyQualifiedQuotedObjectName() const
const PgDatabaseCatalog& PgObject::catalog() const
{
return *m_catalog;
return *m_catalog;
}

View file

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

View file

@ -46,6 +46,10 @@ public:
virtual QString dropSql() const;
virtual QString createSql() const;
QString commentSql() const;
protected:
virtual QString ddlTypeName() const;
private:
Oid m_ownerOid = InvalidOid;
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.