Smart evolutions statements parsing

33 views
Skip to first unread message

Vadim V. Kh.

unread,
Sep 27, 2018, 9:09:09 AM9/27/18
to Play framework dev
Hello!


Quoting myself and some other user from play github about being forced to escape semicolons by doubling:


https://github.com/playframework/playframework/issues/6765#issuecomment-405314087


"...this is extremely painful while working with Postgres stored procedures.
You have to manually escape/unescape a body of a procedure or run some silly scripts
while copying a procedure code from a migration file and a database IDE/REPL back and forth
(a double semicolon in a procedure body produces an empty statement which is disallowed in pl/pgsql)..."


https://github.com/playframework/playframework/pull/649#issuecomment-112556094


"For example with plpgsql I have to use semicolons in a procedure declaration.
It's annoying to escape it by entering one more.
And I have to remove it to run the same script in pgAdmin or IntelliJ."


A change is proposed: keep requiring escaping semicolons by doubling for backward compatibility,
but add some configuration switch (like play.evolutions.smartStatementParsing = true)
that turns on the smart statements separator aware of comments/string literals.

Right now the whole statements parsing is an one-line expression.
I want to create a bit more sophisticated parser that however aids user experience as described above.
Is it worth efforts? Is it going to be accepted if done right?
Reply all
Reply to author
Forward
0 new messages