public class ModifyGraphRequest extends Object implements org.apache.avro.generic.IndexedRecord
GPUdb.modifyGraph
.
Update an existing graph network using given nodes, edges, weights, restrictions, and options.
IMPORTANT: It's highly recommended that you review the Graphs & Solvers concepts documentation, and Graph REST Tutorial before using this endpoint.
Modifier and Type | Class and Description |
---|---|
static class |
ModifyGraphRequest.Options
A set of string constants for the
ModifyGraphRequest parameter
options . |
Constructor and Description |
---|
ModifyGraphRequest()
Constructs a ModifyGraphRequest object with default parameters.
|
ModifyGraphRequest(String graphName,
List<String> nodes,
List<String> edges,
List<String> weights,
List<String> restrictions,
Map<String,String> options)
Constructs a ModifyGraphRequest object with the specified parameters.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj) |
Object |
get(int index)
This method supports the Avro framework and is not intended to be called
directly by the user.
|
static org.apache.avro.Schema |
getClassSchema()
This method supports the Avro framework and is not intended to be called
directly by the user.
|
List<String> |
getEdges()
|
String |
getGraphName()
Name of the graph resource to modify.
|
List<String> |
getNodes()
|
Map<String,String> |
getOptions()
Optional parameters.
|
List<String> |
getRestrictions()
Restrictions with which to update existing
restrictions in graph specified by graphName . |
org.apache.avro.Schema |
getSchema()
This method supports the Avro framework and is not intended to be called
directly by the user.
|
List<String> |
getWeights()
|
int |
hashCode() |
void |
put(int index,
Object value)
This method supports the Avro framework and is not intended to be called
directly by the user.
|
ModifyGraphRequest |
setEdges(List<String> edges)
|
ModifyGraphRequest |
setGraphName(String graphName)
Name of the graph resource to modify.
|
ModifyGraphRequest |
setNodes(List<String> nodes)
|
ModifyGraphRequest |
setOptions(Map<String,String> options)
Optional parameters.
|
ModifyGraphRequest |
setRestrictions(List<String> restrictions)
Restrictions with which to update existing
restrictions in graph specified by graphName . |
ModifyGraphRequest |
setWeights(List<String> weights)
|
String |
toString() |
public ModifyGraphRequest()
public ModifyGraphRequest(String graphName, List<String> nodes, List<String> edges, List<String> weights, List<String> restrictions, Map<String,String> options)
graphName
- Name of the graph resource to modify.nodes
- Nodes with which to update existing nodes
in graph
specified by graphName
. Review Nodes for more information. Nodes must
be specified using identifiers; identifiers are grouped as
combinations. Identifiers can be used
with existing column names, e.g., 'table.column AS
NODE_ID', expressions, e.g., 'ST_MAKEPOINT(column1,
column2) AS NODE_WKTPOINT', or raw values, e.g., '{9, 10,
11} AS NODE_ID'. If using raw values in an identifier
combination, the number of values specified must match
across the combination. Identifier combination(s) do not
have to match the method used to create the graph, e.g.,
if column names were specified to create the graph,
expressions or raw values could also be used to modify the
graph.edges
- Edges with which to update existing edges
in graph
specified by graphName
. Review Edges for more information. Edges must
be specified using identifiers; identifiers are grouped as
combinations. Identifiers can be used
with existing column names, e.g., 'table.column AS
EDGE_ID', expressions, e.g., 'SUBSTR(column, 1, 6) AS
EDGE_NODE1_NAME', or raw values, e.g., "{'family',
'coworker'} AS EDGE_LABEL". If using raw values in an
identifier combination, the number of values specified
must match across the combination. Identifier
combination(s) do not have to match the method used to
create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be
used to modify the graph.weights
- Weights with which to update existing weights
in
graph specified by graphName
. Review Weights for more information. Weights
must be specified using identifiers; identifiers are grouped
as combinations. Identifiers can be used
with existing column names, e.g., 'table.column AS
WEIGHTS_EDGE_ID', expressions, e.g., 'ST_LENGTH(wkt) AS
WEIGHTS_VALUESPECIFIED', or raw values, e.g., '{4, 15}
AS WEIGHTS_VALUESPECIFIED'. If using raw values in an
identifier combination, the number of values specified
must match across the combination. Identifier
combination(s) do not have to match the method used to
create the graph, e.g., if column names were specified
to create the graph, expressions or raw values could
also be used to modify the graph.restrictions
- Restrictions with which to update existing restrictions
in graph specified by graphName
. Review Restrictions for more
information. Restrictions must be specified using
identifiers; identifiers are
grouped as combinations. Identifiers can be
used with existing column names, e.g.,
'table.column AS RESTRICTIONS_EDGE_ID',
expressions, e.g., 'column/2 AS
RESTRICTIONS_VALUECOMPARED', or raw values, e.g.,
'{0, 0, 0, 1} AS RESTRICTIONS_ONOFFCOMPARED'. If
using raw values in an identifier combination, the
number of values specified must match across the
combination. Identifier combination(s) do not have
to match the method used to create the graph, e.g.,
if column names were specified to create the graph,
expressions or raw values could also be used to
modify the graph.options
- Optional parameters.
RESTRICTION_THRESHOLD_VALUE
: Value-based
restriction comparison. Any node or edge with a
RESTRICTIONS_VALUECOMPARED value greater than
the RESTRICTION_THRESHOLD_VALUE
will not be
included in the graph.
EXPORT_CREATE_RESULTS
: If set to TRUE
, returns the graph topology
in the response as arrays.
Supported values:
The default value is FALSE
.
ENABLE_GRAPH_DRAW
: If set to TRUE
, adds a 'EDGE_WKTLINE' column
identifier to the specified GRAPH_TABLE
so the graph
can be viewed via WMS; for social and
non-geospatial graphs, the 'EDGE_WKTLINE' column
identifier will be populated with spatial
coordinates derived from a flattening layout
algorithm so the graph can still be viewed.
Supported values:
The default value is FALSE
.
SAVE_PERSIST
: If
set to TRUE
, the graph will
be saved in the persist directory (see the config reference for more
information). If set to FALSE
, the graph will be removed when the graph
server is shutdown.
Supported values:
The default value is FALSE
.
ADD_TABLE_MONITOR
: Adds a table monitor to
every table used in the creation of the graph;
this table monitor will trigger the graph to
update dynamically upon inserts to the source
table(s). Note that upon database restart, if
SAVE_PERSIST
is
also set to TRUE
, the graph
will be fully reconstructed and the table
monitors will be reattached. For more details on
table monitors, see GPUdb.createTableMonitor
.
Supported values:
The default value is FALSE
.
GRAPH_TABLE
: If
specified, the created graph is also created as
a table with the given name, in
[schema_name.]table_name format, using standard
name resolution rules and
meeting table naming criteria. This
table will have the following identifier
columns: 'EDGE_ID', 'EDGE_NODE1_ID',
'EDGE_NODE2_ID'. If left blank, no table is
created. The default value is ''.
REMOVE_LABEL_ONLY
: When RESTRICTIONS on labeled
entities requested, if set to true this will NOT
delete the entity but only the label associated
with the entity. Otherwise (default), it'll
delete the label AND the entity.
Supported values:
The default value is FALSE
.
ADD_TURNS
: Adds dummy
'pillowed' edges around intersection nodes where
there are more than three edges so that
additional weight penalties can be imposed by
the solve endpoints. (increases the total number
of edges).
Supported values:
The default value is FALSE
.
TURN_ANGLE
: Value in
degrees modifies the thresholds for attributing
right, left, sharp turns, and intersections. It
is the vertical deviation angle from the
incoming edge to the intersection node. The
larger the value, the larger the threshold for
sharp turns and intersections; the smaller the
value, the larger the threshold for right and
left turns; 0 < turn_angle < 90. The
default value is '60'.
USE_RTREE
: Use an
range tree structure to accelerate and improve
the accuracy of snapping, especially to edges.
Supported values:
The default value is TRUE
.
LABEL_DELIMITER
:
If provided the label string will be split
according to this delimiter and each sub-string
will be applied as a separate label onto the
specified edge. The default value is ''.
ALLOW_MULTIPLE_EDGES
: Multigraph choice;
allowing multiple edges with the same node pairs
if set to true, otherwise, new edges with
existing same node pairs will not be inserted.
Supported values:
The default value is TRUE
.
EMBEDDING_TABLE
:
If table exists (should be generated by the
match/graph match_embedding solver), the vector
embeddings for the newly inserted nodes will be
appended into this table. The default value is
''.
Map
.public static org.apache.avro.Schema getClassSchema()
public String getGraphName()
graphName
.public ModifyGraphRequest setGraphName(String graphName)
graphName
- The new value for graphName
.this
to mimic the builder pattern.public List<String> getNodes()
nodes
in graph
specified by graphName
. Review Nodes for more information. Nodes must be specified
using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS NODE_ID', expressions, e.g.,
'ST_MAKEPOINT(column1, column2) AS NODE_WKTPOINT', or raw values, e.g.,
'{9, 10, 11} AS NODE_ID'. If using raw values in an identifier
combination, the number of values specified must match across the
combination. Identifier combination(s) do not have to match the method
used to create the graph, e.g., if column names were specified to create
the graph, expressions or raw values could also be used to modify the
graph.nodes
.public ModifyGraphRequest setNodes(List<String> nodes)
nodes
in graph
specified by graphName
. Review Nodes for more information. Nodes must be specified
using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS NODE_ID', expressions, e.g.,
'ST_MAKEPOINT(column1, column2) AS NODE_WKTPOINT', or raw values, e.g.,
'{9, 10, 11} AS NODE_ID'. If using raw values in an identifier
combination, the number of values specified must match across the
combination. Identifier combination(s) do not have to match the method
used to create the graph, e.g., if column names were specified to create
the graph, expressions or raw values could also be used to modify the
graph.nodes
- The new value for nodes
.this
to mimic the builder pattern.public List<String> getEdges()
edges
in graph
specified by graphName
. Review Edges for more information. Edges must be specified
using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS EDGE_ID', expressions, e.g.,
'SUBSTR(column, 1, 6) AS EDGE_NODE1_NAME', or raw values, e.g.,
"{'family', 'coworker'} AS EDGE_LABEL". If using raw values in an
identifier combination, the number of values specified must match across
the combination. Identifier combination(s) do not have to match the
method used to create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be used to modify
the graph.edges
.public ModifyGraphRequest setEdges(List<String> edges)
edges
in graph
specified by graphName
. Review Edges for more information. Edges must be specified
using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS EDGE_ID', expressions, e.g.,
'SUBSTR(column, 1, 6) AS EDGE_NODE1_NAME', or raw values, e.g.,
"{'family', 'coworker'} AS EDGE_LABEL". If using raw values in an
identifier combination, the number of values specified must match across
the combination. Identifier combination(s) do not have to match the
method used to create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be used to modify
the graph.edges
- The new value for edges
.this
to mimic the builder pattern.public List<String> getWeights()
weights
in
graph specified by graphName
. Review Weights for more information. Weights must be
specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS WEIGHTS_EDGE_ID', expressions,
e.g., 'ST_LENGTH(wkt) AS WEIGHTS_VALUESPECIFIED', or raw values, e.g.,
'{4, 15} AS WEIGHTS_VALUESPECIFIED'. If using raw values in an
identifier combination, the number of values specified must match across
the combination. Identifier combination(s) do not have to match the
method used to create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be used to modify
the graph.weights
.public ModifyGraphRequest setWeights(List<String> weights)
weights
in
graph specified by graphName
. Review Weights for more information. Weights must be
specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS WEIGHTS_EDGE_ID', expressions,
e.g., 'ST_LENGTH(wkt) AS WEIGHTS_VALUESPECIFIED', or raw values, e.g.,
'{4, 15} AS WEIGHTS_VALUESPECIFIED'. If using raw values in an
identifier combination, the number of values specified must match across
the combination. Identifier combination(s) do not have to match the
method used to create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be used to modify
the graph.weights
- The new value for weights
.this
to mimic the builder pattern.public List<String> getRestrictions()
restrictions
in graph specified by graphName
.
Review Restrictions for more information. Restrictions must
be specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS RESTRICTIONS_EDGE_ID', expressions,
e.g., 'column/2 AS RESTRICTIONS_VALUECOMPARED', or raw values, e.g.,
'{0, 0, 0, 1} AS RESTRICTIONS_ONOFFCOMPARED'. If using raw values in an
identifier combination, the number of values specified must match across
the combination. Identifier combination(s) do not have to match the
method used to create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be used to modify
the graph.restrictions
.public ModifyGraphRequest setRestrictions(List<String> restrictions)
restrictions
in graph specified by graphName
.
Review Restrictions for more information. Restrictions must
be specified using identifiers; identifiers are grouped as combinations. Identifiers can be used with existing
column names, e.g., 'table.column AS RESTRICTIONS_EDGE_ID', expressions,
e.g., 'column/2 AS RESTRICTIONS_VALUECOMPARED', or raw values, e.g.,
'{0, 0, 0, 1} AS RESTRICTIONS_ONOFFCOMPARED'. If using raw values in an
identifier combination, the number of values specified must match across
the combination. Identifier combination(s) do not have to match the
method used to create the graph, e.g., if column names were specified to
create the graph, expressions or raw values could also be used to modify
the graph.restrictions
- The new value for restrictions
.this
to mimic the builder pattern.public Map<String,String> getOptions()
RESTRICTION_THRESHOLD_VALUE
: Value-based restriction
comparison. Any node or edge with a RESTRICTIONS_VALUECOMPARED
value greater than the RESTRICTION_THRESHOLD_VALUE
will not be included in the graph.
EXPORT_CREATE_RESULTS
: If
set to TRUE
, returns the graph topology in
the response as arrays.
Supported values:
The default value is FALSE
.
ENABLE_GRAPH_DRAW
: If set to
TRUE
, adds a 'EDGE_WKTLINE' column
identifier to the specified GRAPH_TABLE
so the graph can be viewed via WMS; for social and
non-geospatial graphs, the 'EDGE_WKTLINE' column identifier will
be populated with spatial coordinates derived from a flattening
layout algorithm so the graph can still be viewed.
Supported values:
The default value is FALSE
.
SAVE_PERSIST
: If set to TRUE
, the graph will be saved in the persist
directory (see the config reference for more information). If set
to FALSE
, the graph will be removed when
the graph server is shutdown.
Supported values:
The default value is FALSE
.
ADD_TABLE_MONITOR
: Adds a
table monitor to every table used in the creation of the graph;
this table monitor will trigger the graph to update dynamically
upon inserts to the source table(s). Note that upon database
restart, if SAVE_PERSIST
is also
set to TRUE
, the graph will be fully
reconstructed and the table monitors will be reattached. For
more details on table monitors, see GPUdb.createTableMonitor
.
Supported values:
The default value is FALSE
.
GRAPH_TABLE
: If specified, the
created graph is also created as a table with the given name, in
[schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria. This table will have
the following identifier columns: 'EDGE_ID', 'EDGE_NODE1_ID',
'EDGE_NODE2_ID'. If left blank, no table is created. The default
value is ''.
REMOVE_LABEL_ONLY
: When
RESTRICTIONS on labeled entities requested, if set to true this
will NOT delete the entity but only the label associated with
the entity. Otherwise (default), it'll delete the label AND the
entity.
Supported values:
The default value is FALSE
.
ADD_TURNS
: Adds dummy 'pillowed' edges
around intersection nodes where there are more than three edges
so that additional weight penalties can be imposed by the solve
endpoints. (increases the total number of edges).
Supported values:
The default value is FALSE
.
TURN_ANGLE
: Value in degrees modifies
the thresholds for attributing right, left, sharp turns, and
intersections. It is the vertical deviation angle from the
incoming edge to the intersection node. The larger the value,
the larger the threshold for sharp turns and intersections; the
smaller the value, the larger the threshold for right and left
turns; 0 < turn_angle < 90. The default value is '60'.
USE_RTREE
: Use an range tree structure
to accelerate and improve the accuracy of snapping, especially
to edges.
Supported values:
The default value is TRUE
.
LABEL_DELIMITER
: If provided the
label string will be split according to this delimiter and each
sub-string will be applied as a separate label onto the
specified edge. The default value is ''.
ALLOW_MULTIPLE_EDGES
:
Multigraph choice; allowing multiple edges with the same node
pairs if set to true, otherwise, new edges with existing same
node pairs will not be inserted.
Supported values:
The default value is TRUE
.
EMBEDDING_TABLE
: If table exists
(should be generated by the match/graph match_embedding solver),
the vector embeddings for the newly inserted nodes will be
appended into this table. The default value is ''.
Map
.options
.public ModifyGraphRequest setOptions(Map<String,String> options)
RESTRICTION_THRESHOLD_VALUE
: Value-based restriction
comparison. Any node or edge with a RESTRICTIONS_VALUECOMPARED
value greater than the RESTRICTION_THRESHOLD_VALUE
will not be included in the graph.
EXPORT_CREATE_RESULTS
: If
set to TRUE
, returns the graph topology in
the response as arrays.
Supported values:
The default value is FALSE
.
ENABLE_GRAPH_DRAW
: If set to
TRUE
, adds a 'EDGE_WKTLINE' column
identifier to the specified GRAPH_TABLE
so the graph can be viewed via WMS; for social and
non-geospatial graphs, the 'EDGE_WKTLINE' column identifier will
be populated with spatial coordinates derived from a flattening
layout algorithm so the graph can still be viewed.
Supported values:
The default value is FALSE
.
SAVE_PERSIST
: If set to TRUE
, the graph will be saved in the persist
directory (see the config reference for more information). If set
to FALSE
, the graph will be removed when
the graph server is shutdown.
Supported values:
The default value is FALSE
.
ADD_TABLE_MONITOR
: Adds a
table monitor to every table used in the creation of the graph;
this table monitor will trigger the graph to update dynamically
upon inserts to the source table(s). Note that upon database
restart, if SAVE_PERSIST
is also
set to TRUE
, the graph will be fully
reconstructed and the table monitors will be reattached. For
more details on table monitors, see GPUdb.createTableMonitor
.
Supported values:
The default value is FALSE
.
GRAPH_TABLE
: If specified, the
created graph is also created as a table with the given name, in
[schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria. This table will have
the following identifier columns: 'EDGE_ID', 'EDGE_NODE1_ID',
'EDGE_NODE2_ID'. If left blank, no table is created. The default
value is ''.
REMOVE_LABEL_ONLY
: When
RESTRICTIONS on labeled entities requested, if set to true this
will NOT delete the entity but only the label associated with
the entity. Otherwise (default), it'll delete the label AND the
entity.
Supported values:
The default value is FALSE
.
ADD_TURNS
: Adds dummy 'pillowed' edges
around intersection nodes where there are more than three edges
so that additional weight penalties can be imposed by the solve
endpoints. (increases the total number of edges).
Supported values:
The default value is FALSE
.
TURN_ANGLE
: Value in degrees modifies
the thresholds for attributing right, left, sharp turns, and
intersections. It is the vertical deviation angle from the
incoming edge to the intersection node. The larger the value,
the larger the threshold for sharp turns and intersections; the
smaller the value, the larger the threshold for right and left
turns; 0 < turn_angle < 90. The default value is '60'.
USE_RTREE
: Use an range tree structure
to accelerate and improve the accuracy of snapping, especially
to edges.
Supported values:
The default value is TRUE
.
LABEL_DELIMITER
: If provided the
label string will be split according to this delimiter and each
sub-string will be applied as a separate label onto the
specified edge. The default value is ''.
ALLOW_MULTIPLE_EDGES
:
Multigraph choice; allowing multiple edges with the same node
pairs if set to true, otherwise, new edges with existing same
node pairs will not be inserted.
Supported values:
The default value is TRUE
.
EMBEDDING_TABLE
: If table exists
(should be generated by the match/graph match_embedding solver),
the vector embeddings for the newly inserted nodes will be
appended into this table. The default value is ''.
Map
.options
- The new value for options
.this
to mimic the builder pattern.public org.apache.avro.Schema getSchema()
getSchema
in interface org.apache.avro.generic.GenericContainer
public Object get(int index)
get
in interface org.apache.avro.generic.IndexedRecord
index
- the position of the field to getIndexOutOfBoundsException
public void put(int index, Object value)
put
in interface org.apache.avro.generic.IndexedRecord
index
- the position of the field to setvalue
- the value to setIndexOutOfBoundsException
Copyright © 2025. All rights reserved.