Skip to content
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

Adding support for IN and NOT IN for non-string array values #207

Merged
merged 5 commits into from
Nov 8, 2023

Conversation

varsha-abhinandan
Copy link
Contributor

Description

Please include a summary of the change, motivation and context.

Testing

Please describe the tests that you ran to verify your changes. Please summarize what did you test and what needs to be tested e.g. deployed and tested helm chart locally.

Checklist:

  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • Any dependent changes have been merged and published in downstream modules

Documentation

Make sure that you have documented corresponding changes in this repository or hypertrace docs repo if required.

@codecov
Copy link

codecov bot commented Oct 16, 2023

Codecov Report

Merging #207 (25ec7c6) into main (2c4635c) will increase coverage by 0.20%.
The diff coverage is 95.91%.

@@             Coverage Diff              @@
##               main     #207      +/-   ##
============================================
+ Coverage     72.97%   73.17%   +0.20%     
+ Complexity     1097       10    -1087     
============================================
  Files            96       96              
  Lines          4781     4780       -1     
  Branches        550      547       -3     
============================================
+ Hits           3489     3498       +9     
+ Misses         1065     1055      -10     
  Partials        227      227              
Flag Coverage Δ
integration 73.17% <95.91%> (+0.20%) ⬆️
unit ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
...service/pinot/QueryRequestToPinotSQLConverter.java 92.54% <100.00%> (+0.18%) ⬆️
...gres/converters/DefaultColumnRequestConverter.java 84.81% <92.00%> (+3.27%) ⬆️

📣 Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!

@github-actions

This comment has been minimized.

@varsha-abhinandan varsha-abhinandan changed the title ENG-36266 Adding support for IN and NOT IN for non-string array values Adding support for IN and NOT IN for non-string array values Oct 16, 2023
assertSQLQuery(
buildSimpleQueryWithFilter(
createLongInFilter("Span.metrics.duration_millis", List.of(10L))),
"Select encode(span_id, 'hex') FROM public.\"span-event-view\" WHERE "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not able to recollect, why we didn't add that support prior?
Can you once try these queries on Pinot for validation? If you have already tried, we can ignore this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified the query

Copy link
Contributor

@kotharironak kotharironak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

case LONG_ARRAY:
ret = buildArrayValue(value.getLongArrayList(), paramsBuilder::addLongParam);
break;
case INT_ARRAY:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@satish-mittal FYI: we might have to add the support for trino too. But, we also have to check if those queries works fine first.

+ " = '"
+ TENANT_ID
+ "' "
+ "AND duration_millis IN (10)",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: will be good to have some tests using IN clause with multiple values.

+ " = '"
+ TENANT_ID
+ "' "
+ "AND duration_millis NOT IN (10.05)",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of reusingduration_millis field for all types that don't apply to it, it's cleaner to use respective fields for various types. e.g. latitude/longitude for float/double. The fields need to be just added in request_handler.conf.

@github-actions

This comment has been minimized.

This comment has been minimized.

@avinashkolluru
Copy link
Contributor

@varsha-abhinandan both the vulnerabilities detected are disputed. Look for other places where it has been suppressed.

https://github.com/hypertrace/hypertrace-graphql/blob/d5c2a3eeed827ce56fb8e9f453f9c1767271473e/owasp-suppressions.xml#L30
https://github.com/hypertrace/hypertrace-bom/blob/6e9d9aa4f9a9631c281df4b4c8916490d5cd39d9/owasp-suppressions.xml#L21

This comment has been minimized.

Copy link
Contributor

@kotharironak kotharironak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had reviewed once, recently there are test case changes. It lgtm.

@varsha-abhinandan varsha-abhinandan merged commit 436adec into main Nov 8, 2023
8 checks passed
@varsha-abhinandan varsha-abhinandan deleted the ENG-36266 branch November 8, 2023 13:04
Copy link

github-actions bot commented Nov 8, 2023

Unit Test Results

  40 files  ±0    40 suites  ±0   9s ⏱️ -5s
316 tests +9  316 ✔️ +9  0 💤 ±0  0 ❌ ±0 

Results for commit 436adec. ± Comparison against base commit 2c4635c.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants