fix: resolve ParameterReference in MERGE property matching#2
Merged
ExtReMLapin merged 1 commit intofixissue3476from Feb 18, 2026
Merged
Conversation
When a MERGE query used parameter references (e.g., $username) in node properties, the ParameterReference objects were not resolved before property matching. This caused MERGE to always create a new node instead of finding the existing one, mirroring the bug that was already fixed in MatchNodeStep.matchesProperties(). The fix adds ParameterReference resolution in MergeStep.evaluateProperties(), which is called before matchesProperties() for both node and edge patterns. Regression tests added to OpenCypherMergeTest: - mergeFindsNodeWithParameterReference: verifies no duplicate is created - mergeCreatesNodeWithParameterReference: verifies creation still works https://claude.ai/code/session_012HJWpf6hyoiJSrFo2Wyim1
ExtReMLapin
pushed a commit
that referenced
this pull request
Mar 18, 2026
…3 in /studio in the build-tools group [skip ci] [//]: # (dependabot-start)⚠️ \*\*Dependabot is rebasing this PR\*\*⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps the build-tools group in /studio with 1 update: [webpack](https://github.com/webpack/webpack). Updates `webpack` from 5.105.2 to 5.105.3 Release notes *Sourced from [webpack's releases](https://github.com/webpack/webpack/releases).* > v5.105.3 > -------- > > ### Patch Changes > > * Context modules now handle rejections correctly. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20455](https://redirect.github.com/webpack/webpack/pull/20455)) > * Only mark asset modules as side-effect-free when `experimental.futureDefaults` is set to true, so asset-copying use cases (e.g. `import "./x.png"`) won’t break unless the option is enabled. (by [`@hai-x`](https://github.com/hai-x) in [#20535](https://redirect.github.com/webpack/webpack/pull/20535)) > * Add the missing **webpack\_exports** declaration in certain cases when bundling a JS entry together with non-JS entries (e.g., CSS entry or asset module entry). (by [`@hai-x`](https://github.com/hai-x) in [#20463](https://redirect.github.com/webpack/webpack/pull/20463)) > * Fixed HMR failure for CSS modules with [`@import`](https://github.com/import) when exportType !== "link". When exportType is not "link", CSS modules now behave like JavaScript modules and don't require special HMR handling, allowing [`@import`](https://github.com/import) CSS to work correctly during hot module replacement. (by [`@xiaoxiaojx`](https://github.com/xiaoxiaojx) in [#20514](https://redirect.github.com/webpack/webpack/pull/20514)) > * Fixed an issue where empty JavaScript files were generated for CSS-only entry points. The code now correctly checks if entry modules have JavaScript source types before determining whether to generate a JS file. (by [`@xiaoxiaojx`](https://github.com/xiaoxiaojx) in [#20454](https://redirect.github.com/webpack/webpack/pull/20454)) > * Do not crash when a referenced chunk is not a runtime chunk. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20461](https://redirect.github.com/webpack/webpack/pull/20461)) > * Fix some types. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20412](https://redirect.github.com/webpack/webpack/pull/20412)) > * Ensure that missing module error are thrown after the interception handler (if present), allowing module interception to customize the module factory. (by [`@hai-x`](https://github.com/hai-x) in [#20510](https://redirect.github.com/webpack/webpack/pull/20510)) > * Added `createRequire` support for ECMA modules. (by [`@stefanbinoj`](https://github.com/stefanbinoj) in [#20497](https://redirect.github.com/webpack/webpack/pull/20497)) > * Added category for CJS reexport dependency to fix issues with ECMA modules. (by [`@hai-x`](https://github.com/hai-x) in [#20444](https://redirect.github.com/webpack/webpack/pull/20444)) > * Implement immutable bytes for `bytes` import attribute to match tc39 spec. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20481](https://redirect.github.com/webpack/webpack/pull/20481)) > * Fixed deterministic search for graph roots regardless of edge order. (by [`@veeceey`](https://github.com/veeceey) in [#20452](https://redirect.github.com/webpack/webpack/pull/20452)) Changelog *Sourced from [webpack's changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md).* > 5.105.3 > ------- > > ### Patch Changes > > * Context modules now handle rejections correctly. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20455](https://redirect.github.com/webpack/webpack/pull/20455)) > * Only mark asset modules as side-effect-free when `experimental.futureDefaults` is set to true, so asset-copying use cases (e.g. `import "./x.png"`) won’t break unless the option is enabled. (by [`@hai-x`](https://github.com/hai-x) in [#20535](https://redirect.github.com/webpack/webpack/pull/20535)) > * Add the missing **webpack\_exports** declaration in certain cases when bundling a JS entry together with non-JS entries (e.g., CSS entry or asset module entry). (by [`@hai-x`](https://github.com/hai-x) in [#20463](https://redirect.github.com/webpack/webpack/pull/20463)) > * Fixed HMR failure for CSS modules with [`@import`](https://github.com/import) when exportType !== "link". When exportType is not "link", CSS modules now behave like JavaScript modules and don't require special HMR handling, allowing [`@import`](https://github.com/import) CSS to work correctly during hot module replacement. (by [`@xiaoxiaojx`](https://github.com/xiaoxiaojx) in [#20514](https://redirect.github.com/webpack/webpack/pull/20514)) > * Fixed an issue where empty JavaScript files were generated for CSS-only entry points. The code now correctly checks if entry modules have JavaScript source types before determining whether to generate a JS file. (by [`@xiaoxiaojx`](https://github.com/xiaoxiaojx) in [#20454](https://redirect.github.com/webpack/webpack/pull/20454)) > * Do not crash when a referenced chunk is not a runtime chunk. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20461](https://redirect.github.com/webpack/webpack/pull/20461)) > * Fix some types. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20412](https://redirect.github.com/webpack/webpack/pull/20412)) > * Ensure that missing module error are thrown after the interception handler (if present), allowing module interception to customize the module factory. (by [`@hai-x`](https://github.com/hai-x) in [#20510](https://redirect.github.com/webpack/webpack/pull/20510)) > * Added `createRequire` support for ECMA modules. (by [`@stefanbinoj`](https://github.com/stefanbinoj) in [#20497](https://redirect.github.com/webpack/webpack/pull/20497)) > * Added category for CJS reexport dependency to fix issues with ECMA modules. (by [`@hai-x`](https://github.com/hai-x) in [#20444](https://redirect.github.com/webpack/webpack/pull/20444)) > * Implement immutable bytes for `bytes` import attribute to match tc39 spec. (by [`@alexander-akait`](https://github.com/alexander-akait) in [#20481](https://redirect.github.com/webpack/webpack/pull/20481)) > * Fixed deterministic search for graph roots regardless of edge order. (by [`@veeceey`](https://github.com/veeceey) in [#20452](https://redirect.github.com/webpack/webpack/pull/20452)) Commits * [`714a0e3`](webpack/webpack@714a0e3) chore(release): new release ([#20448](https://redirect.github.com/webpack/webpack/issues/20448)) * [`c323b39`](webpack/webpack@c323b39) chore(deps-dev): bump nyc from 17.1.0 to 18.0.0 ([#20539](https://redirect.github.com/webpack/webpack/issues/20539)) * [`8a01dfe`](webpack/webpack@8a01dfe) refactor: deduplicate export presence logic in Harmony dependency classes ([#2](https://redirect.github.com/webpack/webpack/issues/2)... * [`b9fc7b3`](webpack/webpack@b9fc7b3) chore(deps): bump test/test262-cases in the dependencies group ([#20541](https://redirect.github.com/webpack/webpack/issues/20541)) * [`f8a5ac3`](webpack/webpack@f8a5ac3) test: add coverage for nwjs exports condition and CSS modules with webworker ... * [`59bf024`](webpack/webpack@59bf024) test: add coverage for external script in EnvironmentNotSupportAsyncWarning (... * [`4c79ac2`](webpack/webpack@4c79ac2) test: add missing coverage for formatLocation and formatSize ([#20534](https://redirect.github.com/webpack/webpack/issues/20534)) * [`4f5c0a8`](webpack/webpack@4f5c0a8) fix: mark asset module as side-effect-free when futureDefaults ([#20535](https://redirect.github.com/webpack/webpack/issues/20535)) * [`87987ca`](webpack/webpack@87987ca) test: add test * [`67c5aae`](webpack/webpack@67c5aae) test: add configCase for ESM prefetch/preload under neutral target ([#20524](https://redirect.github.com/webpack/webpack/issues/20524)) * Additional commits viewable in [compare view](webpack/webpack@v5.105.2...v5.105.3) [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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 major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
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.
When a MERGE query used parameter references (e.g., $username) in node properties, the ParameterReference objects were not resolved before property matching. This caused MERGE to always create a new node instead of finding the existing one, mirroring the bug that was already fixed in MatchNodeStep.matchesProperties().
The fix adds ParameterReference resolution in MergeStep.evaluateProperties(), which is called before matchesProperties() for both node and edge patterns.
Regression tests added to OpenCypherMergeTest:
https://claude.ai/code/session_012HJWpf6hyoiJSrFo2Wyim1
What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Related issues
A list of issues either fixed, containing architectural discussions, otherwise relevant
for this Pull Request.
Additional Notes
Anything else we should know when reviewing?
Checklist
mvn clean packagecommand