The GitHub Actions job "Coverage" on grails-core.git/feat/sql-tail-command has failed. Run started by GitHub user jdaugherty (triggered by jdaugherty).
Head commit for run: 9f418b24179ae4cf5c1e104103f35e30c5eae5d0 / James Daugherty <[email protected]> Capture Cypher and MongoDB commands in sql-tail sql-tail recorded only the SQL Hibernate ran. GORM also runs Cypher on Neo4j and commands on MongoDB, and a page that is query-heavy on those stores was invisible to it. Neo4j: a SqlTailDriver wraps the driver the connection source builds, at both sites of Neo4jConnectionSourceFactory, so that every session it opens, and every transaction and transaction function of a session, records the statement before it is run; parameters are never recorded. The capture opens with the driver and closes with it. Cypher is read by a syntax of its own, SqlTailSyntax.CYPHER, verified against Neo4j 5 and the embedded Neo4j 3.5: quotes of either kind delimit a string with a backslash escaping inside it, a quote written twice is two strings, backticks delimit a name, // starts a comment and -- does not, block comments do not nest, and a dollar starts a parameter. The two versions differ on two points and the syntax takes neither side: whether a line comment ends at a carriage return is read both ways, and a backslash outside a string or a comment, which Neo4j 5 decodes before it parses, withholds the statement. MongoDB: a SqlTailCommandListener is added to the client settings of each connection source and records every command as its name, its namespace and its entries with every value replaced, through the new SqlTailCapture.recordRedacted. A command is a document, so there is nothing to parse; what can hold data is a key, so a key below the top of a document is kept only where the mapping knows it as a field, which MongoMappedFields resolves through embedded entities, and the keys of a map property, of a dynamic attribute or of a collection no domain class is mapped to are recorded as ? as well. The datastore binds its mapping to the listeners of its connection sources, including one added at runtime; the connection source owns the capture, so a client stopped for a checkpoint records to the same capture once started again. The command classifies a Cypher statement by the clauses that write in it and a MongoDB command by its name, and shows both whole. The guide and the command reference describe the two stores. Report URL: https://github.com/apache/grails-core/actions/runs/40011004306 With regards, GitHub Actions via GitBox
