OPG4Py Pgql
- opg4py.graph_server.GraphServer
Wrapper class for oracle.pg.rdbms.GraphServer
- opg4py.graph_server.generate_token(base_url, username, password)
Generates a new authentication token.
- Parameters
base_url – the base URL in the format host [ : port][ /path] of the remote graph server.
username – the Database username to use for authentication.
password – the Database password to use for authentication.
- Returns
the newly generated authentication token
- opg4py.graph_server.get_embedded_instance()
Connects to an embedded graph server. An embedded graph server runs inside the client JVM.
- Returns
a handle to the embedded graph server
- opg4py.graph_server.get_instance(base_url, username, password, *, kerberos_ticket_path=None)
Connects to a remote graph server.
- Parameters
base_url (str) – the base URL in the format host [ : port][ /path] of the remote graph server. If base_url is None, the default will be used which points to embedded graph server instance.
username (str) – the Database username to use for authentication.
password (str) – the Database password to use for authentication.
kerberos_ticket_path (Optional[str]) – the kerberos ticket to be used for authentication.
- Returns
a handle to the remote graph server
- Return type
- opg4py.graph_server.reauthenticate(instance, username, password)
Re-authenticates an existing ServerInstance object with a remote graph server.
- Parameters
instance – the PGX instance on which the session is going to reauthenticate.
username – the Database username to use for authentication.
password – the Database password to use for authentication.
- Returns
the newly generated authentication token
Python API for the PGQL-on-RDBMS client.
- class opg4py.pgql.PgqlConnection(java_pgql_connection)
Bases:
object
Wrapper class for oracle.pg.rdbms.pgql.PgqlConnection.
- clear_graph_metadata_cache()
Clear the cache that stores graph metadata.
- clear_translation_cache()
Clear the cache that stores translations.
- close()
Free the resources of the internal JDBC connection.
- create_statement()
Creates a new PgqlStatement object, which is used to execute PGQL queries.
- Returns
a new PgqlStatement object that can be used to perform PGQL queries
- disable_graph_metadata_cache()
Disable the cache that stores graph metadata.
- disable_translation_cache()
Disable the cache that stores translations.
- enable_graph_metadata_cache()
Enable the cache that stores graph metadata.
- enable_translation_cache()
Enable the cache that stores translations.
- static get_connection(java_sql_connection)
Factory method to get PgqlConnection instance.
- Parameters
java_sql_connection – a JDBC connection
- Returns
a PgqlConnection instance
- get_graph()
Get the graph name on which PGQL queries will be executed for this connection.
- Returns
the graph name for this connection
- get_jdbc_connection()
Get the JDBC connection that is used to execute PGQL queries.
- Returns
the connection
- get_schema()
Get the schema name that will be used to execute PGQL queries with this connection.
If the schema has not been set, the schema from JDBC connection is returned.
- Returns
the schema set for this connection
- Throws:
PgqlToSqlException - if a database access error occurs or this method is called on a closed connection
- prepare_statement(pgql, timeout=0, parallel=0, dynamicSampling=2, maxResults=-1, matchOptions=None, options=None)
Creates a new PgqlPreparedStatement object, which represents a pre-compiled PGQL statement.
- Parameters
pgql – the PGQL query to compile
timeout – the number of seconds for query execution to finish
parallel – the degree of parallelism to use for query and modify execution
dynamicSampling – the value for dynamic sampling
maxResults – the maximum number of rows returned
matchOptions – additional options used to influence query translation and execution
options – additional options used to influence modify translation and execution
- Returns
a PgqlPreparedStatement object that can be used to efficiently execute the same query multiple times
- set_graph(graph)
Sets the graph name on which PGQL queries will be executed for this connection.
- Parameters
graph – the name of the graph
- set_graph_metadata_cache_max_capacity(max_capacity)
Set max capacity value for the graph metadata cache
- Parameters
max_capacity – value for max capacity
- set_schema(schema)
Sets the schema name that will be used to execute PGQL queries with this connection.
- Parameters
schema – the name of the schema
- set_translation_cache_max_capacity(max_capacity)
Set max capacity value for the translation cache
- Parameters
max_capacity – value for max capacity
- class opg4py.pgql.PgqlPreparedStatement(java_pgql_prepared_statement)
Bases:
PgqlStatement
Wrapper class for oracle.pg.rdbms.pgql.PgqlPreparedStatement.
- execute(parallel=0, dynamic_sampling=2, match_options=None, options=None)
Executes a PGQL Query, Modify or Create/Drop operation on this instance’s property graph.
Supported query options (matchOptions) are the same as those for executeQuery.
Supported modify options are:
STREAMING=T Use result sets instead of temporary tables to perform the update.
AUTO_COMMIT=F Do not commit after performing the modify operation.
DELETE_CASCADE=F Do not delete incoming/outgoing edges when deleting a vertex.
- Parameters
parallel – the degree of parallelism to use for query and update execution
dynamic_sampling – the value for dynamic sampling
match_options – additional options used to influence query translation and execution
options – additional options used to influence modify translation and execution
- Returns
True if the provided PGQL query is a select, false for other statements
- Throws:
PgqlToSqlException - if a server-side error occurs during translation or SQL execution oracle.pgql.lang.PgqlException - if a server-side error occurs or method is called on a closed Statement
- execute_query(timeout=0, parallel=0, dynamic_sampling=2, max_results=-1, options=None)
Translates this PGQL statement into a SQL statement and executes it against this instance’s property graph.
Supported query options are:
USE_RW=F Use CONNECT BY instead of recursive WITH for unbounded path traversals
MAX_PATH_LEN=n Traverse at most n hops when evaluating unbounded path traversals
EDGE_SET_PARTIAL=T Fetch properties for each start and end vertex found when reading edges from the query result
- Parameters
timeout – the number of seconds for query execution to finish
parallel – the degree of parallelism to use for query execution
dynamic_sampling – the value for dynamic sampling
max_results – the maximum number of rows returned
options – additional options used to influence query translation and execution
- Returns
a PgqlResultSet object with the result of the provided PGQL query
- Throws:
PgqlToSqlException - if a server-side error occurs during translation or SQL execution oracle.pgql.lang.PgqlException - if a server-side error occurs or method is called on a closed Statement
- set_array(param_index, value)
Sets the designated parameter to the given Java List value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_boolean(param_index, value)
Sets the designated parameter to the given Java boolean value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_double(param_index, value)
Sets the designated parameter to the given Java double value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_float(param_index, value)
Sets the designated parameter to the given Java float value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_int(param_index, value)
Sets the designated parameter to the given Java int value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_long(param_index, value)
Sets the designated parameter to the given Java long value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_string(param_index, value)
Sets the designated parameter to the given Java String value.
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- set_timestamp(param_index, value)
Sets the designated parameter to the given Java Timestamp value.
Timestamp values are assumed to be in Coordinated Universal Time (UTC).
- Parameters
param_index – the first parameter is 1, the second is 2, …
- Param
value: the parameter value
- class opg4py.pgql.PgqlResultSet(java_pgql_result_set)
Bases:
object
Wrapper class for oracle.pg.rdbms.pgql.PgqlResultSet.
- absolute(row)
Move the cursor to the given row number in this ResultSet object.
If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is 1, so absolute(1) moves the cursor to the first row.
If the row number is negative, the cursor moves to the given row number with respect to the end of the result set. So absolute(-1) moves the cursor to the last row.
- Parameters
row – Row to move to
- Returns
True if the cursor is moved to a position in the ResultSet object; False if the cursor is moved before the first or after the last row
- Return type
bool
- after_last()
Place the cursor after the last row.
- Return type
None
- before_first()
Set the cursor before the first row.
- Return type
None
- close()
Free resources on the server taken up by this result_set object.
- Return type
None
- fetchall()
Fetch all (remaining) rows of a query result, returning them as a list of tuples. An empty list is returned if no more rows are available.
- Returns
A list of tuples with all (remaining) rows of a query result
- Return type
List[tuple]
- fetchmany(num_rows=1)
Fetch the next set of rows of a query result, returning a list of tuples. An empty list is returned if no more rows are available.
- Returns
A list of tuples with the next set of rows of a query result
- Parameters
num_rows (int) –
- Return type
List[tuple]
- fetchone()
Fetch the next row of a query result set, returning a single tuple or None when no more data is available.
- Returns
A single tuple with the next row of a query result
- Return type
tuple
- first()
Move the cursor to the first row in the result set.
- Returns
True if the cursor points to a valid row; False if the result set does not have any results
- Return type
bool
- get(element)
Get the value of the designated element by element index or name.
- Parameters
element (Union[str, int]) – Integer or string representing index or name
- Returns
Content of cell
- Return type
Any
- get_boolean(element)
Get the value of the designated element by element index or name as a Boolean.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
Boolean
- Return type
Optional[bool]
- get_date(element)
Get the value of the designated element by element index or name as a datetime Date.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
datetime.date
- Return type
Optional[date]
- get_float(element)
Get the value of the designated element by element index or name as a Float.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
Float
- Return type
Optional[float]
- get_integer(element)
Get the value of the designated element by element index or name as an Integer.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
Integer
- Return type
Optional[int]
- get_list(element)
Get the value of the designated element by element index or name as a List.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
List
- Return type
Optional[List[str]]
- get_metadata()
Get the ResultSet MetaData.
- Returns
PgqlResultSetMetaData
- Return type
- get_row(row)
Get row from result_set.
- Parameters
row – Row index
- Return type
Any
- get_slice(start, stop, step=1)
Get slice from result_set.
- Parameters
start (int) – Start index
stop (int) – Stop index
step (int) – Step size
- Return type
List[list]
- get_string(element)
Get the value of the designated element by element index or name as a String.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
String
- Return type
Optional[str]
- get_time(element)
Get the value of the designated element by element index or name as a datetime Time.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
datetime.time
- Return type
Optional[time]
- get_time_with_timezone(element)
Get the value of the designated element by element index or name as a datetime Time with timezone.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
datetime.time
- Return type
Optional[time]
- get_timestamp(element)
Get the value of the designated element by element index or name as a Datetime.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
datetime.datetime
- Return type
Optional[datetime]
- get_timestamp_with_timezone(element)
Get the value of the designated element by element index or name as a Datetime with timezone.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
datetime.datetime
- Return type
Optional[datetime]
- get_value_type(element)
Get the type of value of the designated element by element index or name as an Integer.
- Parameters
element – Integer or String representing index or name
- Returns
Integer
- Return type
int
- get_vertex_labels(element)
Get the value of the designated element by element index or name as a list of labels.
- Parameters
element (Union[str, int]) – Integer or String representing index or name
- Returns
list
- Return type
List[str]
- last()
Move the cursor to the last row in the result set.
- Returns
True if the cursor points to a valid row; False if the result set does not have any results
- Return type
bool
- next()
Move the cursor forward one row from its current position.
- Returns
True if the cursor points to a valid row; False if the new cursor is positioned after the last row
- Return type
bool
- previous()
Move the cursor to the previous row from its current position.
- Returns
True if the cursor points to a valid row; False if the new cursor is positioned before the first row
- Return type
bool
- print(file=None, num_results=1000, start=0)
Print the result set.
- Parameters
file (Optional[TextIO]) – File to which results are printed (default is
sys.stdout
)num_results (int) – Number of results to be printed
start (int) – Index of the first result to be printed
- Return type
None
- relative(rows)
Move the cursor a relative number of row with respect to the current position.
Note a negative number will move the cursor backwards.
Note: Calling relative(1) is equal to next() and relative(-1) is equal to previous. Calling relative(0) is possible when the cursor is positioned at a row, not when it is positioned before the first or after the last row. However, relative(0) will not update the position of the cursor.
- Parameters
rows – Relative number of rows to move from current position
- Returns
True if the cursor is moved to a position in the ResultSet object; False if the cursor is moved before the first or after the last row
- Return type
bool
- to_pandas()
Convert to pandas DataFrame (this method requires pandas).
- Returns
PgqlResultSet as a Pandas Dataframe
- class opg4py.pgql.PgqlResultSetMetaData(java_pgql_result_set_metadata)
Bases:
object
Wrapper class for oracle.pgql.lang.ResultSetMetaData.
- get_column_count()
Get the total number of columns in the query result.
- Returns
the total number of columns
- get_column_name(column)
Get the name of the column at the given offset starting from 1.
- Parameters
column – the offset of the column, numbering starts from 1
- Returns
the column name
- class opg4py.pgql.PgqlSqlQueryTrans(java_pgql_sql_query_trans)
Bases:
PgqlSqlTrans
Wrapper class for oracle.pg.rdbms.pgql.PgqlSqlQueryTrans.
- get_sql_bv_list()
Get a list of Bind Values to be used with this SQL translation.
The first element in the list should be set at position 1 in a JDBC PreparedStatement created from this SQL translation.
- Returns
the list of bind values for this query translation
- get_sql_translation()
Get the SQL string for the PGQL to SQL translation.
- Returns
the SQL query string
- class opg4py.pgql.PgqlSqlTrans(java_pgql_sql_trans)
Bases:
object
Wrapper class for oracle.pg.rdbms.pgql.PgqlSqlTrans.
- get_translation_type()
Get the type for the PGQL to SQL translation.
- Returns
a PgqlSqlTrans.TranslationType object with the SQL translation type
- class opg4py.pgql.PgqlStatement(java_pgql_statement)
Bases:
object
Wrapper class for oracle.pg.rdbms.pgql.PgqlStatement.
- cancel()
Allows to cancel currently running execute operation.
Note that cancel does not rollback already executed modifications.
Throws: oracle.pgql.lang.PgqlException - When an error occurs while canceling current operation.
- close()
Releases this PgqlStatment’s database and JDBC resources.
Closing this PgqlStatement will close all PgqlResultSets that were created from it.
Throws: oracle.pgql.lang.PgqlException
- execute(pgql, parallel=0, dynamic_sampling=2, match_options=None, options=None)
Executes a PGQL Query, Modify or Create/Drop operation on this instance’s property graph.
Supported query options (matchOptions) are the same as those for executeQuery.
Supported modify options are:
STREAMING=T Use result sets instead of temporary tables to perform the update.
AUTO_COMMIT=F Do not commit after performing the modify operation.
DELETE_CASCADE=F Do not delete incoming/outgoing edges when deleting a vertex.
- Parameters
pgql – the PGQL modify to execute
parallel – the degree of parallelism to use for query and update execution
dynamic_sampling – the value for dynamic sampling
match_options – additional options used to influence query translation and execution
options – additional options used to influence modify translation and execution
- Returns
True if the provided PGQL query is a select, false for other statements
- Throws:
PgqlToSqlException - if a server-side error occurs during translation or SQL execution oracle.pgql.lang.PgqlException - if a server-side error occurs or method is called on a closed Statement
- execute_query(pgql, timeout=0, parallel=0, dynamic_sampling=2, max_results=-1, options=None)
Translates this PGQL statement into a SQL statement and executes it against this instance’s property graph.
Supported query options are:
USE_RW=F Use CONNECT BY instead of recursive WITH for unbounded path traversals
MAX_PATH_LEN=n Traverse at most n hops when evaluating unbounded path traversals
EDGE_SET_PARTIAL=T Fetch properties for each start and end vertex found when reading edges from the query result
- Parameters
pgql – the PGQL query to execute
timeout – the number of seconds for query execution to finish
parallel – the degree of parallelism to use for query execution
dynamic_sampling – the value for dynamic sampling
max_results – the maximum number of rows returned
options – additional options used to influence query translation and execution
- Returns
a PgqlResultSet object with the result of the provided PGQL query
- Throws:
PgqlToSqlException - if a server-side error occurs during translation or SQL execution oracle.pgql.lang.PgqlException - if a server-side error occurs or method is called on a closed Statement
- get_batch_size()
Get the number of commands that should be batched when executing updates.
- Returns
the update batch size
- get_fetch_size()
Get the number of rows that should be fetched from the database when more rows are needed for a query result.
- Returns
the query fetch size
- get_modify_count()
Get the number of rows that were modified by last execute operation.
- Returns
The number of rows modified
- get_result_set()
Retrieve the current result as a PgqlResultSet object.
This method should be called only once per result.
- Returns
Current result as a ResultSet object or null if the query is not a SELECT query
- set_batch_size(batch_size)
Set the number of commands that should be batched when executing updates.
- Parameters
batch_size – the update batch size
- set_fetch_size(fetch_size)
Set the number of rows that should be fetched from the database when more rows are needed for a query result.
- Parameters
fetch_size – the query fetch size
- translate_query(pgql, parallel=0, dynamic_sampling=2, max_results=-1, options=None)
Translates this instance’s PGQL statement into a SQL statement.
Supported query options are:
USE_RW=F Use CONNECT BY instead of recursive WITH for unbounded path traversals
MAX_PATH_LEN=n Traverse at most n hops when evaluating unbounded path traversals
EDGE_SET_PARTIAL=T Fetch properties for each start and end vertex found when reading edges from the query result
- Parameters
pgql – the PGQL query to translate
parallel – the degree of parallelism to use for query execution
dynamic_sampling – the value for dynamic sampling
max_results – the maximum number of rows returned
options – additional options used to influence query translation
- Returns
a PgqlSqlTrans object with the SQL translation and column metadata for the provided PGQL query
- Throws:
PgqlToSqlException - if a server-side error occurs during translation oracle.pgql.lang.PgqlException - if a server-side error occurs or method is called on a closed Statement
- translate_statement(pgql, parallel=0, dynamic_sampling=2, max_results=-1, match_options=None, options=None)
Translates the given PGQL statement into a series of SQL statements.
- Parameters
pgql – the PGQL statement to translate
parallel – the degree of parallelism to use for query execution
dynamic_sampling – the value for dynamic sampling
max_results – the maximum number of rows returned
match_options – additional options used to influence query translation and execution
options – additional options used to influence DDL/DML translation and execution
- Returns
the SQL statements and metadata necessary to execute the provided SQL statement
- Throws:
PgqlToSqlException - if a server-side error occurs during translation oracle.pgql.lang.PgqlException - if a server-side error occurs or method is called on a closed Statement
- opg4py.pgql.get_connection(usr, pwd, jdbc_url)
Get a DB connection.
- Parameters
usr – the DB user
pwd – the DB password
jdbc_url – the DB jdbc url
- Returns
A PgqlConnection