Add null-safe comparison operator#652
Merged
Merged
Conversation
Member
|
Added test cases, seems to work properly. My query test was a simple 👍 The semantic is a little bit different from MariaDB's operator where it returns 0 or 1, instead of true or false (as you mentioned): |
Member
|
Thanks @gramian! |
mergify Bot
added a commit
that referenced
this pull request
Mar 3, 2026
…r-webpack-plugin in /studio [skip ci] Removes [serialize-javascript](https://github.com/yahoo/serialize-javascript). It's no longer used after updating ancestor dependencies [serialize-javascript](https://github.com/yahoo/serialize-javascript), [copy-webpack-plugin](https://github.com/webpack/copy-webpack-plugin) and [terser-webpack-plugin](https://github.com/webpack/terser-webpack-plugin). These dependencies need to be updated together. Removes `serialize-javascript` Updates `copy-webpack-plugin` from 13.0.1 to 14.0.0 Release notes *Sourced from [copy-webpack-plugin's releases](https://github.com/webpack/copy-webpack-plugin/releases).* > v14.0.0 > ------- > > [14.0.0](webpack/copy-webpack-plugin@v13.0.1...v14.0.0) (2026-03-02) > ----------------------------------------------------------------------------------------------- > > ### ⚠ BREAKING CHANGES > > * minimum supported `Node.js` version is `20.9.0` ([#819](https://redirect.github.com/webpack/copy-webpack-plugin/issues/819)) ([2881203](webpack/copy-webpack-plugin@2881203)) > > ### Bug Fixes > > * update `serialize-javascript` to fix security problems Changelog *Sourced from [copy-webpack-plugin's changelog](https://github.com/webpack/copy-webpack-plugin/blob/main/CHANGELOG.md).* > [14.0.0](webpack/copy-webpack-plugin@v13.0.1...v14.0.0) (2026-03-02) > ----------------------------------------------------------------------------------------------- > > ### ⚠ BREAKING CHANGES > > * minimum supported `Node.js` version is `20.9.0` ([#819](https://redirect.github.com/webpack/copy-webpack-plugin/issues/819)) ([2881203](webpack/copy-webpack-plugin@2881203)) > > ### Bug Fixes > > * update `serialize-javascript` to fix security problems Commits * [`18eb9d9`](webpack/copy-webpack-plugin@18eb9d9) chore(release): 14.0.0 * [`2881203`](webpack/copy-webpack-plugin@2881203) refactor!: minimum supported `Node.js` version is `20.9.0` ([#819](https://redirect.github.com/webpack/copy-webpack-plugin/issues/819)) * [`9dc3d31`](webpack/copy-webpack-plugin@9dc3d31) chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 ([#815](https://redirect.github.com/webpack/copy-webpack-plugin/issues/815)) * [`5cf5a1d`](webpack/copy-webpack-plugin@5cf5a1d) chore(deps): update ([#814](https://redirect.github.com/webpack/copy-webpack-plugin/issues/814)) * [`3dd5b6e`](webpack/copy-webpack-plugin@3dd5b6e) chore(deps): bump js-yaml ([#813](https://redirect.github.com/webpack/copy-webpack-plugin/issues/813)) * [`9ac38bb`](webpack/copy-webpack-plugin@9ac38bb) chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 ([#812](https://redirect.github.com/webpack/copy-webpack-plugin/issues/812)) * [`6a16bac`](webpack/copy-webpack-plugin@6a16bac) Update link to contributing guidelines in README * [`a1625f9`](webpack/copy-webpack-plugin@a1625f9) chore: migrate from contrib ([#810](https://redirect.github.com/webpack/copy-webpack-plugin/issues/810)) * [`9f6f204`](webpack/copy-webpack-plugin@9f6f204) chore: update github actions/checkout from v4 to v5 ([#809](https://redirect.github.com/webpack/copy-webpack-plugin/issues/809)) * See full diff in [compare view](webpack/copy-webpack-plugin@v13.0.1...v14.0.0) Updates `terser-webpack-plugin` from 5.3.16 to 5.3.17 Release notes *Sourced from [terser-webpack-plugin's releases](https://github.com/webpack/terser-webpack-plugin/releases).* > v5.3.17 > ------- > > ### [5.3.17](webpack/minimizer-webpack-plugin@v5.3.16...v5.3.17) (2026-03-03) > > ### Bug Fixes > > * update `serialize-javascript` ([37c490c](webpack/minimizer-webpack-plugin@37c490c)) Changelog *Sourced from [terser-webpack-plugin's changelog](https://github.com/webpack/terser-webpack-plugin/blob/main/CHANGELOG.md).* > ### [5.3.17](webpack/minimizer-webpack-plugin@v5.3.16...v5.3.17) (2026-03-03) > > ### Bug Fixes > > * update `serialize-javascript` ([37c490c](webpack/minimizer-webpack-plugin@37c490c)) Commits * [`6f911ff`](webpack/minimizer-webpack-plugin@6f911ff) chore(release): 5.3.17 * [`37c490c`](webpack/minimizer-webpack-plugin@37c490c) fix: update `serialize-javascript` * [`207764f`](webpack/minimizer-webpack-plugin@207764f) chore: deps update ([#652](https://redirect.github.com/webpack/terser-webpack-plugin/issues/652)) * [`a85ab47`](webpack/minimizer-webpack-plugin@a85ab47) chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 ([#648](https://redirect.github.com/webpack/terser-webpack-plugin/issues/648)) * See full diff in [compare view](webpack/minimizer-webpack-plugin@v5.3.16...v5.3.17) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ArcadeData/arcadedb/network/alerts).
tae898
pushed a commit
to humemai/arcadedb-embedded-python
that referenced
this pull request
Jun 28, 2026
* Add null-safe comparison operator * Added test cases for new <=> operator Co-authored-by: lvca <[email protected]>
tae898
pushed a commit
to humemai/arcadedb-embedded-python
that referenced
this pull request
Jun 28, 2026
…r-webpack-plugin in /studio [skip ci] Removes [serialize-javascript](https://github.com/yahoo/serialize-javascript). It's no longer used after updating ancestor dependencies [serialize-javascript](https://github.com/yahoo/serialize-javascript), [copy-webpack-plugin](https://github.com/webpack/copy-webpack-plugin) and [terser-webpack-plugin](https://github.com/webpack/terser-webpack-plugin). These dependencies need to be updated together. Removes `serialize-javascript` Updates `copy-webpack-plugin` from 13.0.1 to 14.0.0 Release notes *Sourced from [copy-webpack-plugin's releases](https://github.com/webpack/copy-webpack-plugin/releases).* > v14.0.0 > ------- > > [14.0.0](webpack/copy-webpack-plugin@v13.0.1...v14.0.0) (2026-03-02) > ----------------------------------------------------------------------------------------------- > > ### ⚠ BREAKING CHANGES > > * minimum supported `Node.js` version is `20.9.0` ([ArcadeData#819](https://redirect.github.com/webpack/copy-webpack-plugin/issues/819)) ([2881203](webpack/copy-webpack-plugin@2881203)) > > ### Bug Fixes > > * update `serialize-javascript` to fix security problems Changelog *Sourced from [copy-webpack-plugin's changelog](https://github.com/webpack/copy-webpack-plugin/blob/main/CHANGELOG.md).* > [14.0.0](webpack/copy-webpack-plugin@v13.0.1...v14.0.0) (2026-03-02) > ----------------------------------------------------------------------------------------------- > > ### ⚠ BREAKING CHANGES > > * minimum supported `Node.js` version is `20.9.0` ([ArcadeData#819](https://redirect.github.com/webpack/copy-webpack-plugin/issues/819)) ([2881203](webpack/copy-webpack-plugin@2881203)) > > ### Bug Fixes > > * update `serialize-javascript` to fix security problems Commits * [`18eb9d9`](webpack/copy-webpack-plugin@18eb9d9) chore(release): 14.0.0 * [`2881203`](webpack/copy-webpack-plugin@2881203) refactor!: minimum supported `Node.js` version is `20.9.0` ([ArcadeData#819](https://redirect.github.com/webpack/copy-webpack-plugin/issues/819)) * [`9dc3d31`](webpack/copy-webpack-plugin@9dc3d31) chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 ([ArcadeData#815](https://redirect.github.com/webpack/copy-webpack-plugin/issues/815)) * [`5cf5a1d`](webpack/copy-webpack-plugin@5cf5a1d) chore(deps): update ([ArcadeData#814](https://redirect.github.com/webpack/copy-webpack-plugin/issues/814)) * [`3dd5b6e`](webpack/copy-webpack-plugin@3dd5b6e) chore(deps): bump js-yaml ([#813](https://redirect.github.com/webpack/copy-webpack-plugin/issues/813)) * [`9ac38bb`](webpack/copy-webpack-plugin@9ac38bb) chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 ([ArcadeData#812](https://redirect.github.com/webpack/copy-webpack-plugin/issues/812)) * [`6a16bac`](webpack/copy-webpack-plugin@6a16bac) Update link to contributing guidelines in README * [`a1625f9`](webpack/copy-webpack-plugin@a1625f9) chore: migrate from contrib ([ArcadeData#810](https://redirect.github.com/webpack/copy-webpack-plugin/issues/810)) * [`9f6f204`](webpack/copy-webpack-plugin@9f6f204) chore: update github actions/checkout from v4 to v5 ([ArcadeData#809](https://redirect.github.com/webpack/copy-webpack-plugin/issues/809)) * See full diff in [compare view](webpack/copy-webpack-plugin@v13.0.1...v14.0.0) Updates `terser-webpack-plugin` from 5.3.16 to 5.3.17 Release notes *Sourced from [terser-webpack-plugin's releases](https://github.com/webpack/terser-webpack-plugin/releases).* > v5.3.17 > ------- > > ### [5.3.17](webpack/minimizer-webpack-plugin@v5.3.16...v5.3.17) (2026-03-03) > > ### Bug Fixes > > * update `serialize-javascript` ([37c490c](webpack/minimizer-webpack-plugin@37c490c)) Changelog *Sourced from [terser-webpack-plugin's changelog](https://github.com/webpack/terser-webpack-plugin/blob/main/CHANGELOG.md).* > ### [5.3.17](webpack/minimizer-webpack-plugin@v5.3.16...v5.3.17) (2026-03-03) > > ### Bug Fixes > > * update `serialize-javascript` ([37c490c](webpack/minimizer-webpack-plugin@37c490c)) Commits * [`6f911ff`](webpack/minimizer-webpack-plugin@6f911ff) chore(release): 5.3.17 * [`37c490c`](webpack/minimizer-webpack-plugin@37c490c) fix: update `serialize-javascript` * [`207764f`](webpack/minimizer-webpack-plugin@207764f) chore: deps update ([ArcadeData#652](https://redirect.github.com/webpack/terser-webpack-plugin/issues/652)) * [`a85ab47`](webpack/minimizer-webpack-plugin@a85ab47) chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 ([#648](https://redirect.github.com/webpack/terser-webpack-plugin/issues/648)) * See full diff in [compare view](webpack/minimizer-webpack-plugin@v5.3.16...v5.3.17) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ArcadeData/arcadedb/network/alerts).
mergify Bot
added a commit
that referenced
this pull request
Jul 5, 2026
…5.28.4 in /e2e-go in the go-modules group across 1 directory [skip ci] Bumps the go-modules group with 1 update in the /e2e-go directory: [github.com/neo4j/neo4j-go-driver/v5](https://github.com/neo4j/neo4j-go-driver). Updates `github.com/neo4j/neo4j-go-driver/v5` from 5.28.1 to 5.28.4 Release notes *Sourced from [github.com/neo4j/neo4j-go-driver/v5's releases](https://github.com/neo4j/neo4j-go-driver/releases).* > v5.28.4 > ------- > > See <https://github.com/neo4j/neo4j-go-driver/wiki/5.x-changelog> for more information. > > v5.28.3 > ------- > > See <https://github.com/neo4j/neo4j-go-driver/wiki/5.x-changelog> for more information. > > v5.28.2 > ------- > > See <https://github.com/neo4j/neo4j-go-driver/wiki/5.x-changelog> for more information. Commits * [`3371ea9`](neo4j/neo4j-go-driver@3371ea9) Prepare 5.28.4 release ([#674](https://redirect.github.com/neo4j/neo4j-go-driver/issues/674)) * [`b167253`](neo4j/neo4j-go-driver@b167253) TestKit: time warp backend ([#638](https://redirect.github.com/neo4j/neo4j-go-driver/issues/638)) * [`ed84341`](neo4j/neo4j-go-driver@ed84341) Short-circuit retries on context timeout ([#666](https://redirect.github.com/neo4j/neo4j-go-driver/issues/666)) * [`aa5e3c3`](neo4j/neo4j-go-driver@aa5e3c3) [5.0] Fix Close deadlock ([#669](https://redirect.github.com/neo4j/neo4j-go-driver/issues/669)) * [`267f8c7`](neo4j/neo4j-go-driver@267f8c7) Docs: note `IsRetryable` is not applicable to auto-commit transactions ([#649](https://redirect.github.com/neo4j/neo4j-go-driver/issues/649)) * [`dce8c24`](neo4j/neo4j-go-driver@dce8c24) Prepare 5.28.3 release ([#662](https://redirect.github.com/neo4j/neo4j-go-driver/issues/662)) * [`0b989f4`](neo4j/neo4j-go-driver@0b989f4) Fix 32-bit ARM compatibility issue ([#661](https://redirect.github.com/neo4j/neo4j-go-driver/issues/661)) * [`e774ca3`](neo4j/neo4j-go-driver@e774ca3) Flesh out Driver.Close docs ([#651](https://redirect.github.com/neo4j/neo4j-go-driver/issues/651)) * [`a526fb3`](neo4j/neo4j-go-driver@a526fb3) Prepare 5.28.2 release ([#656](https://redirect.github.com/neo4j/neo4j-go-driver/issues/656)) * [`24e5eb5`](neo4j/neo4j-go-driver@24e5eb5) Deprecation of Single ([#652](https://redirect.github.com/neo4j/neo4j-go-driver/issues/652)) * Additional commits viewable in [compare view](neo4j/neo4j-go-driver@v5.28.1...v5.28.4)
This file contains hidden or 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
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.
What does this PR do?
This PR adds a null-safe comparison operator. The token
<=>is used for this equality operator that is alsotrueif both arguments arenullMotivation
What inspired you to submit this pull request?
MariaDB and SQlite both have a similar feature, which can be useful for data cleaning.
Related issues
Additional Notes
I basically copy-pasted the
EqualsCompareOperator.javaand added a check that if both argument objects arenull,trueis returned, before theQueryOperatorEquals.equals()method is called, which in turn would return false for twonullarguments.I am not sure anymore ArcadeDB is fully "null-unsafe" anymore, as all comparing methods return booleans, so a
nullreturn value is not planned. Now, I assume all comparisons withnullare false and notnull, is this correct? If so, my solution should be sufficient.I only appended the grammar defintion and the
NullSafeEqualsCompareOperator.javafile, the other changes result seemed to have happened during compile / grammar rebuild.Due to IF function does not work #564 I cannot easily test this elaborately.
I have not added unit tests. I only tested some simple cases as in the original issue yet.
Checklist
mvn clean packagecommand