iris-vector-graph 1.55.2__tar.gz → 1.55.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/PKG-INFO +9 -1
  2. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/README.md +8 -0
  3. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/ast.py +1 -0
  4. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/lexer.py +8 -1
  5. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/parser.py +2 -0
  6. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/translator.py +17 -1
  7. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/engine.py +31 -7
  8. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/pyproject.toml +1 -1
  9. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/.gitignore +0 -0
  10. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/LICENSE +0 -0
  11. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/demo_biomedical.py +0 -0
  12. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/demo_fraud_detection.py +0 -0
  13. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/demo_fraud_detection_sql.py +0 -0
  14. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/demo_utils.py +0 -0
  15. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/demo_working_system.py +0 -0
  16. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/__init__.py +0 -0
  17. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical/__init__.py +0 -0
  18. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical/loaders.py +0 -0
  19. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical/resolver.py +0 -0
  20. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical/types.py +0 -0
  21. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical_legacy/__init__.py +0 -0
  22. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  23. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  24. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  25. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/fraud/__init__.py +0 -0
  26. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/fraud/loaders.py +0 -0
  27. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/fraud/resolver.py +0 -0
  28. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/domains/fraud/types.py +0 -0
  29. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/graphQL.http +0 -0
  30. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/hybrid_vector_graph_query.cypher +0 -0
  31. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/examples/rest.http +0 -0
  32. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  33. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  34. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
  35. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  36. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  37. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  38. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Edge.cls +0 -0
  39. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
  40. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
  41. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
  42. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Loader.cls +0 -0
  43. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  44. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  45. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  46. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Meta.cls +0 -0
  47. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  48. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  49. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  50. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Service.cls +0 -0
  51. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  52. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  53. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  54. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/Traversal.cls +0 -0
  55. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  56. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/PageRankEmbedded.cls +0 -0
  57. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/User.Exec.cls +0 -0
  58. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  59. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/__init__.py +0 -0
  60. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/bolt_server.py +0 -0
  61. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/bulk_loader.py +0 -0
  62. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/capabilities.py +0 -0
  63. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/__init__.py +0 -0
  64. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  65. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  66. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/cypher_api.py +0 -0
  67. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/embedded.py +0 -0
  68. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/fusion.py +0 -0
  69. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/gql/__init__.py +0 -0
  70. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/gql/constants.py +0 -0
  71. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/gql/engine.py +0 -0
  72. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/gql/pooling.py +0 -0
  73. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/gql/resolvers.py +0 -0
  74. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/gql/schema.py +0 -0
  75. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/models.py +0 -0
  76. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/operators.py +0 -0
  77. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/py.typed +0 -0
  78. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/schema.py +0 -0
  79. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/security.py +0 -0
  80. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/text_search.py +0 -0
  81. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/utils.py +0 -0
  82. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/iris_vector_graph/vector_utils.py +0 -0
  83. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/fhir_bridges.sql +0 -0
  84. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/fraud_sample_data.sql +0 -0
  85. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/globals_schema.sql +0 -0
  86. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/graph_path_globals.sql +0 -0
  87. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/graph_walk_tvf.sql +0 -0
  88. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/migrations/000_base_schema_iris.sql +0 -0
  89. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/migrations/001_add_nodepk_table.sql +0 -0
  90. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/migrations/001_rollback_nodepk.sql +0 -0
  91. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/migrations/002_add_fk_constraints.sql +0 -0
  92. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/operators.sql +0 -0
  93. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/operators_fixed.sql +0 -0
  94. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/procedures/kg_PageRank.sql +0 -0
  95. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/rdf_reifications.sql +0 -0
  96. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/sql/schema.sql +0 -0
  97. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/TESTING.md +0 -0
  98. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmark_parser.py +0 -0
  99. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/benchmark_neo4j.py +0 -0
  100. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/bfs_benchmark.py +0 -0
  101. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/establish_baseline.py +0 -0
  102. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/graph_gen.py +0 -0
  103. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/iris_baseline_run.py +0 -0
  104. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/iris_os_run.py +0 -0
  105. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/load_neo4j.py +0 -0
  106. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/benchmarks/synthetic_baseline.csv +0 -0
  107. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/conftest.py +0 -0
  108. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/contract/__init__.py +0 -0
  109. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/contract/test_cypher_api.py +0 -0
  110. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/contract/test_cypher_api_errors.py +0 -0
  111. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/contract/test_graphql_queries.py +0 -0
  112. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/contract/test_graphql_schema.py +0 -0
  113. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/contract/test_ppr_api.py +0 -0
  114. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/curl_suite.sh +0 -0
  115. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/__init__.py +0 -0
  116. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/conftest.py +0 -0
  117. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_biomedical_demo.py +0 -0
  118. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_biomedical_ui.py +0 -0
  119. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  120. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  121. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_cypher_vector_search.py +0 -0
  122. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  123. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_fraud_demo.py +0 -0
  124. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_fraud_ui.py +0 -0
  125. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_gql_autogen_startup.py +0 -0
  126. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  127. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_gql_node_queries.py +0 -0
  128. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_gql_semantic_search.py +0 -0
  129. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_gql_traversal.py +0 -0
  130. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  131. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_hla_kg_e2e.py +0 -0
  132. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  133. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_named_paths_e2e.py +0 -0
  134. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_nkg_index_e2e.py +0 -0
  135. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  136. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_plaid_search_e2e.py +0 -0
  137. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  138. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  139. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_procedure_installation.py +0 -0
  140. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_reification_e2e.py +0 -0
  141. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  142. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_subgraph_e2e.py +0 -0
  143. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_subquery_call_e2e.py +0 -0
  144. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/e2e/test_vecindex_e2e.py +0 -0
  145. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/__init__.py +0 -0
  146. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/conftest.py +0 -0
  147. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/gql/__init__.py +0 -0
  148. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/gql/test_graphql_mutations.py +0 -0
  149. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  150. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/gql/test_graphql_queries.py +0 -0
  151. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  152. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_bidirectional_ppr.py +0 -0
  153. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cls_layer.py +0 -0
  154. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_advanced.py +0 -0
  155. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_enhancements.py +0 -0
  156. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_multi_type.py +0 -0
  157. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_rd.py +0 -0
  158. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_rel_vars.py +0 -0
  159. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_single_type.py +0 -0
  160. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_untyped.py +0 -0
  161. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_cypher_vector_search.py +0 -0
  162. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_embeddings_api.py +0 -0
  163. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_fastapi_graphql.py +0 -0
  164. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_fhir_bridges_integration.py +0 -0
  165. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_named_paths_integration.py +0 -0
  166. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  167. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_nodepk_constraints.py +0 -0
  168. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  169. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_nodepk_migration.py +0 -0
  170. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_nodepk_performance.py +0 -0
  171. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_nodepk_production_scale.py +0 -0
  172. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_objectscript_classes.py +0 -0
  173. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  174. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_reification_integration.py +0 -0
  175. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_schema_migration.py +0 -0
  176. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_stored_procedure_install.py +0 -0
  177. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/integration/test_subquery_call_integration.py +0 -0
  178. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/performance/conftest.py +0 -0
  179. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/performance/scale_benchmark.py +0 -0
  180. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/performance/test_ppr_stress.py +0 -0
  181. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/performance/test_stress_v1_5.py +0 -0
  182. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/run_all_tests.py +0 -0
  183. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_iris_rest_api.py +0 -0
  184. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_networkx_loader.py +0 -0
  185. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_performance_benchmarks.py +0 -0
  186. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_pyops_vector_conversion.py +0 -0
  187. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_python_operators.py +0 -0
  188. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_python_sdk.py +0 -0
  189. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_schema_validation.py +0 -0
  190. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_sql_queries.py +0 -0
  191. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/python/test_vector_functions.py +0 -0
  192. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/cypher/__init__.py +0 -0
  193. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/cypher/test_lexer.py +0 -0
  194. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  195. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/cypher/test_parser.py +0 -0
  196. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/cypher/test_parser_advanced.py +0 -0
  197. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_batch_mutations.py +0 -0
  198. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_bm25_index.py +0 -0
  199. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_bolt_server.py +0 -0
  200. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cls_deployment.py +0 -0
  201. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_case_when.py +0 -0
  202. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_functions.py +0 -0
  203. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_parser.py +0 -0
  204. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_posos_bugs.py +0 -0
  205. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_procedures.py +0 -0
  206. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_translator.py +0 -0
  207. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_union_exists.py +0 -0
  208. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_var_length.py +0 -0
  209. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_cypher_vector_search.py +0 -0
  210. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_edgeprop_ndjson.py +0 -0
  211. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_embedded.py +0 -0
  212. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_engine_dimension_fix.py +0 -0
  213. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_engine_embeddings.py +0 -0
  214. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_fhir_bridges.py +0 -0
  215. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_get_nodes.py +0 -0
  216. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_graph_kernels.py +0 -0
  217. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_graphql_dataloader.py +0 -0
  218. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_ingest_formats.py +0 -0
  219. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_ivf_index.py +0 -0
  220. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_named_graphs.py +0 -0
  221. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_named_paths.py +0 -0
  222. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_operators_wiring.py +0 -0
  223. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_plaid_search.py +0 -0
  224. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  225. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_reification.py +0 -0
  226. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_schema_init.py +0 -0
  227. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_schema_procedures.py +0 -0
  228. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_shortest_path.py +0 -0
  229. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_sql_splitter.py +0 -0
  230. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_sql_table_bridge.py +0 -0
  231. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_subgraph.py +0 -0
  232. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_subquery_call.py +0 -0
  233. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_temporal_cypher.py +0 -0
  234. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_temporal_edges.py +0 -0
  235. {iris_vector_graph-1.55.2 → iris_vector_graph-1.55.3}/tests/unit/test_unified_edge_store.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-graph
