Skip to content

Commit

Permalink
clustered index in create table
Browse files Browse the repository at this point in the history
  • Loading branch information
atomicms committed Dec 3, 2021
1 parent 88ebded commit af22f82
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions QueryProcessing/Statements/CreateTableStatement.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using MetadataManager;
using PageManager;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

Expand Down Expand Up @@ -30,6 +29,7 @@ public async Task<RowProvider> BuildTree(Sql.DmlDdlSqlStatement statement, ITran
Sql.DmlDdlSqlStatement.Create createStatement = (Sql.DmlDdlSqlStatement.Create)statement;
string tableName = createStatement.Item.Table;
var columns = createStatement.Item.ColumnList.ToList();
string[] clusteredIndexes = createStatement.Item.ClusteredIndexList.ToArray();

MetadataTablesManager tableManager = this.metadataManager.GetTableManager();

Expand Down Expand Up @@ -57,7 +57,25 @@ public async Task<RowProvider> BuildTree(Sql.DmlDdlSqlStatement statement, ITran
}
else throw new ArgumentException();
}).ToArray();
tableCreateDefinition.ClusteredIndexPositions = new int[] { };

int[] clusteredIndexPositions = new int[clusteredIndexes.Length];
int posIndex = 0;
foreach (string clusteredIndexName in clusteredIndexes)
{
int posColumn = 0;
foreach (string columnName in tableCreateDefinition.ColumnNames)
{
if (columnName == clusteredIndexName)
{
clusteredIndexPositions[posIndex] = posColumn;
}
posColumn++;
}

posIndex++;
}

tableCreateDefinition.ClusteredIndexPositions = clusteredIndexPositions;

await tableManager.CreateObject(tableCreateDefinition, tran).ConfigureAwait(false);

Expand Down

0 comments on commit af22f82

Please sign in to comment.