4 ms·
FWIW, Postgres has foreign data wrappers to external APIs: https://wiki.postgresql.org/wiki/Foreign_data_wrappers https://wiki.postgresql.org/wiki/Foreign_data_
by mmgutz 7y ago
FWIW, Postgres has foreign data wrappers to external APIs: https://wiki.postgresql.org/wiki/Foreign_data_wrappers https://wiki.postgresql.org/wiki/Foreign_data_wrappers
There are many utilities which use SQL for querying logs, filesystems, processes ...
GraphQL could have based its language on SQL, but hierarchical queries are clumsy. For example our golang datamapper query
sql, args := JSQL("SELECT b, c").
Many("f", `SELECT g, h FROM f WHERE id= $1`, 4).
Many("x", `SELECT id, y, z FROM x`).
From("a").
Where("id =$1", 4)
ToSQL()
converts to this SQL which returns JSON
expected := `
SELECT row_to_json(dat__item.*)
FROM (
SELECT
b,
c,
(SELECT array_agg(dat__f.*) FROM (SELECT g,h FROM f WHERE id=$1) AS dat__f) AS "f",
(SELECT array_agg(dat__x.*) FROM (SELECT id,y,z FROM x) AS dat__x) AS "x"
FROM a
WHERE d=$2
) as dat__item
`
The equivalent GraphQL query is certainly more elegant.
- PudgePacket 7y agoI hadn't thought of going straight to json in the db. Do you notice extra load at all?