mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-26 13:25:19 +00:00
HHH-14249 MultiLineImport fails when script contains blank spaces or tabs at the end of the last sql statement
This commit is contained in:
parent
79e6ffe483
commit
c01718f735
@ -57,16 +57,23 @@ options {
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
script
|
||||
: (newLineToSkip)* (statement)* EOF
|
||||
: blankSpacesToSkip (statement blankSpacesToSkip)* EOF
|
||||
;
|
||||
|
||||
statement
|
||||
: { statementStarted(); } (statementPart (afterStatementPartNewline)*)* DELIMITER (newLineToSkip)* { statementEnded(); }
|
||||
: { statementStarted(); } statementFirstPart (statementPart (afterStatementPartNewline)*)* DELIMITER { statementEnded(); }
|
||||
;
|
||||
|
||||
statementFirstPart
|
||||
: quotedString
|
||||
| nonSkippedChar
|
||||
;
|
||||
|
||||
statementPart
|
||||
: quotedString
|
||||
| nonSkippedChar
|
||||
| nonSkippedSpace
|
||||
| nonSkippedTab
|
||||
;
|
||||
|
||||
quotedString
|
||||
@ -75,6 +82,10 @@ quotedString
|
||||
}
|
||||
;
|
||||
|
||||
blankSpacesToSkip
|
||||
: (newLineToSkip | spaceToSkip | tabToSkip)*
|
||||
;
|
||||
|
||||
afterStatementPartNewline
|
||||
: n:NEWLINE {
|
||||
out( " " );
|
||||
@ -87,6 +98,29 @@ newLineToSkip
|
||||
}
|
||||
;
|
||||
|
||||
spaceToSkip
|
||||
: SPACE {
|
||||
skip();
|
||||
}
|
||||
;
|
||||
|
||||
tabToSkip
|
||||
: TAB {
|
||||
skip();
|
||||
}
|
||||
;
|
||||
|
||||
nonSkippedSpace
|
||||
: s:SPACE {
|
||||
out( s );
|
||||
}
|
||||
;
|
||||
|
||||
nonSkippedTab
|
||||
: t:TAB {
|
||||
out( t );
|
||||
}
|
||||
;
|
||||
|
||||
nonSkippedChar
|
||||
: c:CHAR {
|
||||
@ -124,8 +158,15 @@ protected
|
||||
ESCqs : '\'' '\'' ;
|
||||
|
||||
CHAR
|
||||
: ( ' ' | '\t' ) => ( ' ' | '\t' )
|
||||
| ~( ';' | '\n' | '\r' )
|
||||
: ~( ';' | '\n' | '\r' | ' ' | '\t')
|
||||
;
|
||||
|
||||
SPACE
|
||||
: ' '
|
||||
;
|
||||
|
||||
TAB
|
||||
: '\t'
|
||||
;
|
||||
|
||||
NEWLINE
|
||||
|
Loading…
x
Reference in New Issue
Block a user