// == Statements == sum SqlStatement { variant SqlCreateTableStatement; } struct SqlCreateTableStatement { field name: SqlIdentifier; field columns: List[SqlColumnDefinition]; field tableConstraints: List[SqlTableConstraint]; } struct SqlColumnDefinition { field name: SqlIdentifier; field typeName: SqlIdentifier; } // == Table constraints == sum SqlTableConstraint { variant SqlPrimaryKeyConstraint; } struct SqlPrimaryKeyConstraint { field columns: List[SqlIdentifier]; } // == Identifiers == struct SqlIdentifier { field value: String; }