Support EOF as statement separator in SQL scripts

Prior to Spring Framework 4.0.3, it was possible to supply a bogus
statement separator (i.e., a separator string that does not exist in
the configured SQL scripts) to ResourceDatabasePopulator with the side
effect that the entire contents of a script file would be interpreted
as a single SQL statement.

This undocumented feature was never intentional; however, some
developers came to rely on it. Unfortunately, changes made in
conjunction with SPR-9531 and SPR-11560 caused such scenarios to no
longer work.

This commit introduces first-class support for executing scripts which
contain a single statement that spans multiple lines but is not
followed by an explicit statement separator.

Specifically, ScriptUtils.EOF_STATEMENT_SEPARATOR may now be specified
as a 'virtual' statement separator to denote that a script contains a
single statement and no actual separator.

Issue: SPR-11687
This commit is contained in:
Sam Brannen
2014-04-11 17:44:27 +02:00
parent 2a937a369e
commit cc0ae3a881
7 changed files with 53 additions and 12 deletions

View File

@@ -0,0 +1 @@
DROP TABLE users IF EXISTS

View File

@@ -0,0 +1,3 @@
INSERT INTO
users(first_name, last_name)
values('Sam', 'Brannen')

View File

@@ -0,0 +1,5 @@
CREATE TABLE users (
id INTEGER NOT NULL IDENTITY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL
)