{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":388946490,"defaultBranch":"main","name":"velox","ownerLogin":"facebookincubator","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-07-23T23:00:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/19538647?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719958570.0","currentOid":""},"activityList":{"items":[{"before":"dda84502cbab7b53be6cf3eb140b403df7c0533c","after":"d6fcaadf6f267925bb349c2214896596c761269a","ref":"refs/heads/window_prefix_sort","pushedAt":"2024-07-04T06:50:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aditi-pandit","name":"Aditi Pandit","path":"/aditi-pandit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/87670623?s=80&v=4"},"commit":{"message":"Use PrefixSort in Window operator","shortMessageHtmlLink":"Use PrefixSort in Window operator"}},{"before":"4949fd28322663e7a7c4a6316f80c8eec2fb4dc9","after":"dda84502cbab7b53be6cf3eb140b403df7c0533c","ref":"refs/heads/window_prefix_sort","pushedAt":"2024-07-04T06:24:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"aditi-pandit","name":"Aditi Pandit","path":"/aditi-pandit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/87670623?s=80&v=4"},"commit":{"message":"Use PrefixSort in Window operator","shortMessageHtmlLink":"Use PrefixSort in Window operator"}},{"before":"eb9a6f9c8de93dc82a8d5886fff04dacfa9e2c9b","after":"a8896188e67ebb6bcd3763987722e8d9fd8f9ab4","ref":"refs/heads/gh-pages","pushedAt":"2024-07-04T04:56:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update build metrics","shortMessageHtmlLink":"Update build metrics"}},{"before":"1705bde412bd36586e16414b8fb3844f2b7c05f5","after":"26f001441e35c247abf3e8f588f2e70b72b951ec","ref":"refs/heads/main","pushedAt":"2024-07-03T22:48:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix tsan race in cache fuzzer test (#10391)\n\nSummary: Pull Request resolved: https://github.com/facebookincubator/velox/pull/10391\n\nTest Plan: Run through for 1hr under tsan mdoe\n\nReviewed By: kevinwilfong\n\nDifferential Revision: D59343096\n\nPulled By: xiaoxmeng\n\nfbshipit-source-id: 3e18020aa183dc411691c7191fd55814f8ec16f5","shortMessageHtmlLink":"Fix tsan race in cache fuzzer test (#10391)"}},{"before":"c5b9327d164744ec1797b5642f6981a6450da8e4","after":"eb9a6f9c8de93dc82a8d5886fff04dacfa9e2c9b","ref":"refs/heads/gh-pages","pushedAt":"2024-07-03T21:53:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update documentation","shortMessageHtmlLink":"Update documentation"}},{"before":"02cbe7476cfdd006b22141c13abd0a19b1c88a48","after":"1705bde412bd36586e16414b8fb3844f2b7c05f5","ref":"refs/heads/main","pushedAt":"2024-07-03T21:53:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add exchange request count metrics (#10389)\n\nSummary:\nAdd to count exchange request counts.\n\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10389\n\nReviewed By: kevinwilfong\n\nDifferential Revision: D59335642\n\nPulled By: xiaoxmeng\n\nfbshipit-source-id: 8a715e681b0541e265a0656d1f083121e24df4b0","shortMessageHtmlLink":"Add exchange request count metrics (#10389)"}},{"before":"decd91eb50e6ef51cddb8e3251e3c3002111dd82","after":"02cbe7476cfdd006b22141c13abd0a19b1c88a48","ref":"refs/heads/main","pushedAt":"2024-07-03T20:22:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix NaN handling in comparison functions (#10165)\n\nSummary:\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10165\n\nThis change ensures that comparison functions treat all NaN bit\nrepresentations as equal and greater than infinity.\n\nSummary of changes:\nCurrently, numerical primitive types, including floating points, have\nan optimized SIMD implementation. However, this relies on low-level\ninstructions that follow IEEE floating point semantics, where NaN\ncompared to any other number, including itself, returns false. There\nis no trivial way to implement NaN checking and handling using SIMD,\nso for now, we are falling back to the regular non-SIMD version that\nemploys comparators supporting NaN handling in the intended way.\n\nAdditionally, this change currently handles this by adding a special\ncase in the ComparisonSimdFunction vector function instead of\nregistering the SimpleFunction for floating types. This is because\nregistering an additional/different function to handle floating types\nis causing a regression in an internal integration which is still under\ninvestigation.\n\nReviewed By: kgpai, kagamiori\n\nDifferential Revision: D58471982\n\nfbshipit-source-id: 1b092cc0feae2e7e56738031c5ac6d5a6f6f01db","shortMessageHtmlLink":"Fix NaN handling in comparison functions (#10165)"}},{"before":"ac06de388ab0252784a0ea5ff6f101e0593ec603","after":"c5b9327d164744ec1797b5642f6981a6450da8e4","ref":"refs/heads/gh-pages","pushedAt":"2024-07-03T17:47:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update documentation","shortMessageHtmlLink":"Update documentation"}},{"before":"0cb715ea35d4f49db2baef710abe000390ae96af","after":"decd91eb50e6ef51cddb8e3251e3c3002111dd82","ref":"refs/heads/main","pushedAt":"2024-07-03T17:46:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Call commitNull in SimpleFunctionAdapter on exceptions (#10377)\n\nSummary:\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10377\n\nThe way the VectorWriters work today, if its writing a variable length type and it is not committed\n(e.g. because an exception was thrown) when the next value is written it will start with the state of\nthe previous value rather than a clean slate. This can result in e.g. strings starting with the contents\nthat were written for the previous string.\n\nSimpleFunctionAdapter tried to compensate for this by making a local copy of the top level\nVectorWriter and only copying back into the original if processing the current row succeeds. This\ndoes nothing for nested writers (it also wasn't implemented for Strings).\n\nTo fix this, I've added an optional lambda to applyToSelectedNoThrow that gets invoked when an\nexception is caught. We can use this to call commitNull on the writer which should reset the state\nof all writers (top level and nested). Note that if we're catching exceptions and not throwing anything\nwe must be in a try so committing null is safe and reasonable to do.\n\nThis shouldn't impact the performance of the path without exceptions (I ran the ArrayWriterBenchmark to confirm this). I also do not need to make this change in the fast path as\nthe fast path is only invoked if the output type is primitive and fixed width, and in this there is no\nstate other than the value in the Vector so failing to commit does not cause issues.\n\nThis combined with https://github.com/facebookincubator/velox/pull/10376 addresses the issue\nidentified in https://github.com/facebookincubator/velox/issues/10162\n\nReviewed By: mbasmanova\n\nDifferential Revision: D59292285\n\nfbshipit-source-id: 00c000626bb12451b7c95c24460eb62816532403","shortMessageHtmlLink":"Call commitNull in SimpleFunctionAdapter on exceptions (#10377)"}},{"before":"659f07e7775161d99e5747a2d732e2cc00806fa7","after":"ac06de388ab0252784a0ea5ff6f101e0593ec603","ref":"refs/heads/gh-pages","pushedAt":"2024-07-03T17:43:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update documentation","shortMessageHtmlLink":"Update documentation"}},{"before":"4e39b06c79660c86ebbab467ccfcd01a13857d93","after":"0cb715ea35d4f49db2baef710abe000390ae96af","ref":"refs/heads/main","pushedAt":"2024-07-03T17:42:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Reject duplicate sorting keys (#10040)\n\nSummary:\nA SQL query may specify duplicate sorting keys:\n\n```\nSELECT c1 FROM t ORDER BY c1, c1\n```\n\nSuch query fails in Gluten:\n\n```\nCaused by: java.lang.RuntimeException: Exception: VeloxRuntimeError\nError Source: RUNTIME\nError Code: INVALID_STATE\nReason: (1 vs. 2)\nRetriable: False\nExpression: input_->size() >= sortCompareFlags_.size()\nFunction: SortBuffer\nFile: /opt/gluten/gluten/ep/build-velox/build/velox_ep/velox/exec/SortBuffer.cpp\nLine: 36\n```\n\nHarden OrderByNode to reject duplicate sorting keys. The query planner should ensure the sorting keys are unique.\n\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10040\n\nReviewed By: kevinwilfong\n\nDifferential Revision: D59122341\n\nPulled By: bikramSingh91\n\nfbshipit-source-id: b2bab9a0d64c7a76908d48ca4503a7377aeff7b8","shortMessageHtmlLink":"Reject duplicate sorting keys (#10040)"}},{"before":"4fbf1553f40157cf3f5edf6a70646440526de674","after":"659f07e7775161d99e5747a2d732e2cc00806fa7","ref":"refs/heads/gh-pages","pushedAt":"2024-07-03T17:38:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update documentation","shortMessageHtmlLink":"Update documentation"}},{"before":"63ccecaa2812c70aa7b2cda7a3a4b43abe0af223","after":"4e39b06c79660c86ebbab467ccfcd01a13857d93","ref":"refs/heads/main","pushedAt":"2024-07-03T17:37:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add Spark raise_error function (#10110)\n\nSummary:\nThis PR adds Spark `raise_error` function. It is re-used in Spark `assert_true`\nfunction, so after this PR `assert_true` can also be supported.\n\nSpark document: https://spark.apache.org/docs/latest/api/sql/#raise_error\nSpark code: https://github.com/apache/spark/blob/branch-3.5/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/misc.scala#L85C1-L92C1\nIssue: https://github.com/apache/incubator-gluten/issues/5991\n\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10110\n\nReviewed By: kevinwilfong\n\nDifferential Revision: D59252851\n\nPulled By: bikramSingh91\n\nfbshipit-source-id: d41347bed8265825bb415e8604179b38ecc89bc8","shortMessageHtmlLink":"Add Spark raise_error function (#10110)"}},{"before":"4d6dd724e9392fd919ea466a258e7630c30814a0","after":"4fbf1553f40157cf3f5edf6a70646440526de674","ref":"refs/heads/gh-pages","pushedAt":"2024-07-03T04:58:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update build metrics","shortMessageHtmlLink":"Update build metrics"}},{"before":"4a0ce3e4320ed338f1e5291960474be7bf537195","after":"63ccecaa2812c70aa7b2cda7a3a4b43abe0af223","ref":"refs/heads/main","pushedAt":"2024-07-03T01:58:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Check determinism using function name only (#10241)\n\nSummary:\nIn ExpressionFuzzer, the determinism could be decided without argument\ntypes. This PR changes to check determinism using function name only by\nfetching all registry entries for the given function name and checking if all\nof them are deterministic. The function is deterministic if \"deterministic\" is\ntrue for every entry. With this change, argument types are not required when\nthe signature variables are not empty.\n\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10241\n\nReviewed By: pedroerp\n\nDifferential Revision: D59122132\n\nPulled By: bikramSingh91\n\nfbshipit-source-id: ab3c2907f102d3ebb81269fe58499bef0bb878ab","shortMessageHtmlLink":"Check determinism using function name only (#10241)"}},{"before":"5bc1deb48aee81550aedbb5917bab01d3a4b61ae","after":"4d6dd724e9392fd919ea466a258e7630c30814a0","ref":"refs/heads/gh-pages","pushedAt":"2024-07-02T22:41:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Update documentation","shortMessageHtmlLink":"Update documentation"}},{"before":"49407ff9fc3f4559a1574e8cab7c964641dea6fe","after":"4a0ce3e4320ed338f1e5291960474be7bf537195","ref":"refs/heads/main","pushedAt":"2024-07-02T22:40:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Replace MappedMemory::Allocation with memory::Allocation in comments (#10336)\n\nSummary: Pull Request resolved: https://github.com/facebookincubator/velox/pull/10336\n\nReviewed By: pedroerp\n\nDifferential Revision: D59285314\n\nPulled By: bikramSingh91\n\nfbshipit-source-id: 18737182a28d63eea6a8ccc4ab8f6145027f320a","shortMessageHtmlLink":"Replace MappedMemory::Allocation with memory::Allocation in comments (#…"}},{"before":"b29176d6ba64a993ed199bb345de056736079968","after":"49407ff9fc3f4559a1574e8cab7c964641dea6fe","ref":"refs/heads/main","pushedAt":"2024-07-02T22:30:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Add argument generator for Presto truncate decimal function (#10245)\n\nSummary:\nRequired by decimal fuzzer test to generate correct argument types for Presto\ntruncate decimal function following specified constraints. Only the single-arg\ntruncate function is supported because ArgumentTypeFuzzer can generate argument\ntypes for the two-arg truncate function.\nhttps://github.com/facebookincubator/velox/pull/10217\n\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10245\n\nReviewed By: pedroerp\n\nDifferential Revision: D59122052\n\nPulled By: bikramSingh91\n\nfbshipit-source-id: cfd606100c2e8001c749d906b92b271e674fa8e7","shortMessageHtmlLink":"Add argument generator for Presto truncate decimal function (#10245)"}},{"before":"f5bfd1eed38780597b3b13eff1370207f67f0838","after":"b29176d6ba64a993ed199bb345de056736079968","ref":"refs/heads/main","pushedAt":"2024-07-02T22:24:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix spark-server docker image (#10356)\n\nSummary:\nOn centos 9, below exception is noticed when starting Spark if putting\n`SPARK_CONNECT_JAR` under `${SPARK_HOME}/jars/`. This PR moves it in\n`${SPARK_HOME}/misc/` to avoid the incompatibility.\n```\nException in thread \"main\" java.lang.NoClassDefFoundError: org/sparkproject/guava/util/concurrent/internal/InternalFutureFailureAccess\n\tat java.base/java.lang.ClassLoader.defineClass1(Native Method)\n\tat java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)\n\tat java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)\n\tat java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)\n\tat java.base/\n```\nhttps://github.com/facebookincubator/velox/pull/9559\n\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10356\n\nReviewed By: pedroerp\n\nDifferential Revision: D59285334\n\nPulled By: bikramSingh91\n\nfbshipit-source-id: 98212006c33581b7e5e56c9bd838c31c64de577e","shortMessageHtmlLink":"Fix spark-server docker image (#10356)"}},{"before":null,"after":"2bb7f6d502b96988600e5ba6d8cd48d65d7c5e7d","ref":"refs/heads/exchange_unused","pushedAt":"2024-07-02T22:16:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aditi-pandit","name":"Aditi Pandit","path":"/aditi-pandit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/87670623?s=80&v=4"},"commit":{"message":"Remove unused method in ExchangeSource","shortMessageHtmlLink":"Remove unused method in ExchangeSource"}},{"before":"8fcd7c58e32d8c5ba03e1fcfe4d05647e148e87c","after":"f5bfd1eed38780597b3b13eff1370207f67f0838","ref":"refs/heads/main","pushedAt":"2024-07-02T20:11:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Fix incorrect result of approx_percentile in window operations (#10368)\n\nSummary:\nPull Request resolved: https://github.com/facebookincubator/velox/pull/10368\n\napprox_percentile(x, percentiles) returns incorrect result in a window\noperation where a frame that should return non-NULL follows a frame\nthat returns NULL. Before the fix, the window operation returns NULL\nfor both frames. This is because\nAggregationWindowFunction::computeAggregate() reuses the same\nresult vector across frames. It calls BaseVector::prepareForReuse()\nbefore computing the aggregation for a frame. prepareForReuse()\ndoesn't clear the nulls buffer of the vector as it expects the code that\nreuse the vector to set nulls properly. ApproxPercentileAggregate,\nhowever, doesn't set the result rows to be non-null in the code path\nfor array-typed percentiles.\n\nThis diff fixes this bug by setting the nulls buffer properly.\n\nReviewed By: Yuhta\n\nDifferential Revision: D59257658\n\nfbshipit-source-id: 1e114dad3a61401eb90292a4b40a662708dfe6a5","shortMessageHtmlLink":"Fix incorrect result of approx_percentile in window operations (#10368)"}},{"before":"c12aa738bc1354def5850f1b21d676cd98ceff2a","after":"8fcd7c58e32d8c5ba03e1fcfe4d05647e148e87c","ref":"refs/heads/main","pushedAt":"2024-07-02T18:08:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Improve the performance of hash Spark functions for scalar types through auto-vectorization (#10301)\n\nSummary:\nImprove the performance of hash Spark functions for scalar types through\nauto-vectorization.\nWe can observe a measurable speed-up with this change:\nTINYINT: ~4X, SMALLINT: ~4X, BIGINT: ~2X, REAL: ~4X, DOUBLE:~2X,\nDECIMAL(18, 6): ~2X, DECIMAL(38, 6): ~1.2X, TIMESTAMP: ~1.8X,\nVARCHAR: ~1.3X.\n\nBenchmark result before this optimization:\n```\n============================================================================\n[...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s\n============================================================================\nhash#ARRAY