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));
        }