/// <inheritdoc /> public object Clone() { var result = new IndexColumnDefinition() { Name = Name, Direction = Direction, }; AdditionalFeatures.CloneTo(result.AdditionalFeatures); return(result); }
private CreateIndexExpression GetCreateIndexExpression() { IndexColumnDefinition indexColumnDefinition = new IndexColumnDefinition { Name = indexColumn }; IndexDefinition indexDefinition = new IndexDefinition { TableName = table, Name = indexName, Columns = new List<IndexColumnDefinition> { indexColumnDefinition } }; return new CreateIndexExpression { Index = indexDefinition }; }
public void ErrorIsReturnedWhenColumnNameIsNull() { var column = new IndexColumnDefinition { Name = null }; var errors = ValidationHelper.CollectErrors(column); errors.ShouldContain(ErrorMessages.ColumnNameCannotBeNullOrEmpty); }
public void ErrorIsNotReturnedWhenColumnNameIsNotNullOrEmptyString() { var column = new IndexColumnDefinition { Name = "Bacon" }; var errors = ValidationHelper.CollectErrors(column); errors.ShouldNotContain(ErrorMessages.ColumnNameCannotBeNullOrEmpty); }
public void DirectionIsAscendingIfNotSpecified() { var column = new IndexColumnDefinition(); column.Direction.ShouldBe(Direction.Ascending); }
protected virtual IndexDefinition ParseCreateIndexStatement(SqliteSyntaxReader reader) { var index = new IndexDefinition(); reader.Read(); reader.Read(); index.IsUnique = reader.ValueToUpper == "UNIQUE"; while (reader.ValueToUpper != "INDEX") reader.Read(); if (reader.Read() == SqliteSyntaxReader.TokenType.StringToken && reader.ValueToUpper == "IF") { reader.Read(); // NOT reader.Read(); // EXISTS } else { reader.Rollback(); } index.Name = ParseIdentifier(reader); reader.Read(); // ON index.TableName = ParseIdentifier(reader); // Find Column List reader.SkipTillToken(SqliteSyntaxReader.TokenType.ListStart); // Split the list. var list = reader.ReadList(); foreach (var columnReader in list) { var column = new IndexColumnDefinition(); column.Name = ParseIdentifier(columnReader); while (columnReader.Read() == SqliteSyntaxReader.TokenType.StringToken) { if (columnReader.ValueToUpper == "COLLATE") { columnReader.Read(); // Skip Collation name } else if (columnReader.ValueToUpper == "DESC") { column.Direction = Direction.Descending; } } index.Columns.Add(column); } return index; }
public static ICollection<IndexColumnDefinition> GetIndexColumnsFromIndexDDL(string IndexSqlDDL) { ICollection<IndexColumnDefinition> columnList = new Collection<IndexColumnDefinition>(); var columns_string = IndexSqlDDL.Split(','); foreach (var column_Str in columns_string) { var columnDefinition = new IndexColumnDefinition(); var split = NormalizeSpaces(column_Str).Trim().Split(' '); columnDefinition.Name = CleanName(split[0]); columnDefinition.Direction = split[1].ToUpper().Equals("ASC") ? Direction.Ascending : Direction.Descending; columnList.Add(columnDefinition); } return columnList; }