-
Notifications
You must be signed in to change notification settings - Fork 387
support oceanbase #429
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
support oceanbase #429
Conversation
|
Do you intend to add a full test workflow for OceanBase? (install OceanBase, run test, etc.) |
mrigger
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for the PR! I think we can merge it soon. I added some minor comments. I would appreciate it if you would address them before we merge the PR. Currently, also some style checks are failing. You can check locally using mvn verify.
.travis.yml
Outdated
| - sleep 5 | ||
| script: | ||
| - CLICKHOUSE_AVAILABLE=true mvn -Dtest=ClickHouseBinaryComparisonOperationTest test | ||
| - name: OceanBase |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are now actually using GitHub Actions for testing. For example, see https://github.com/sqlancer/sqlancer/blob/master/.github/workflows/main.yml#L187 for how the MySQL tests are executed in the CI. If you want, you can also add this in a follow-up PR.
| errors.add("Invalid numeric"); | ||
|
|
||
|
|
||
| if (true) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we can remove the if and only keep its body?
| @@ -0,0 +1,21 @@ | |||
| ## Install Oceanbase | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's very useful! Thanks for adding also a README.md.
| try { | ||
| char currentChar = value.charAt(i-1); | ||
| int currentVal= Integer.valueOf(currentChar); | ||
| if (currentVal < 48||currentVal > 57) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having named constants for 48 and 57 would be useful (but I assume that one of the style checks will complain about this anyway).
|
|
||
| OceanBaseExpression expr = OceanBaseConstant.createNullConstant(); | ||
| switch(i){ | ||
| case 0: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The hard-coded constants look quite error-prone. Perhaps you can add an enum instead, of which a random value is selected, and based on which you perform the switch (or where each enum value implements a method that you call)?
| return firstCount; | ||
| } | ||
|
|
||
| private OceanBaseExpression getTrueExpr(OceanBaseExpression randomWhereCondition){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps you can add a short comment explaining how this differs from the standard NoREC version?
mrigger
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks a lot again for the PR! It would be ideal to contribute a GitHub Actions workflow to test the OceanBase implementation to ensure that no future changes break it. Do you plan to also contribute such a workflow?
Thanks for you approval! It needs some preceding conditions for installing oceanbase. I'm not sure installing oceanbase will always success when running ci and block other commit. |
|
If the installation would work on the current version, I think it would be good enough. We regularly adapt to updates to database systems. For example, H2 currently fails due to an update, which I hope to address soon. |
|
Another issue: I noticed that building SQLancer now results in multiple warnings: Could you please fix them? |
No description provided.