refactor table sql generation

This commit is contained in:
eelke 2022-01-21 18:53:47 +01:00
parent 3158a4364b
commit 14b5293dea
2 changed files with 40 additions and 24 deletions

View file

@ -127,7 +127,8 @@ QString PgClass::createTableSql() const
{
first = false;
}
else sql += ",\n ";
else
sql += ",\n ";
if (!col.islocal) sql += "-- ";
sql += col.columnDefinition(catalog());
}
@ -143,12 +144,24 @@ QString PgClass::createTableSql() const
sql += "\n ";
first = false;
}
else sql += ",\n ";
else
sql += ",\n ";
sql += getConstraintDefinition(catalog(), constraint, " ");
}
sql += "\n)";
{
sql += "\n)"
% generateInheritsSql()
// [ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
// [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
// [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
% generateTablespaceSql()
% ";\n";
return sql;
}
QString PgClass::generateInheritsSql() const
{
QString sql;
// [ INHERITS ( parent_table [, ... ] ) ]
auto parents = catalog().inherits()->getParentsOf(oid());
if (!parents.empty())
@ -163,17 +176,17 @@ QString PgClass::createTableSql() const
}
sql += ")";
}
}
// [ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
// [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
// [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
return sql;
}
QString PgClass::generateTablespaceSql() const
{
if (tablespace != 0)
{
auto ns = getTablespaceDisplayString(catalog(), tablespace);
sql += "\n TABLESPACE " % quoteIdent(ns);
return "\n TABLESPACE " % quoteIdent(ns);
}
sql += ";\n";
return sql;
return {};
}
QString PgClass::createViewSql() const
@ -192,3 +205,4 @@ QString PgClass::createViewSql() const
return sql;
}

View file

@ -59,6 +59,8 @@ private:
mutable QString createSqlCache;
QString createTableSql() const;
QString generateInheritsSql() const;
QString generateTablespaceSql() const;
QString createViewSql() const;
};