Skip to content

BACKUP_PRIORITY does not parse while using clause ADD REPLICA ON #222

Description

@SShetgaonkar

Version - 180.78.1

Parser - TSql180Parser and TSql170Parser

  1. BACKUP_PRIORITY does not parse while using clause ADD REPLICA ON it expects APPLY_DELAY instead.
  2. GRANT, CREATE and ANY does not parse in ALTER AVAILABILITY GROUP Clause.

Steps to reproduce -

Try parsing the below SQL script with the parser:

ALTER AVAILABILITY GROUP [SalesAG]
ADD REPLICA ON 'SQL-NODE03\PROD_INSTANCE' WITH (ENDPOINT_URL = 'TCP://SQL-NODE03.corp.local:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = ('SQL-NODE03\PROD_INSTANCE', 'SQL-NODE02\PROD_INSTANCE')), SECONDARY_ROLE(READ_ONLY_ROUTING_URL = 'TCP://SQL-NODE02.corp.local:1433', ALLOW_CONNECTIONS = ALL));
ALTER AVAILABILITY GROUP [SalesAG] GRANT CREATE ANY DATABASE;

Example -

using Microsoft.SqlServer.TransactSql.ScriptDom;

internal class Program
{
    static void Main(string[] args)
    {
        var script = "Example Script";
        var parser = new TSql180Parser(true);
        var fragment = parser.Parse(new StringReader(script), out var parseErrors);

        if (parseErrors.Count > 0)
        {
            foreach(var parseError in parseErrors)
                Console.WriteLine(parseError.Message);
        }
        else
        {
            Console.WriteLine("Parsed successfully");
        }
    }
}

Error message :-

Expected APPLY_DELAY but encountered BACKUP_PRIORITY instead.
Incorrect syntax near 'GRANT'.
Incorrect syntax near 'CREATE'.
Incorrect syntax near 'ANY'.```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions