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();
|
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);
|
//PgClass cls = catalog.classes()->getByKey(constraint.relid);
|
||||||
const PgClass *fcls = catalog.classes()->getByKey(constraint.frelid);
|
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");
|
deferrable = QLatin1String(" DEFERRABLE INITIALLY ") % (constraint.deferred ? "DEFERRED" : "IMMEDIATE");
|
||||||
}
|
}
|
||||||
|
|
||||||
return "\n FOREIGN KEY ("
|
return "\n" + indent + "FOREIGN KEY ("
|
||||||
% getColumnNameList(catalog, constraint.relid, constraint.key) % ")\n REFERENCES "
|
% getColumnNameList(catalog, constraint.relid, constraint.key) % ")\n" + indent + "REFERENCES "
|
||||||
% fcls->fullyQualifiedQuotedObjectName() % " ("
|
% fcls->fullyQualifiedQuotedObjectName() % " ("
|
||||||
% getColumnNameList(catalog, constraint.frelid, constraint.fkey) % ")\n MATCH "
|
% getColumnNameList(catalog, constraint.frelid, constraint.fkey) % ")\n" + indent + "MATCH "
|
||||||
% ForeignKeyMatchToString(constraint.fmatchtype)
|
% ForeignKeyMatchToString(constraint.fmatchtype)
|
||||||
% " ON UPDATE " % ForeignKeyActionToString(constraint.fupdtype)
|
% " ON UPDATE " % ForeignKeyActionToString(constraint.fupdtype)
|
||||||
% " ON DELETE " % ForeignKeyActionToString(constraint.fdeltype)
|
% " ON DELETE " % ForeignKeyActionToString(constraint.fdeltype)
|
||||||
|
|
@ -385,16 +385,16 @@ QString getAlterTableConstraintDefinition(const PgDatabaseCatalog &catalog, cons
|
||||||
{
|
{
|
||||||
const PgClass *cls = catalog.classes()->getByKey(constraint.relid);
|
const PgClass *cls = catalog.classes()->getByKey(constraint.relid);
|
||||||
QString result = genAlterTable(catalog, *cls) % "\n ADD ";
|
QString result = genAlterTable(catalog, *cls) % "\n ADD ";
|
||||||
result += getConstraintDefinition(catalog, constraint) % ";";
|
result += getConstraintDefinition(catalog, constraint, " ") % ";";
|
||||||
return result;
|
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());
|
QString result = "CONSTRAINT " % quoteIdent(constraint.objectName());
|
||||||
switch (constraint.type) {
|
switch (constraint.type) {
|
||||||
case ConstraintType::ForeignKey:
|
case ConstraintType::ForeignKey:
|
||||||
result += getForeignKeyConstraintDefinition(catalog, constraint);
|
result += getForeignKeyConstraintDefinition(catalog, constraint, indent);
|
||||||
break;
|
break;
|
||||||
case ConstraintType::PrimaryKey:
|
case ConstraintType::PrimaryKey:
|
||||||
result += getPrimaryKeyConstraintDefinition(catalog, constraint);
|
result += getPrimaryKeyConstraintDefinition(catalog, constraint);
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@ QString dollarQuoteString(const QString &value);
|
||||||
//QString genFQTableName(const PgDatabaseCatalog &catalog, const PgClass &cls);
|
//QString genFQTableName(const PgDatabaseCatalog &catalog, const PgClass &cls);
|
||||||
QString getDropConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
QString getDropConstraintDefinition(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||||
QString getAlterTableConstraintDefinition(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
|
/// 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
|
/// Returns the REFERENCES construct as used directly after a column in the create table statement
|
||||||
QString getForeignKeyConstraintReferences(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
QString getForeignKeyConstraintReferences(const PgDatabaseCatalog &catalog, const PgConstraint &constraint);
|
||||||
/// Same as above but shortened as much as possible by leaving out defaults
|
/// 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) {
|
for (auto && col : cols) {
|
||||||
if (col.num > 0 && !col.isdropped) {
|
if (col.num > 0 && !col.isdropped) {
|
||||||
if (first) {
|
if (first) {
|
||||||
sql += "\n ";
|
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
else sql += ",\n ";
|
else sql += ",\n ";
|
||||||
|
|
@ -136,10 +135,10 @@ QString PgClass::createTableSql() const
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
else sql += ",\n ";
|
else sql += ",\n ";
|
||||||
sql += getConstraintDefinition(catalog(), constraint);
|
sql += getConstraintDefinition(catalog(), constraint, " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
sql += ")";
|
sql += "\n)";
|
||||||
{
|
{
|
||||||
// [ INHERITS ( parent_table [, ... ] ) ]
|
// [ INHERITS ( parent_table [, ... ] ) ]
|
||||||
auto parents = catalog().inherits()->getParentsOf(oid());
|
auto parents = catalog().inherits()->getParentsOf(oid());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue