Repository navigation
Memgraph v3.14.0 - #1764
Memgraph v3.14.0#1764vpavicic wants to merge 15 commits into
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
) * docs: the bare pattern shorthand takes what a MATCH pattern takes The page stated two rules that no longer hold: that the shorthand's pattern cannot introduce names of its own, and that it holds a pattern and nothing else so a filter needs the `MATCH` form. It now takes a variable it declares itself, a trailing `WHERE`, a comma-separated list, a named path and a lone node. The worked example is the filter the old text used to send to the `MATCH` form, written as the shorthand, with output from the page's own dataset. `COLLECT` still has no shorthand. * docs: a pattern holding only a bound variable matches on its value A pattern that names a variable the query has already bound used to be ignored, so the row passed through whatever the variable held. It is now matched: a node is kept, a null matches nothing and drops the row, and a value that is neither raises. This applies to a top-level MATCH and a CALL {} subquery as well as to a subquery expression body, which the pages did not say. Also documents the rule that came with it: a pattern name inside a subquery expression body may not repeat a name from outside the body. Every output block was produced by running the query against its own page's dataset block.
* docs(querying): document the nullIf built-in nullIf(value1, value2) answers null where the two arguments are equal and the first argument otherwise, so it takes a value away where coalesce supplies one. * docs(querying): drop nullIf from the unsupported function list It was the only entry under the scalar functions heading, so the heading goes with it.
Co-authored-by: Cursor <cursoragent@cursor.com>
…1792) Document memgraph/memgraph#4962: on a coordinator, any Bolt scheme not listed in --auth-module-mappings now takes the same passthrough path as basic/none instead of being rejected outright. Describe the two-path rule, the per-scheme denial messages once SSO is configured, and the 3.13 -> 3.14 behavior change.
Documents the new instance-level disk_available row added in memgraph/memgraph#4952. Adds it to the SHOW STORAGE INFO reference table and the example output. Co-authored-by: Vlasta <95473291+vpavicic@users.noreply.github.com>
* docs: label expressions in node patterns and expressions * Update pages/querying/differences-in-cypher-implementations.mdx --------- Co-authored-by: Vlasta <95473291+vpavicic@users.noreply.github.com>
`OPTIONAL CALL ( scope ) { body }` keeps an input row whose subquery returns no
rows, with the subquery's columns set to null - the OPTIONAL MATCH contract.
Section 2.4 said the scoped `CALL (...)` form could not be combined with
`OPTIONAL` and showed the exact query that now works. It is replaced by 1.7
under the supported uses, and 2.4 now covers the case that is still rejected:
`OPTIONAL` on a procedure call rather than on a subquery, with the subquery
wrapping that does work.
Fill in the remaining breaking, feature, fix, and improvement notes for merged memgraph PRs on this release. Co-authored-by: Cursor <cursoragent@cursor.com>
andrejtonev
left a comment
There was a problem hiding this comment.
Comments on the 3.14 entries for the session and DROP DATABASE PRs (#4577, #4571, #4843, #4969). I checked each one against current master, on a live instance. One sentence in the #4577 entry is wrong, and two entries are missing.
| that session's database. `SESSIONS` is a reserved keyword; quote it as a | ||
| bare identifier. |
There was a problem hiding this comment.
SESSIONS isn't a reserved keyword. It works unquoted as a label, property, variable or relationship type (e.g. CREATE (n:SESSIONS {sessions: 1}), WITH 1 AS sessions RETURN sessions), so this sentence asks users to do something they don't need to. The same fix is suggested on the transactions page in #1814.
| that session's database. `SESSIONS` is a reserved keyword; quote it as a | |
| bare identifier. | |
| that session's database. |
| `DROPPING` in `SHOW DATABASES`. If the same name is created again while | ||
| the old tenant is draining, that row is shown as `name (uuid)`. Plain | ||
| `DROP DATABASE` is unchanged. | ||
| [#4573](https://github.com/memgraph/memgraph/pull/4573) |
There was a problem hiding this comment.
memgraph#4843 (milestone 3.14, Docs needed) has no entry yet. With it, a forced drop closes idle connections that still have the dropped database selected, for example pooled driver connections. Before, such a connection kept the database in DROPPING until it sent another query, which an idle pooled connection may never do. The #4969 line under Bug fixes is a different case: a connection that sends a query after the drop.
| [#4573](https://github.com/memgraph/memgraph/pull/4573) | |
| [#4573](https://github.com/memgraph/memgraph/pull/4573) | |
| - After `DROP DATABASE ... FORCE`, idle Bolt connections that still have | |
| the dropped database selected, such as pooled driver connections, are | |
| now closed, so they no longer keep it in `DROPPING`. A query sent on | |
| such a connection fails with a retryable connection error and the | |
| driver opens a new connection. | |
| [#4843](https://github.com/memgraph/memgraph/pull/4843) |
Related, in multi-tenancy.mdx (line 233 on release/3.14): it still only says "Actual deletion may be deferred until existing connections are properly closed."
| [#4569](https://github.com/memgraph/memgraph/pull/4569) | ||
| - Dropping or renaming a multi-tenant database with a tenant profile now | ||
| persists correctly, including across crashes and replication. | ||
| [#4570](https://github.com/memgraph/memgraph/pull/4570) |
There was a problem hiding this comment.
There's no bug-fix line for the cross-thread read that memgraph#4571 and #4577 fixed. SHOW TRANSACTIONS and SHOW ACTIVE USERS INFO read another session's user, database and session info with no synchronization, and that code shipped in v3.13.0 and v3.13.1. #4577 is labelled bug. At the moment #4571 appears only under Breaking changes and #4577 only under New features. Entries are in PR order, so this would go between #4570 and #4572:
| [#4570](https://github.com/memgraph/memgraph/pull/4570) | |
| [#4570](https://github.com/memgraph/memgraph/pull/4570) | |
| - `SHOW TRANSACTIONS` and `SHOW ACTIVE USERS INFO` no longer risk crashing | |
| Memgraph when another session logs in or out, or switches database or user, | |
| while they run. | |
| [#4571](https://github.com/memgraph/memgraph/pull/4571) [#4577](https://github.com/memgraph/memgraph/pull/4577) |
If you prefer one PR per entry, split it this way: #4577 for the user part of SHOW TRANSACTIONS, and #4571 for the database part and SHOW ACTIVE USERS INFO.
| - After `DROP DATABASE ... FORCE`, a Bolt connection that was on that | ||
| database is now closed, so the driver reconnects instead of staying | ||
| stuck on "Database required". | ||
| [#4969](https://github.com/memgraph/memgraph/pull/4969) |
There was a problem hiding this comment.
Optional, checked live on master: this only closes connections whose driver session named the database (the db field). A connection that switched with USE DATABASE stays open and keeps getting "Database required for query execution." Maybe "a Bolt connection whose driver session targeted that database".
Make sure to do:
Milestones
Docs Integration Tracking
Breaking changes PRs
Docs needed (Memgraph PR → Docs PR)
Changelog (all PRs requiring a changelog entry)
UUIDlabel on default DB gauges when a data instance joins a cluster memgraph#4275 @colinbarry