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

Fix the type cast in nested struct #4560

Merged
merged 13 commits into from
Nov 26, 2024
Merged

Fix the type cast in nested struct #4560

merged 13 commits into from
Nov 26, 2024

Conversation

SterlingT3485
Copy link
Collaborator

@SterlingT3485 SterlingT3485 commented Nov 22, 2024

Description

let the struct type bypass the statically cast in vector_cast_functions castBindFunc to make sure the field names are always checked in resolveNestedType when casting the struct.

do the same check for fieldnames in comparison binding function

Fixes #4155 and #4545

Contributor agreement

Copy link

Benchmark Result

Master commit hash: ebea6632163bf8a16d0dedb7b85b95be6512eed2
Branch commit hash: d08c819a34ca26c6cfe1a593fecade0bf5c99035

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 651.25 655.30 -4.04 (-0.62%)
aggregation q28 12067.55 11747.46 320.08 (2.72%)
filter q14 136.50 136.30 0.20 (0.15%)
filter q15 135.76 134.87 0.89 (0.66%)
filter q16 316.48 311.04 5.45 (1.75%)
filter q17 452.00 455.40 -3.40 (-0.75%)
filter q18 1922.81 1918.10 4.72 (0.25%)
filter zonemap-node 94.41 95.56 -1.16 (-1.21%)
filter zonemap-node-lhs-cast 94.73 96.80 -2.06 (-2.13%)
filter zonemap-rel 5349.59 5339.66 9.93 (0.19%)
fixed_size_expr_evaluator q07 585.45 693.73 -108.28 (-15.61%)
fixed_size_expr_evaluator q08 810.49 973.12 -162.63 (-16.71%)
fixed_size_expr_evaluator q09 813.02 970.48 -157.45 (-16.22%)
fixed_size_expr_evaluator q10 249.07 293.23 -44.15 (-15.06%)
fixed_size_expr_evaluator q11 242.21 284.53 -42.32 (-14.87%)
fixed_size_expr_evaluator q12 239.90 266.69 -26.80 (-10.05%)
fixed_size_expr_evaluator q13 1487.03 1679.52 -192.49 (-11.46%)
fixed_size_seq_scan q23 125.81 126.05 -0.24 (-0.19%)
join q29 637.46 577.47 59.98 (10.39%)
join q30 1439.73 1325.38 114.35 (8.63%)
join q31 5.82 6.83 -1.01 (-14.78%)
ldbc_snb_ic q35 388.90 410.91 -22.00 (-5.36%)
ldbc_snb_ic q36 125.89 124.27 1.62 (1.30%)
ldbc_snb_is q32 2.64 6.25 -3.61 (-57.75%)
ldbc_snb_is q33 13.11 13.35 -0.23 (-1.76%)
ldbc_snb_is q34 1.48 1.34 0.14 (10.26%)
multi-rel multi-rel-large-scan 1872.05 1595.17 276.88 (17.36%)
multi-rel multi-rel-lookup 11.08 5.44 5.64 (103.71%)
multi-rel multi-rel-small-scan 93.70 67.98 25.71 (37.83%)
order_by q25 143.07 146.20 -3.13 (-2.14%)
order_by q26 467.58 468.68 -1.10 (-0.23%)
order_by q27 1464.09 1479.59 -15.50 (-1.05%)
scan_after_filter q01 175.60 180.86 -5.26 (-2.91%)
scan_after_filter q02 164.01 164.30 -0.28 (-0.17%)
shortest_path_ldbc100 q37 86.39 80.40 5.99 (7.45%)
shortest_path_ldbc100 q38 459.20 522.28 -63.07 (-12.08%)
shortest_path_ldbc100 q39 59.07 52.32 6.74 (12.89%)
shortest_path_ldbc100 q40 542.98 381.30 161.69 (42.40%)
var_size_expr_evaluator q03 2074.53 2067.32 7.21 (0.35%)
var_size_expr_evaluator q04 2237.02 2231.71 5.31 (0.24%)
var_size_expr_evaluator q05 2626.38 2631.10 -4.72 (-0.18%)
var_size_expr_evaluator q06 1338.75 1338.63 0.12 (0.01%)
var_size_seq_scan q19 1469.05 1487.47 -18.41 (-1.24%)
var_size_seq_scan q20 2434.00 2423.15 10.86 (0.45%)
var_size_seq_scan q21 2266.07 2310.57 -44.50 (-1.93%)
var_size_seq_scan q22 129.79 131.78 -1.99 (-1.51%)

