-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix bugs in SQLScriptScanner
with big String literals and PostgreSQL identifiers (as introduced by #7646)
#7818
Merged
eddumelendez
merged 5 commits into
testcontainers:main
from
inponomarev:fix-scriptutils-2
Nov 17, 2023
Merged
Fix bugs in SQLScriptScanner
with big String literals and PostgreSQL identifiers (as introduced by #7646)
#7818
eddumelendez
merged 5 commits into
testcontainers:main
from
inponomarev:fix-scriptutils-2
Nov 17, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kiview
changed the title
fix bugs introduced by #7646
Fix bugs in SQLNov 16, 2023
ScriptScanner
with big String literals and PostgreSQL identifiers (as introduced by #7646)
kiview
approved these changes
Nov 16, 2023
kiview
requested changes
Nov 16, 2023
modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java
Outdated
Show resolved
Hide resolved
The checkstyle issue breaks CI. I am not sure, why it is not correctly displayed as failing CI, I'd say our You can run the checkstyle checks locally with |
eddumelendez
requested changes
Nov 16, 2023
modules/database-commons/src/main/java/org/testcontainers/ext/ScriptScanner.java
Outdated
Show resolved
Hide resolved
modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java
Show resolved
Hide resolved
modules/database-commons/src/test/java/org/testcontainers/ext/ScriptScannerTest.java
Outdated
Show resolved
Hide resolved
…ScriptScannerTest.java
kiview
approved these changes
Nov 17, 2023
Thanks for your contribution, @inponomarev ! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
"This never happened before, and here we go again": unfortunately #7646 introduced not only proper bug fixes, but some new bugs as well, reproducible on some of our test SQL scripts.
This PR introduces 3 changes:
"(\\"|[^"])*"
, though working well with strings of a reasonable size, tends to yieldStackOverflowError
when literals are big (10k simbols and more). The workaround is the same as with comments: use finite-state machine to match the literal, not the regexp.this$is$a$valid$postgreSQL$identifier
is not mixed with dollar-quoted stringsm.find(offset) && m.start() == offset
was suboptimal (we are only interested in cases when the regexp matches exactly starting from the offset and there is no reason in finding it somewhere far away in the script).Existing tests are not modified, new tests added.