3
- Version: 1.55.2
3
+ Version: 1.55.3
4
4
  Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
5
5
  Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
6
6
  Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
@@ -556,6 +556,14 @@ anchors = engine.get_kg_anchors(icd_codes=["J18.0", "E11.9"])
556
556
 
557
557
  ## Changelog
558
558
 
559
+ ### v1.55.3 (2026-04-19)
560
+ - fix: Bug 6 final — SQLCODE -400 on rdf_edges CREATE INDEX now debug-level (ALTER TABLE fallback handles it)
561
+ - fix: type(r) now returns edge predicate column (e.p) not node_id
562
+ - fix: id(n) now returns actual node_id column
563
+ - feat: =~ regex match operator — translates to IRIS %MATCHES
564
+ - fix: N-Quads import captures graph URI from quad's 4th element as graph_id
565
+
566
+
559
567
  ### v1.55.2 (2026-04-19)
560
568
  - fix: Bug 6 (final) — SQLCODE -400 on rdf_edges index creation now falls back to ALTER TABLE ADD INDEX; all standard indexes created even when Graph.KG.Edge class was never compiled
561
569
 
@@ -484,6 +484,14 @@ anchors = engine.get_kg_anchors(icd_codes=["J18.0", "E11.9"])
484
484
 
485
485
  ## Changelog