Copy link

Benchmark Result

Master commit hash: 756486b02abe6c283067935b550c369629985efb
Branch commit hash: 7127203b353f05633a985699ad096d46055c9b00

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 639.41 652.51 -13.10 (-2.01%)
aggregation q28 11576.61 11660.77 -84.15 (-0.72%)
filter q14 116.87 135.35 -18.48 (-13.65%)
filter q15 119.20 135.49 -16.29 (-12.02%)
filter q16 293.78 306.99 -13.21 (-4.30%)
filter q17 436.35 452.63 -16.27 (-3.60%)
filter q18 1948.16 1935.17 12.99 (0.67%)
filter zonemap-node 79.13 94.56 -15.43 (-16.31%)
filter zonemap-node-lhs-cast 78.46 94.82 -16.35 (-17.25%)
filter zonemap-rel 5694.57 5724.56 -29.99 (-0.52%)
fixed_size_expr_evaluator q07 569.70 578.03 -8.34 (-1.44%)
fixed_size_expr_evaluator q08 806.56 811.74 -5.18 (-0.64%)
fixed_size_expr_evaluator q09 800.39 809.61 -9.22 (-1.14%)
fixed_size_expr_evaluator q10 234.62 247.06 -12.43 (-5.03%)
fixed_size_expr_evaluator q11 227.81 237.13 -9.32 (-3.93%)
fixed_size_expr_evaluator q12 224.80 233.69 -8.89 (-3.80%)
fixed_size_expr_evaluator q13 1446.00 1467.01 -21.01 (-1.43%)
fixed_size_seq_scan q23 109.51 122.17 -12.66 (-10.36%)
join q29 638.66 646.05 -7.38 (-1.14%)
join q30 1443.46 1442.43 1.02 (0.07%)
join q31 7.98 8.23 -0.25 (-3.00%)
ldbc_snb_ic q35 416.26 538.41 -122.15 (-22.69%)
ldbc_snb_ic q36 129.38 108.10 21.28 (19.69%)
ldbc_snb_is q32 4.80 2.13 2.67 (125.20%)
ldbc_snb_is q33 15.01 12.40 2.60 (21.00%)
ldbc_snb_is q34 1.45 1.45 -0.00 (-0.14%)
multi-rel multi-rel-large-scan 1305.79 1201.99 103.80 (8.64%)
multi-rel multi-rel-lookup 21.32 5.61 15.71 (279.98%)
multi-rel multi-rel-small-scan 101.39 78.50 22.89 (29.16%)
order_by q25 120.85 139.72 -18.87 (-13.51%)
order_by q26 439.62 459.89 -20.27 (-4.41%)
order_by q27 1466.21 1464.05 2.17 (0.15%)
scan_after_filter q01 167.83 178.79 -10.96 (-6.13%)
scan_after_filter q02 150.16 164.86 -14.70 (-8.92%)
shortest_path_ldbc100 q37 80.79 85.73 -4.95 (-5.77%)
shortest_path_ldbc100 q38 453.56 455.56 -2.00 (-0.44%)
shortest_path_ldbc100 q39 57.48 61.46 -3.98 (-6.47%)
shortest_path_ldbc100 q40 586.56 519.42 67.14 (12.93%)
var_size_expr_evaluator q03 2093.38 2106.47 -13.09 (-0.62%)
var_size_expr_evaluator q04 2224.42 2243.27 -18.85 (-0.84%)
var_size_expr_evaluator q05 2615.69 2754.49 -138.80 (-5.04%)
var_size_expr_evaluator q06 1320.14 1327.50 -7.35 (-0.55%)
var_size_seq_scan q19 1465.74 1453.62 12.12 (0.83%)
var_size_seq_scan q20 2768.98 2748.31 20.67 (0.75%)
var_size_seq_scan q21 2310.46 2282.05 28.40 (1.24%)
var_size_seq_scan q22 125.27 127.64 -2.38 (-1.86%)

Copy link

Benchmark Result

