Skip to content

SqlCommandSplitterTests are inconsistent with SSMS behaviour #23

@Pilchard123

Description

@Pilchard123

Is there an existing issue for this?

  • I have searched the existing issues

Library Version

6.0.0

What happened?

As referenced in #22, some of the tests on SqlCommandSplitter are inconsistent with the behaviour of SSMS and will split batches in places that they should not.

Test should_correctly_recognize_go_statements with input data GO\nGO--Dummy comment expects one batch to be
returned: GO--Dummy comment. Instead, no batches should be expected.

Test should_correctly_recognize_go_statements with input data GO--Dummy comment expects one batch to be returned: GO--Dummy comment (as above). Instead, no batches should be expected.

Test should_split_statements_on_go_and_handle_comments (input data below) splits on the line GO; - ending a batch separator line with a semicolon is explicitly disallowed ("Do not use a semicolon as a statement terminator after GO."). This should expect three batches (although the last one is invalid SQL).

Test should_split_statements_on_go_and_handle_comments has invalid SQL in the last batch. It's not strictly a batch-splitting problem, but it should probably be tidied up. I suspect the intended batch should start INSERT INTO TABLE [Foo] ([Text]) (with a closing ] on the column name).

/*
multi line comment 1.
GO
--
Other comment text
Go
*/
INSERT INTO A (GO) VALUES (1);

GO
--Single line Comment no end comment dashes GO
INSERT INTO A (X) VALUES ('GO');

GO;
--Single line Comment WITH END comment dashes GO --
INSERT INTO A (go) VALUES ('Go');

GO
INSERT INTO TABLE [Foo] ([Text)
VALUES (N'Some text. /*Strangely Emphasised Text*/ More text')

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions