Files
Umbraco-CMS/src/Umbraco.Core/Persistence/SqlSyntax/ISqlSyntaxProvider.cs
2013-02-25 13:14:26 -01:00

57 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using Umbraco.Core.Persistence.DatabaseAnnotations;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
namespace Umbraco.Core.Persistence.SqlSyntax
{
/// <summary>
/// Defines an SqlSyntaxProvider
/// </summary>
public interface ISqlSyntaxProvider
{
string GetQuotedTableName(string tableName);
string GetQuotedColumnName(string columnName);
string GetQuotedName(string name);
bool DoesTableExist(Database db, string tableName);
string GetIndexType(IndexTypes indexTypes);
string GetSpecialDbType(SpecialDbTypes dbTypes);
string CreateTable { get; }
string DropTable { get; }
string AddColumn { get; }
string DropColumn { get; }
string AlterColumn { get; }
string RenameColumn { get; }
string RenameTable { get; }
string CreateSchema { get; }
string AlterSchema { get; }
string DropSchema { get; }
string CreateIndex { get; }
string DropIndex { get; }
string InsertData { get; }
string UpdateData { get; }
string DeleteData { get; }
string CreateConstraint { get; }
string DeleteConstraint { get; }
string CreateForeignKeyConstraint { get; }
string DeleteDefaultConstraint { get; }
string Format(TableDefinition table);
string Format(IEnumerable<ColumnDefinition> columns);
List<string> Format(IEnumerable<IndexDefinition> indexes);
List<string> Format(IEnumerable<ForeignKeyDefinition> foreignKeys);
string FormatPrimaryKey(TableDefinition table);
string GetQuotedValue(string value);
string Format(ColumnDefinition column);
string Format(IndexDefinition index);
string Format(ForeignKeyDefinition foreignKey);
string FormatColumnRename(string tableName, string oldName, string newName);
string FormatTableRename(string oldName, string newName);
bool SupportsClustered();
bool SupportsIdentityInsert();
bool? SupportsCaseInsensitiveQueries(Database db);
IEnumerable<string> GetTablesInSchema(Database db);
IEnumerable<ColumnInfo> GetColumnsInSchema(Database db);
IEnumerable<Tuple<string, string>> GetConstraintsPerTable(Database db);
IEnumerable<Tuple<string, string, string>> GetConstraintsPerColumn(Database db);
}
}