@@ -254,6 +254,30 @@ def test_fulltext_search_with_score(temp_db_path):
254254 assert first .get ("$score" ) is not None
255255
256256
257+ def test_fulltext_search_preserves_wildcards (temp_db_path ):
258+ """Full-text wildcard queries should reach the index unchanged."""
259+ with arcadedb .create_database (temp_db_path ) as db :
260+ db .command ("sql" , "CREATE DOCUMENT TYPE Article" )
261+ db .command ("sql" , "CREATE PROPERTY Article.content STRING" )
262+ db .command ("sql" , "CREATE INDEX ON Article (content) FULL_TEXT" )
263+
264+ with db .transaction ():
265+ db .command (
266+ "sql" , "INSERT INTO Article SET content = 'Hello database world'"
267+ )
268+ db .command ("sql" , "INSERT INTO Article SET content = 'Help me search'" )
269+
270+ result = db .query (
271+ "sql" ,
272+ "SELECT content FROM Article "
273+ "WHERE SEARCH_INDEX('Article[content]', 'Hel*') = true "
274+ "ORDER BY content" ,
275+ )
276+ contents = [record .get ("content" ) for record in result ]
277+
278+ assert contents == ["Hello database world" , "Help me search" ]
279+
280+
257281def test_sqlscript_returns_last_command_result (temp_db_path ):
258282 """SQLScript returns the last command result when no explicit RETURN is used."""
259283 with arcadedb .create_database (temp_db_path ) as db :
@@ -464,6 +488,29 @@ def test_graph_operations(temp_db_path):
464488 assert "Bob" in names
465489
466490
491+ def test_create_edge_with_content_object_preserves_properties (temp_db_path ):
492+ """CREATE EDGE ... CONTENT {...} should keep object-form properties."""
493+ with arcadedb .create_database (temp_db_path ) as db :
494+ db .command ("sql" , "CREATE VERTEX TYPE Person" )
495+ db .command ("sql" , "CREATE EDGE TYPE Knows" )
496+
497+ with db .transaction ():
498+ db .command ("sql" , "INSERT INTO Person SET name = 'Alice'" )
499+ db .command ("sql" , "INSERT INTO Person SET name = 'Bob'" )
500+ db .command (
501+ "sql" ,
502+ "CREATE EDGE Knows "
503+ "FROM (SELECT FROM Person WHERE name = 'Alice') "
504+ "TO (SELECT FROM Person WHERE name = 'Bob') "
505+ "CONTENT {since: 2024, note: 'met at summit'}" ,
506+ )
507+
508+ row = db .query ("sql" , "SELECT since, note FROM Knows" ).one ()
509+
510+ assert row .get ("since" ) == 2024
511+ assert row .get ("note" ) == "met at summit"
512+
513+
467514def test_error_handling ():
468515 """Test error handling."""
469516 # Test with invalid path
0 commit comments