public void Visit(CreateTableNode node) { var columns = new List <ISchemaColumn>(); for (int i = 0; i < node.TableTypePairs.Length; i++) { (string ColumnName, string TypeName) = node.TableTypePairs[i]; var remappedType = EvaluationHelper.RemapPrimitiveTypes(TypeName); var type = EvaluationHelper.GetType(remappedType); if (type == null) { throw new TypeNotFoundException($"Type '{remappedType}' could not be found."); } columns.Add(new SchemaColumn(ColumnName, i, type)); } var table = new DynamicTable(columns.ToArray()); _explicitlyDefinedTables.Add(node.Name, table); Nodes.Push(new CreateTableNode(node.Name, node.TableTypePairs)); }