Query Views and Synonyms Using the GraphQL Table Function
Query relational views and synonyms that resolve to views by using the GRAPHQL() table function.
Starting in 23.26.3, the GRAPHQL() table function supports queries against relational views and synonyms that resolve to views.
Query a Relational View
The following example creates a relational view that joins the driver and team tables:
CREATE OR REPLACE VIEW driver_team_v AS
SELECT
d.driver_id,
d.name AS driver_name,
d.points AS driver_points,
t.name AS team_name
FROM driver d
JOIN team t
ON d.team_id = t.team_id;
You can query the relational view with the GRAPHQL() table function:
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
query getDriverTeamView {
driver_team_v (limit: 2) {
driverId: driver_id
driverName: driver_name
driverPoints: driver_points
teamName: team_name
}
}
');
This query returns two driver rows from the view:
DATA
--------------------------------------------------------------------------------
{
"driverId" : 101,
"driverName" : "Lando Norris",
"driverPoints" : 282,
"teamName" : "McLaren Mercedes"
}
{
"driverId" : 102,
"driverName" : "Oscar Piastri",
"driverPoints" : 384,
"teamName" : "McLaren Mercedes"
}
2 rows selected.
Query a Synonym That Resolves to a View
The following example creates a synonym for the driver_team_v view:
CREATE OR REPLACE SYNONYM driver_team_syn FOR driver_team_v;
You can use the synonym name in a GraphQL query:
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
query {
driver_team_syn (limit: 2) {
driverId: driver_id
driverName: driver_name
driverPoints: driver_points
teamName: team_name
}
}
');
This query returns two driver rows from the synonym:
DATA
--------------------------------------------------------------------------------
{
"driverId" : 101,
"driverName" : "Lando Norris",
"driverPoints" : 282,
"teamName" : "McLaren Mercedes"
}
{
"driverId" : 102,
"driverName" : "Oscar Piastri",
"driverPoints" : 384,
"teamName" : "McLaren Mercedes"
}
2 rows selected.