Skip to content

Commit

Permalink
Work on DNET-146.
Browse files Browse the repository at this point in the history
  • Loading branch information
cincuranet committed Dec 15, 2007
1 parent 12eedec commit 3d301e4
Showing 1 changed file with 27 additions and 30 deletions.
57 changes: 27 additions & 30 deletions BorlandDataProvider/source/FirebirdSql/Data/Bdp/FbMetaData.cs
Expand Up @@ -673,36 +673,33 @@ private DataTable GetUniqueIndexes(string tableName)
return BdpMetaDataHelper.GetIndices();
}

private string GetSchemaCommandText()
{
System.Text.StringBuilder sql = new System.Text.StringBuilder();

sql.AppendFormat(
"SELECT " +
"fld.rdb$computed_blr as computed_blr,\n" +
"fld.rdb$computed_source as computed_source,\n" +
"(select count(*)\n" +
"from rdb$relation_constraints rel, rdb$indices idx, rdb$index_segments seg\n" +
"where rel.rdb$constraint_type = 'PRIMARY KEY'\n" +
"and rel.rdb$index_name = idx.rdb$index_name\n" +
"and idx.rdb$index_name = seg.rdb$index_name\n" +
"and rel.rdb$relation_name = rfr.rdb$relation_name\n" +
"and seg.rdb$field_name = rfr.rdb$field_name) as primary_key,\n" +
"(select count(*)\n" +
"from rdb$relation_constraints rel, rdb$indices idx, rdb$index_segments seg\n" +
"where rel.rdb$constraint_type = 'UNIQUE'\n" +
"and rel.rdb$index_name = idx.rdb$index_name\n" +
"and idx.rdb$index_name = seg.rdb$index_name\n" +
"and rel.rdb$relation_name = rfr.rdb$relation_name\n" +
"and seg.rdb$field_name = rfr.rdb$field_name) as unique_key\n" +
"from rdb$relation_fields rfr, rdb$fields fld\n" +
"where rfr.rdb$field_source = fld.rdb$field_name");
sql.Append("\n and rfr.rdb$relation_name = ?");
sql.Append("\n and rfr.rdb$field_name = ?");
sql.Append("\n order by rfr.rdb$relation_name, rfr.rdb$field_position");

return sql.ToString();
}
private string GetSchemaCommandText()
{
const string sql =
@"SELECT
fld.rdb$computed_blr AS computed_blr,
fld.rdb$computed_source AS computed_source,
(SELECT COUNT(*) FROM rdb$relation_constraints rel
INNER JOIN rdb$indices idx ON rel.rdb$index_name = idx.rdb$index_name
INNER JOIN rdb$index_segments seg ON idx.rdb$index_name = seg.rdb$index_name
WHERE rel.rdb$constraint_type = 'PRIMARY KEY'
AND rel.rdb$relation_name = rfr.rdb$relation_name
AND seg.rdb$field_name = rfr.rdb$field_name) AS primary_key,
(SELECT COUNT(*) FROM rdb$relation_constraints rel
INNER JOIN rdb$indices idx ON rel.rdb$index_name = idx.rdb$index_name
INNER JOIN rdb$index_segments seg ON idx.rdb$index_name = seg.rdb$index_name
WHERE rel.rdb$constraint_type = 'UNIQUE'
AND rel.rdb$relation_name = rfr.rdb$relation_name
AND seg.rdb$field_name = rfr.rdb$field_name) AS unique_key,
fld.rdb$field_precision AS numeric_precision
FROM rdb$relation_fields rfr
INNER JOIN rdb$fields fld ON rfr.rdb$field_source = fld.rdb$field_name
WHERE fr.rdb$relation_name = ?
AND rfr.rdb$field_name = ?
ORDER BY rfr.rdb$relation_name, rfr.rdb$field_position";

return sql;
}

#endregion
}
Expand Down

0 comments on commit 3d301e4

Please sign in to comment.