Deveel.Data.Sql.Statements.CreateTableStatement.CreateTableInfo C# (CSharp) Method

CreateTableInfo() private method

private CreateTableInfo ( IRequest context ) : TableInfo
context IRequest
return TableInfo
        private TableInfo CreateTableInfo(IRequest context)
        {
            var tableName = context.Access().ResolveTableName(TableName);

            var idColumnCount = Columns.Count(x => x.IsIdentity);
            if (idColumnCount > 1)
                throw new InvalidOperationException("More than one IDENTITY column specified.");

            bool ignoreCase = context.Query.IgnoreIdentifiersCase();
            var columnChecker = new TableColumnChecker(Columns, ignoreCase);

            var tableInfo = new TableInfo(tableName);

            foreach (var column in Columns) {
                var columnInfo = CreateColumnInfo(context, tableName.Name, column, columnChecker);

                if (column.IsIdentity)
                    columnInfo.DefaultExpression = SqlExpression.FunctionCall("UNIQUEKEY", new SqlExpression[] {
                        SqlExpression.Constant(tableName.ToString())
                    });

                tableInfo.AddColumn(columnInfo);
            }

            return tableInfo;
        }