486
486
 
487
+ ### v1.55.3 (2026-04-19)
488
+ - fix: Bug 6 final — SQLCODE -400 on rdf_edges CREATE INDEX now debug-level (ALTER TABLE fallback handles it)
489
+ - fix: type(r) now returns edge predicate column (e.p) not node_id
490
+ - fix: id(n) now returns actual node_id column
491
+ - feat: =~ regex match operator — translates to IRIS %MATCHES
492
+ - fix: N-Quads import captures graph URI from quad's 4th element as graph_id
493
+
494
+
487
495
  ### v1.55.2 (2026-04-19)
488
496
  - fix: Bug 6 (final) — SQLCODE -400 on rdf_edges index creation now falls back to ALTER TABLE ADD INDEX; all standard indexes created even when Graph.KG.Edge class was never compiled
489
497
 
@@ -42,6 +42,7 @@ class BooleanOperator(Enum):
42
42
  STARTS_WITH = "STARTS WITH"
43
43
  ENDS_WITH = "ENDS WITH"
44
44
  CONTAINS = "CONTAINS"
45
+ REGEX_MATCH = "=~"
45
46
 
46
47
 
47
48
  # ==============================================================================
@@ -77,6 +77,8 @@ class TokenType(enum.Enum):
77
77
  MINUS = "-"