Master commit hash: d3e95b42c41f5a5211dd4d0ed4318cadfab57017
Branch commit hash: abafcdd9401d8bcd5f76de52fc3e6acbfc417648

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 644.31 652.15 -7.84 (-1.20%)
aggregation q28 11450.16 11473.48 -23.32 (-0.20%)
filter q14 125.12 133.90 -8.78 (-6.56%)
filter q15 128.12 137.72 -9.60 (-6.97%)
filter q16 301.24 306.43 -5.19 (-1.69%)
filter q17 449.63 452.58 -2.95 (-0.65%)
filter q18 1963.51 1938.92 24.59 (1.27%)
filter zonemap-node 86.93 94.79 -7.86 (-8.29%)
filter zonemap-node-lhs-cast 87.76 94.63 -6.88 (-7.27%)
filter zonemap-rel 5700.88 5798.54 -97.66 (-1.68%)
fixed_size_expr_evaluator q07 570.77 579.69 -8.91 (-1.54%)
fixed_size_expr_evaluator q08 801.15 814.44 -13.29 (-1.63%)
fixed_size_expr_evaluator q09 800.73 810.15 -9.42 (-1.16%)
fixed_size_expr_evaluator q10 235.69 244.83 -9.14 (-3.74%)
fixed_size_expr_evaluator q11 229.04 236.85 -7.81 (-3.30%)
fixed_size_expr_evaluator q12 225.44 233.93 -8.49 (-3.63%)
fixed_size_expr_evaluator q13 1458.72 1465.41 -6.69 (-0.46%)
fixed_size_seq_scan q23 110.10 120.87 -10.78 (-8.92%)
join q29 644.03 616.43 27.60 (4.48%)
join q30 1381.94 1344.86 37.09 (2.76%)
join q31 6.17 5.87 0.31 (5.23%)
ldbc_snb_ic q35 426.30 454.50 -28.20 (-6.21%)
ldbc_snb_ic q36 131.59 127.79 3.80 (2.97%)
ldbc_snb_is q32 5.98 5.99 -0.01 (-0.18%)
ldbc_snb_is q33 14.23 12.80 1.43 (11.19%)
ldbc_snb_is q34 1.40 1.46 -0.06 (-4.30%)
multi-rel multi-rel-large-scan 1272.27 1184.78 87.48 (7.38%)
multi-rel multi-rel-lookup 5.29 5.73 -0.44 (-7.66%)
multi-rel multi-rel-small-scan 75.20 50.13 25.07 (50.01%)
order_by q25 136.82 141.82 -5.00 (-3.52%)
order_by q26 451.80 454.96 -3.16 (-0.69%)
order_by q27 1490.02 1528.07 -38.05 (-2.49%)
scan_after_filter q01 172.05 176.79 -4.75 (-2.69%)
scan_after_filter q02 155.79 163.22 -7.43 (-4.55%)
shortest_path_ldbc100 q37 81.84 78.04 3.81 (4.88%)
shortest_path_ldbc100 q38 482.90 470.85 12.05 (2.56%)
shortest_path_ldbc100 q39 63.90 62.04 1.86 (3.00%)
shortest_path_ldbc100 q40 554.33 549.80 4.53 (0.82%)
var_size_expr_evaluator q03 2076.69 2092.32 -15.63 (-0.75%)
var_size_expr_evaluator q04 2229.68 2255.58 -25.90 (-1.15%)
var_size_expr_evaluator q05 2545.53 2692.61 -147.08 (-5.46%)
var_size_expr_evaluator q06 1350.43 1336.38 14.05 (1.05%)
var_size_seq_scan q19 1470.09 1472.39 -2.30 (-0.16%)
var_size_seq_scan q20 2680.01 2757.93 -77.92 (-2.83%)
var_size_seq_scan q21 2280.02 2282.91 -2.89 (-0.13%)
var_size_seq_scan q22 128.45 127.44 1.01 (0.79%)

Copy link

Benchmark Result

Master commit hash: d3e95b42c41f5a5211dd4d0ed4318cadfab57017
Branch commit hash: 7d9b1dc19a3398a814db4ee0225a8b21e8a1f81c

