Improved formatting of generated table sql

- Removed empty line before first column
- The follow up lines of fkey's are indented
- The closing parentheses is now on a new line
This commit is contained in:
eelke 2019-12-01 07:09:18 +01:00
parent 2c2253f75e
commit e53b85bd86
3 changed files with 11 additions and 12 deletions

View file

@ -298,7 +298,7 @@ QString getColumnNameList(const PgDatabaseCatalog &catalog, Oid relid, const Sma
return result.str();
}
QString getForeignKeyConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint)
QString getForeignKeyConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint, const QString &indent)
{
//PgClass cls = catalog.classes()->getByKey(constraint.relid);
const PgClass *fcls = catalog.classes()->getByKey(constraint.frelid);
@ -310,10 +310,10 @@ QString getForeignKeyConstraintDefinition(const PgDatabaseCatalog &catalog, cons
deferrable = QLatin1String(" DEFERRABLE INITIALLY ") % (constraint.deferred ? "DEFERRED" : "IMMEDIATE");
}
return "\n FOREIGN KEY ("
% getColumnNameList(catalog, constraint.relid, constraint.key) % ")\n REFERENCES "
return "\n" + indent + "FOREIGN KEY ("
% getColumnNameList(catalog, constraint.relid, constraint.key) % ")\n" + indent + "REFERENCES "
% fcls->fullyQualifiedQuotedObjectName() % " ("
% getColumnNameList(catalog, constraint.frelid, constraint.fkey) % ")\n MATCH "
% getColumnNameList(catalog, constraint.frelid, constraint.fkey) % ")\n" + indent + "MATCH "
% ForeignKeyMatchToString(constraint.fmatchtype)
% " ON UPDATE " % ForeignKeyActionToString(constraint.fupdtype)
% " ON DELETE " % ForeignKeyActionToString(constraint.fdeltype)
@ -385,16 +385,16 @@ QString getAlterTableConstraintDefinition(const PgDatabaseCatalog &catalog, cons
{
const PgClass *cls = catalog.classes()->getByKey(constraint.relid);
QString result = genAlterTable(catalog, *cls) % "\n ADD ";
result += getConstraintDefinition(catalog, constraint) % ";";
result += getConstraintDefinition(catalog, constraint, " ") % ";";
return result;
}
QString getConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint)
QString getConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint, const QString &indent)
{
QString result = "CONSTRAINT " % quoteIdent(constraint.objectName());
switch (constraint.type) {
case ConstraintType::ForeignKey:
result += getForeignKeyConstraintDefinition(catalog, constraint);
result += getForeignKeyConstraintDefinition(catalog, constraint, indent);
break;
case ConstraintType::PrimaryKey:
result += getPrimaryKeyConstraintDefinition(catalog, constraint);