78
78
  STAR = "*"
79
79
  SLASH = "/"
80
+ TILDE = "~"
81
+ REGEX_MATCH = "=~"
80
82
  PERCENT = "%"
81
83
  CARET = "^"
82
84
  FOREACH = "FOREACH"
@@ -148,7 +150,12 @@ class Lexer:
148
150
  case "^":
149
151
  self._add_token(TokenType.CARET, char)
150
152
  case "=":
151
- self._add_token(TokenType.EQUALS, char)
153
+ if self._peek() == "~":
154
+ self.cursor += 1
155
+ self.column += 1
156
+ self._add_token(TokenType.REGEX_MATCH, "=~")
157
+ else:
158
+ self._add_token(TokenType.EQUALS, char)
152
159
  case "<":
153
160
  if self._peek() == ">":
154
161
  self.cursor += 1
@@ -838,6 +838,8 @@ class Parser:
838
838
  already_consumed = True
839
839
  case TokenType.CONTAINS:
840
840
  op = ast.BooleanOperator.CONTAINS
841
+ case TokenType.REGEX_MATCH:
842
+ op = ast.BooleanOperator.REGEX_MATCH
841
843
  case TokenType.IN:
842
844
  op = ast.BooleanOperator.IN
843
845
  case TokenType.IS:
@@ -1979,6 +1979,8 @@ def translate_boolean_expression(expr, context) -> str:
1979
1979
  return f"{left} LIKE ('%' || {right})"
1980
1980
  if op == ast.BooleanOperator.CONTAINS:
1981
1981
  return f"{left} LIKE ('%' || {right} || '%')"
1982
+ if op == ast.BooleanOperator.REGEX_MATCH:
1983
+ return f"{left} %MATCHES {right}"
1982
1984
  if op == ast.BooleanOperator.IN:
1983
1985
  return f"{left} IN {right}"
1984
1986
  raise ValueError(f"Unsupported operator: {op}")
@@ -2310,8 +2312,22 @@ def translate_expression(expr, context, segment="select") -> str:
2310
2312
  fn, args_exprs = expr.function_name.lower(), expr.arguments
2311
2313
  args = [translate_expression(a, context, segment=segment) for a in args_exprs]
2312
2314
 
2313
- if fn in ("id", "type"):
2315
+ if fn == "type":
2316
+ if args_exprs and isinstance(args_exprs[0], ast.Variable):
2317
+ var_name = args_exprs[0].name
2318
+ alias = context.variable_aliases.get(var_name, "")
2319
+ if alias:
2320
+ return f"{alias}.p"
2314
2321
  return args[0] if args else "NULL"
2322
+
2323
+ if fn == "id":
2324
+ if args_exprs and isinstance(args_exprs[0], ast.Variable):
2325
+ var_name = args_exprs[0].name
2326
+ alias = context.variable_aliases.get(var_name, "")
2327
+ if alias:
2328
+ return f"{alias}.node_id"
2329
+ return args[0] if args else "NULL"
2330
+
2315
2331
  if fn == "labels":
