A Autonomous Database Graph PGX API Limitations

The following features and APIs of the graph server available in our on-premises offering (Oracle Graph Server and Client) are not available in the managed cloud service when being invoked from within %java-pgx or %python-pgx paragraphs.

Using any of these APIs will result either in errors being returned upon invocation or in not achieving the desired behavior.

Reference information about these on-premises APIs is included in the Oracle Database documentation library. For Oracle Database Release 21c, refer to:

  • Oracle Graph Java API Reference for Property Graph: See Javadoc for more information.
  • Oracle Graph Python API Reference for Property Graph: See Python API Reference for more information.

Manage the server state

All APIs that PGX offers to manage the server state are not available. This includes most of the methods available on the ServerInstance object. The following example lists a few administrative APIs that are not supported:

  • ServerInstance#getServerState()
  • ServerInstance#killSession()
  • ServerInstance#shutdownEngine()
  • ServerInstance.get_server_state()
  • ServerInstance.kill_session()
  • ServerInstance.shutdown_engine()

Instead, use the capabilities available in Graph Studio to manage the execution environment.

Read graphs

APIs to read a graph directly from files or any other input sources are not available. For example:

  • PgxSession#readGraphWithProperties and similar methods
  • PgxSession#readGraphFiles and similar methods
  • PgxSession.read_graph_with_properties() and similar methods
  • PgxSession.read_graph_files() and similar methods

Instead, import the data you want to analyze as a graph into the Autonomous Database using any of the available data import capabilities such as DBMS_CLOUD, SQL Developer Web, or Oracle Data Integrator. After the data is in the Autonomous Database, use Graph Studio to convert the data into a graph or import it as a graph. Only graphs managed and loaded into memory by Graph Studio can be accessed using PGX APIs.

Grant In-memory Graph Permissions to Other Users

APIs to grant permissions on in-memory graphs to other users are not available For example:

  • PgxGraph#grantPermission() and similar methods
  • PgxGraph.grant_permission() and similar methods

Instead, you can share graphs with other users through corresponding GRANT statements in the Autonomous Database. You can also conveniently share graphs with other users using the Share capability available in Graph Studio.

Export graphs

APIs to write in-memory graphs to the local file system are not available:

PgxGraph#store()
PgxGraph.store()

User defined functions (UDFs)

The ability to define and invoke UDFs is not available.

Changing the execution environment

Modifying the execution environment of the current session as shown in the following example is not supported.

PgxSession#getExecutionEnvironment()
PgxSession.get_execution_environment()

Other APIs

Any Java APIs from outside the oracle.pgx.* package are not available. This includes (but might not be limited to) all the APIs of the following packages:

  • oracle.pg.common
  • oracle.pg.rdbms
  • oracle.pg.rdbms.pgql
  • oracle.pg.hbase
  • oracle.pg.nosql
  • oracle.pg.text