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:
parent
2c2253f75e
commit
e53b85bd86
3 changed files with 11 additions and 12 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ QString dollarQuoteString(const QString &value);
|
|||
//QString genFQTableName(const PgDatabaseCatalog &catalog, const PgClass &cls);
|
||||
QString getDropConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||
QString getAlterTableConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||
QString getConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||
QString getConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint, const QString &indent);
|
||||
/// Returns the foreignKey specific part of the constraint definition
|
||||
QString getForeignKeyConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||
QString getForeignKeyConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint, const QString &indent);
|
||||
/// Returns the REFERENCES construct as used directly after a column in the create table statement
|
||||
QString getForeignKeyConstraintReferences(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||
/// Same as above but shortened as much as possible by leaving out defaults
|
||||
|
|
|
|||
|
|
@ -118,7 +118,6 @@ QString PgClass::createTableSql() const
|
|||
for (auto && col : cols) {
|
||||
if (col.num > 0 && !col.isdropped) {
|
||||
if (first) {
|
||||
sql += "\n ";
|
||||
first = false;
|
||||
}
|
||||
else sql += ",\n ";
|
||||
|
|
@ -136,10 +135,10 @@ QString PgClass::createTableSql() const
|
|||
first = false;
|
||||
}
|
||||
else sql += ",\n ";
|
||||
sql += getConstraintDefinition(catalog(), constraint);
|
||||
sql += getConstraintDefinition(catalog(), constraint, " ");
|
||||
}
|
||||
|
||||
sql += ")";
|
||||
sql += "\n)";
|
||||
{
|
||||
// [ INHERITS ( parent_table [, ... ] ) ]
|
||||
auto parents = catalog().inherits()->getParentsOf(oid());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue