diff --git a/pgadmin/schema/pgColumn.cpp b/pgadmin/schema/pgColumn.cpp index 49a44d6..a2cf0b1 100644 --- a/pgadmin/schema/pgColumn.cpp +++ b/pgadmin/schema/pgColumn.cpp @@ -338,13 +338,31 @@ wxString pgColumn::GetDefinition() sql == wxT("pg_catalog.integer") || sql == wxT("pg_catalog.bigint")) && (GetDefault() == seqDefault1 || GetDefault() == seqDefault2)) { - if (sql.Right(6) == wxT("bigint")) - sql = wxT("bigserial"); - else - sql = wxT("serial"); + pgSet *set = ExecuteSet( + wxT("SELECT classid\n") + wxT(" FROM pg_depend\n") + wxT(" WHERE refobjid=") + table->GetOidStr() + + wxT(" AND refobjsubid = ") + NumToStr(GetColNumber()) + + wxT(" AND objid IN ('") + + schema->GetPrefix() + GetTableName() + wxT("_") + GetName() + wxT("_seq'::regclass,'\"") + + schema->GetPrefix() + GetTableName() + wxT("_") + GetName() + wxT("_seq\"'::regclass)") + + wxT(" AND deptype='a'")); + if (set && set->NumRows()) + { + if (sql.Right(6) == wxT("bigint")) + sql = wxT("bigserial"); + else + sql = wxT("serial"); + } if (GetNotNull()) sql += wxT(" NOT NULL"); + + if (set && set->NumRows()) + AppendIfFilled(sql, wxT(" DEFAULT "), GetDefault()); + + if (set) + delete set; } else {