Adalennis opened a new pull request, #9200:
URL: https://github.com/apache/hop/pull/9200

   Addresses #8970
   
   Thirteenth batch: a Result section on the pages of Check graph database 
connections, Graph script, Graph index, Graph constraint and Create property 
graph.
   
   Every row comes from a hop-run test against the current code (103 workflows: 
Neo4j 2026.09 Community in Docker, reset before each test and queried 
afterwards for nodes, indexes and constraints; Oracle AI Database 26ai Free in 
Docker for Create property graph, reset before each test; PostgreSQL as a 
database without SQL/PGQ). The October 21 snapshot has no graph plugins, so the 
tests ran on that snapshot with the Neo4j plugin compiled from upstream/main 
(no changes to the plugin or to core graph code since, apart from #9080 which 
doesn't touch Neo4j). Both a Neo4j connection and a graph database connection 
of type Neo4j were used; Memgraph, FalkorDB, Apache AGE and Neptune were not 
tested. Each action was also run after an action that is true with 2 errors and 
after a false action on an unconditional hop (all pass on true with 0 errors), 
and with a previous result holding files and rows. What the tests show:
   - Graph index and Graph constraint are never false: every failure throws out 
of execute() and stops the workflow, no hop is followed (empty, unknown or 
unreachable connection, missing Update type, Constraint name or Vector 
dimensions, or a statement the database refuses: NOT_NULL and NODE_KEY on 
Community Edition, duplicate values for UNIQUE, vector dimensions above 4096). 
The updates before the failing one stay done, the ones after it are not run. 
Drops run before creates.
   - Creates use IF NOT EXISTS and drops IF EXISTS: an index or constraint with 
the same name on another label or property, or an equivalent one with another 
name, means nothing is created and the action is true. Documented as a NOTE.
   - Graph script: an empty, unknown or unreachable connection or a refused 
login stops the workflow; a failing statement gives false with 1 error. A 
semicolon at the end of a line instead of on a new line sends two statements as 
one ("Expected exactly one statement per query"), and on Neo4j schema and data 
statements in one script fail in either order. The transaction behaviour 
described on the page was confirmed, including CALL { } IN TRANSACTIONS. A 
query that returns rows is true and its rows are not passed on.
   - Check graph database connections checks every connection and counts one 
error per failed connection (unknown or empty name, unreachable server, refused 
login).
   - Create property graph: an empty or unknown relational connection stops the 
workflow (loadDatabaseMeta runs outside the try); everything else gives false 
with 1 error (empty or unquotable graph name, unknown graph model, unreachable 
database, no SQL/PGQ support, unknown schema, missing table without Create 
missing tables?, existing graph without Replace an existing graph?). The tables 
are created before the graph: on PostgreSQL the tables stayed after CREATE 
PROPERTY GRAPH failed.
   
   Also fixed:
   - Graph script: the example used the Neo4j 3 index syntax (CREATE INDEX ... 
on :Company(id)) and failed on current Neo4j; replaced by CREATE INDEX ... IF 
NOT EXISTS FOR (n:Person) ON (n.name), tested. The source block had the 
statement as its language. The description now says the connection exceptions 
don't give a false result.
   - Labels: Graph database connection, Cypher Script, Replace variables in 
script? (Graph script); Type of object to put constraint on, Object property 
(Graph constraint); Properties (, separated) (Graph index).
   
   Found while testing (not reported yet): Graph index and Graph constraint 
stopping the workflow instead of being false, Graph script and Create property 
graph stopping on connection problems, and Create property graph leaving the 
tables when the graph statement fails.
   
   ------------------------
   
   Thank you for your contribution! Follow this checklist to help us 
incorporate your contribution quickly and easily:
   - [x] Run `mvn clean install apache-rat:check` to make sure basic checks 
pass. A more thorough check will be performed on your pull request 
automatically.
   - [x] If you have a group of commits related to the same change, please 
squash your commits into one and force push your branch using `git rebase -i`.
   - [x] Mention the appropriate issue in your description (for example: 
`addresses #123`), if applicable.
   
   To make clear that you license your contribution under the [Apache License 
Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   you have to acknowledge this by using the following check-box.
   
   - [x] I hereby declare this contribution to be licensed under the [Apache 
License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   - [ ] In any other case, please file an [Apache Individual Contributor 
License Agreement](https://www.apache.org/licenses/icla.pdf).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to