https://github.com/solidsnack/GraphpostgresQL Skip to content Sign up * Why GitHub? + Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories - * Team * Enterprise * Explore + Explore GitHub - + Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - + Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing + Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} solidsnack / GraphpostgresQL Public * Notifications * Star 1.1k * Fork 29 * GraphQL for Postgres View license 1.1k stars 29 forks Star Notifications * Code * Issues 2 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show Loading {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default Loading View all tags 2 branches 0 tags Code Loading Latest commit @solidsnack solidsnack Use both args in string format ... 8756fce Mar 30, 2017 Use both args in string format 8756fce Git stats * 37 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time fb Fix escaping issue. Mar 13, 2015 LICENSE Shift to PostgreSQL license. Mar 15, 2015 README.md Roadmap Mar 23, 2015 demo.sql Clear table label at the end of the demo. Mar 21, 2015 graphql.sql Use both args in string format Mar 30, 2017 View code GraphpostgresQL -- a graph interface to relational data A Proof of Concept Install GraphpostgresQL Using GraphpostgresQL Removing GraphpostgresQL Roadmap README.md GraphpostgresQL -- a graph interface to relational data GraphpostgresQL is inspired by Facebook's graphql. By using table introspection, GraphpostgresQL is able to follow foreign keys and index into complex datatypes like json, jsonb and hstore. A Proof of Concept GraphpostgresQL is alpha quality and has undergone neither extensive optimization nor comprehensive testing. To use it for production workloads would needlessly tempt fate. Install GraphpostgresQL Using psql, load the graphql schema file: \i graphql.sql All definitions are created under the graphql schema. GraphpostgresQL doesn't load any extensions or alter the search_path. If an older version of GraphpostgresQL is loaded, the new installation will overwrite it. Using GraphpostgresQL To generate a query, use graphql.to_sql(text): SELECT graphql.to_sql($$ user("f3411edc-e1d0-452a-bc19-b42c0d5a0e36") { full_name, friendship } $$); Which should result in something like: SELECT to_json("sub/2") AS "user" FROM "user", LATERAL ( SELECT json_agg("user") AS friendship FROM "user" JOIN friendship ON (("user".id) = (friendship.second)) WHERE (friendship.first) = ('f3411edc-e1d0-452a-bc19-b42c0d5a0e36'::uuid) ) AS "sub/1", LATERAL ( SELECT "user".full_name, "sub/1".friendship ) AS "sub/2" WHERE (("user".id) = ('f3411edc-e1d0-452a-bc19-b42c0d5a0e36'::uuid)) To run a query, use graphql.run(text) instead of graphql.to_sql (text). Removing GraphpostgresQL It's easy to remove GraphpostgresQL: DROP SCHEMA IF EXISTS graphql CASCADE; Roadmap In GraphpostgresQL64, we'll introduce expanded selectors (nested selection in JSON columns, for example), an interface that accepts keyword parameters, and the ability to store and re-execute queries. In GraphpostgresQL3D, we'll introduce a PL/V8 implementation, with extensible parsing, hooks and overall more modular implementation. About GraphQL for Postgres Resources Readme License View license Releases No releases published Packages 0 No packages published Languages * PLpgSQL 100.0% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.