@@ -6087,6 +6087,83 @@ Total database accesses: 15, total allocated memory: 2232
60876087
60886088======
60896089
6090+ [role=label--new-2025.09]
6091+ [[query-plan-lock-nodes]]
6092+ === Lock Nodes
6093+
6094+ The `LockNodes` operator is sometimes used in conjunction with the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-locking-merge[`LockingMerge`] operator to lock nodes.
6095+
6096+
6097+ .LockNodes
6098+ ======
6099+
6100+ .Query
6101+ [source, cypher]
6102+ ----
6103+ PROFILE
6104+ MATCH (s:Person {name: 'me'})
6105+ MERGE (s)-[:FRIENDS_WITH]->(t:Person {size: size([()-->()|1])})
6106+ ----
6107+
6108+ .Query Plan
6109+ [role="queryplan", subs="attributes+"]
6110+ ----
6111+ Planner COST
6112+
6113+ Runtime PIPELINED
6114+
6115+ Runtime version DEV
6116+
6117+ Batch size 4
6118+
6119+ +----------------------------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6120+ | Operator | Id | Details | Estimated Rows | Rows | DB Hits | Memory (Bytes) | Page Cache Hits/Misses | Time (ms) | Pipeline |
6121+ +----------------------------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6122+ | +ProduceResults | 0 | | 1 | 0 | 0 | 0 | 0/0 | 0.018 | |
6123+ | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ |
6124+ | +EmptyResult | 1 | | 1 | 0 | 0 | | 0/0 | 0.016 | In Pipeline 7 |
6125+ | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6126+ | +Apply | 2 | | 1 | 0 | 0 | | 0/0 | | |
6127+ | |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6128+ | | +ArgumentTracker | 19 | | 1 | 0 | 0 | 240 | 0/0 | 0.000 | |
6129+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+ |
6130+ | | +LockingMerge | 3 | CREATE (t:Person {size: COUNT { MATCH (`anon_2`)-[`anon_3`]->(`anon_4`) RETURN $`autoint_1` AS ` | 1 | 1 | 3 | 400 | 0/0 | 15.340 | In Pipeline 7 |
6131+ | | | | | anon_0` }}), (s)-[anon_1:FRIENDS_WITH]->(t), LOCK(s) | | | | | | | |
6132+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6133+ | | +AntiConditionalApply | 18 | | | 0 | 0 | 384 | | 0.010 | In Pipeline 6 |
6134+ | | |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6135+ | | | +Filter | 17 | t.size = anon_5 AND t:Person | 0 | 0 | 4 | | | | |
6136+ | | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6137+ | | | +Apply | 16 | | 1 | 2 | 0 | | | | |
6138+ | | | |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6139+ | | | | +RelationshipCountFromCountStore | 15 | count( ()-[]->() ) AS anon_5 | 1 | 2 | 2 | 608 | 0/0 | 0.113 | Fused in Pipeline 5 |
6140+ | | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6141+ | | | +Expand(All) | 14 | (s)-[anon_1:FRIENDS_WITH]->(t) | 1 | 2 | 3 | | | | |
6142+ | | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6143+ | | | +LockNodes | 13 | s | 1 | 1 | 0 | | | | |
6144+ | | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6145+ | | | +Argument | 12 | s | 1 | 1 | 0 | 584 | 0/0 | 1.494 | Fused in Pipeline 4 |
6146+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6147+ | | +Optional | 11 | s | 0 | 1 | 0 | 528 | 0/0 | 2.057 | In Pipeline 3 |
6148+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6149+ | | +Filter | 5 | t.size = anon_5 AND t:Person | 0 | 0 | 4 | | | | |
6150+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6151+ | | +Apply | 6 | | 1 | 2 | 0 | | | | |
6152+ | | |\ +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6153+ | | | +RelationshipCountFromCountStore | 7 | count( ()-[]->() ) AS anon_5 | 1 | 2 | 2 | 528 | 0/0 | 4.220 | Fused in Pipeline 2 |
6154+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6155+ | | +Expand(All) | 8 | (s)-[anon_1:FRIENDS_WITH]->(t) | 1 | 2 | 3 | | | | |
6156+ | | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+ | | |
6157+ | | +Argument | 9 | s | 1 | 1 | 0 | 432 | 1/0 | 0.184 | Fused in Pipeline 1 |
6158+ | | +----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6159+ | +NodeIndexSeek | 10 | RANGE INDEX s:Person(name) WHERE name = $autostring_0 | 1 | 1 | 2 | 376 | 0/1 | 9.263 | In Pipeline 0 |
6160+ +----------------------------------------+----+------------------------------------------------------------------------------------------------------+----------------+------+---------+----------------+------------------------+-----------+---------------------+
6161+
6162+ Total database accesses: 23, total allocated memory: 3248
6163+ ----
6164+
6165+ ======
6166+
60906167
60916168
60926169[[query-plan-foreach]]
0 commit comments