2316
2332
  return labels_subquery(args[0] if args else "NULL")
2317
2333
  if fn == "properties":
@@ -469,10 +469,28 @@ class IRISGraphEngine:
469
469
  and "already has a" not in err
470
470
  and "already has index" not in err
471
471
  ):
472
- if any(
473
- p in err or p in stmt.lower() for p in _OPTIONAL_DDL_PATTERNS
472
+ import re as _re_ddl
473
+
474
+ _sqlcode = _re_ddl.search(
475
+ r"sqlcode.*?<(-?\d+)>", err
476
+ ) or _re_ddl.search(r"<(-\d+)>", err)
477
+ _sqlcode_val = _sqlcode.group(1) if _sqlcode else ""
478
+ is_index_on_rdf_edges = (
479
+ _sqlcode_val == "-400"
480
+ and "rdf_edges" in stmt.lower()
481
+ and "create index" in stmt.lower()
482
+ )
483
+ if (
484
+ any(
485
+ p in err or p in stmt.lower()
486
+ for p in _OPTIONAL_DDL_PATTERNS
487
+ )
488
+ or is_index_on_rdf_edges
474
489
  ):
475
- logger.debug("Optional DDL skipped: %s", stmt[:80])
490
+ logger.debug(
491
+ "Optional DDL skipped (will retry via ALTER TABLE): %s",
492
+ stmt[:80],
493
+ )
476
494
  else:
477
495
  logger.warning(
478
496
  "Schema setup warning: %s | Statement: %.100s", e, stmt
@@ -2203,12 +2221,12 @@ class IRISGraphEngine:
2203
2221
  for nid in batch_nodes:
2204
2222
  if _ensure_node(nid):
2205
2223
  nodes_inserted += 1
2206
- for s, p, o in batch_edges:
2224
+ for s, p, o, edge_graph in batch_edges:
2207
2225
  try:
2208
- if graph:
2226
+ if edge_graph:
2209
2227
  cursor.execute(
2210
2228
  f"INSERT INTO {_table('rdf_edges')} (s, p, o_id, graph_id) SELECT ?, ?, ?, ? WHERE NOT EXISTS (SELECT 1 FROM {_table('rdf_edges')} WHERE s = ? AND p = ? AND o_id = ? AND graph_id = ?)",
2211
- [s, p, o, graph, s, p, o, graph],
2229
+ [s, p, o, edge_graph, s, p, o, edge_graph],
2212
2230
  )
2213
2231
  else:
2214
2232
  cursor.execute(
@@ -2243,6 +2261,12 @@ class IRISGraphEngine:
2243
2261
  p_str = _node_id(p)
2244
2262
  batch_nodes.add(s_id)
2245
2263
 
2264
+ effective_graph = graph
2265
+ if graph_ctx is not None:
2266
+ ctx_str = str(graph_ctx)
2267
+ if ctx_str and ctx_str not in ("", "DEFAULT", "urn:x-rdflib:default"):
2268
+ effective_graph = ctx_str
2269
+
2246
2270
  if isinstance(o, RDFLiteral):
2247
2271
  key = p_str.rsplit("/", 1)[-1].rsplit("#", 1)[-1][:128]
2248
2272
  val = str(o)
@@ -2256,7 +2280,7 @@ class IRISGraphEngine:
2256
2280
  elif isinstance(o, (URIRef, BNode)):
2257
2281
  o_id = _node_id(o)
2258
2282
  batch_nodes.add(o_id)
2259
- batch_edges.append((s_id, p_str, o_id))
2283
+ batch_edges.append((s_id, p_str, o_id, effective_graph))
2260
2284
  else:
2261
2285
  batch_props.append((s_id, p_str[:128], str(o)[:64000]))
2262
2286
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "iris-vector-graph"
7
- version = "1.55.2"
7
+ version = "1.55.3"
8
8
  description = "Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs"
9
9
  readme = "README.md"
10
10
  license = "MIT"