Query Group Query Name Mean Time - Commit (ms) Mean Time - Master (ms) Diff
aggregation q24 644.25 652.15 -7.90 (-1.21%)
aggregation q28 11526.72 11473.48 53.24 (0.46%)
filter q14 125.69 133.90 -8.21 (-6.13%)
filter q15 126.80 137.72 -10.92 (-7.93%)
filter q16 302.58 306.43 -3.85 (-1.26%)
filter q17 448.35 452.58 -4.23 (-0.93%)
filter q18 1935.12 1938.92 -3.80 (-0.20%)
filter zonemap-node 86.47 94.79 -8.32 (-8.78%)
filter zonemap-node-lhs-cast 86.45 94.63 -8.19 (-8.65%)
filter zonemap-rel 5699.77 5798.54 -98.77 (-1.70%)
fixed_size_expr_evaluator q07 570.48 579.69 -9.21 (-1.59%)
fixed_size_expr_evaluator q08 799.84 814.44 -14.60 (-1.79%)
fixed_size_expr_evaluator q09 799.21 810.15 -10.94 (-1.35%)
fixed_size_expr_evaluator q10 235.40 244.83 -9.43 (-3.85%)
fixed_size_expr_evaluator q11 228.63 236.85 -8.21 (-3.47%)
fixed_size_expr_evaluator q12 225.63 233.93 -8.31 (-3.55%)
fixed_size_expr_evaluator q13 1463.15 1465.41 -2.26 (-0.15%)
fixed_size_seq_scan q23 111.25 120.87 -9.62 (-7.96%)
join q29 623.39 616.43 6.95 (1.13%)
join q30 1435.85 1344.86 91.00 (6.77%)
join q31 5.77 5.87 -0.10 (-1.66%)
ldbc_snb_ic q35 430.31 454.50 -24.20 (-5.32%)
ldbc_snb_ic q36 120.06 127.79 -7.74 (-6.06%)
ldbc_snb_is q32 5.11 5.99 -0.88 (-14.70%)
ldbc_snb_is q33 14.39 12.80 1.59 (12.44%)
ldbc_snb_is q34 1.59 1.46 0.13 (8.75%)
multi-rel multi-rel-large-scan 1237.01 1184.78 52.22 (4.41%)
multi-rel multi-rel-lookup 5.43 5.73 -0.30 (-5.29%)
multi-rel multi-rel-small-scan 86.22 50.13 36.09 (72.00%)
order_by q25 134.00 141.82 -7.81 (-5.51%)
order_by q26 449.62 454.96 -5.34 (-1.17%)
order_by q27 1477.87 1528.07 -50.20 (-3.29%)
scan_after_filter q01 173.30 176.79 -3.50 (-1.98%)
scan_after_filter q02 155.30 163.22 -7.92 (-4.85%)
shortest_path_ldbc100 q37 100.65 78.04 22.62 (28.98%)
shortest_path_ldbc100 q38 476.20 470.85 5.34 (1.14%)
shortest_path_ldbc100 q39 58.38 62.04 -3.66 (-5.90%)
shortest_path_ldbc100 q40 569.81 549.80 20.01 (3.64%)
var_size_expr_evaluator q03 2073.45 2092.32 -18.86 (-0.90%)
var_size_expr_evaluator q04 2240.76 2255.58 -14.81 (-0.66%)
var_size_expr_evaluator q05 2542.44 2692.61 -150.16 (-5.58%)
var_size_expr_evaluator q06 1350.40 1336.38 14.02 (1.05%)
var_size_seq_scan q19 1473.32 1472.39 0.93 (0.06%)
var_size_seq_scan q20 2679.61 2757.93 -78.32 (-2.84%)
var_size_seq_scan q21 2278.20 2282.91 -4.71 (-0.21%)
var_size_seq_scan q22 128.70 127.44 1.26 (0.99%)

Copy link

codecov bot commented Nov 26, 2024

Codecov Report

Attention: Patch coverage is 81.81818% with 2 lines in your changes missing coverage. Please review.

Project coverage is 87.24%. Comparing base (9d5afd1) to head (63ba74c).
Report is 12 commits behind head on master.

Files with missing lines Patch % Lines
src/function/vector_cast_functions.cpp 60.00% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4560      +/-   ##
==========================================
- Coverage   87.37%   87.24%   -0.14%     
==========================================
  Files        1349     1357       +8     
  Lines       56622    56780     +158     
  Branches     7131     7085      -46     
==========================================
+ Hits        49474    49538      +64     
- Misses       6976     7070      +94     
  Partials      172      172              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@SterlingT3485 SterlingT3485 merged commit a98fd17 into master Nov 26, 2024
25 checks passed
@SterlingT3485 SterlingT3485 deleted the sterling_cast_error branch November 26, 2024 21:33
ray6080 pushed a commit that referenced this pull request Dec 17, 2024
ray6080 pushed a commit that referenced this pull request Dec 18, 2024
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.

Bug: Struct casting issues
2 participants