Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apache AGE handler?? Apache AGE is a PostgreSQL Extension that provides graph database functionality #2943

Closed
xem-tim-duval opened this issue Oct 10, 2021 · 2 comments

Comments

@xem-tim-duval
Copy link

xem-tim-duval commented Oct 10, 2021

Is your feature request related to a problem? Please describe.

Yes, I tried using the Postgres handler and it doesn’t read anything from the database

The AGE extension is, I believe, how PG gets it’s ‘multi-modal’ status on db-engines.com. We were hoping to use it for a large project where we had both graph and relational needs and didn’t want to be proprietarily cornered (custom languages) or vendor affiliated.

After taking the extension for a spin via docker containers (server, viewer) , I found the following.

In addition to a custom schema created by the extension to manage the ‘graphs’, I found the Apache Incubator AGE extension creates a new ‘schema’ inside the default ‘postgres’ database when you create a graph. Neither of these are the default schema.

I didn’t see any documentation for postgraphile on how to specify the specific schema in the connection string (it tried ?defaultSchema=<schema_name>, nada…

The only content that comes up in the GraphQL browser on localhost:4000 are ‘Node’ and ‘NodeId’. I assume this is a base type template of sorts.

There is an AGViewer they offer (in a container) that allows you to write queries (very neo4j browser like). I’m assuming under the hood, they have the code that shows how to query and extract graphs from PG/AGE. Looks like they do through JDBC.

Using a relational means/mechanism to retrieve a graph seems counter-intuitive. It appears the AGE team is very focused on the hybridization of SQL and CYPHER queries, which is fine, and to them, providing this capability may be a way of giving the best of both worlds?

I just can’t see developing/selling a product saying it’s backend is multi-modal, got graph capabilities, but it is currently limited to accessing the graph remotely by relational means.

Describe the solution you'd like

AGE for PG is a great addition to an already awesome RDBMS. GraphQL Mesh’s ability to create a GraphQL API for the graph it allows us to manage may just be be the first (I believe) GraphQL API capability for the Apache AGE incubator project.

Describe alternatives you've considered

- Alternative 1: use the PG Handler for GraphQL Mesh
- Alternative 2: create an OpenAPI spec to crate REST service, but then that defeats the whole ‘graph’ thing, doesn’t it?? 
- Alternative 3: use JDBC the way the viewer does to query the graph relationally, then render another graph, client-side, from the relational data, …I’m already getting tired thinking of it…
- Alternative 4: reach out to my friends at the Guild and inquire on the art of the possible!

Additional context

Video demonstration of Apache AGE for Postgres’s capabilities

@ardatan
Copy link
Owner

ardatan commented Dec 28, 2021

We don't know much about Apache AGE. Maybe @benjie (Maintainer of the great Postgraphile project used by GraphQL Mesh) has an idea about why Postgraphile isn't reading the database coming from Apache AGE.

@benjie
Copy link

benjie commented Dec 28, 2021

By default we exclude resources from extensions because the vast majority of users don’t want them in their GraphQL schema; however you can tell us to include them with the includeExtensionResources: true option:

includeExtensionResources: By default, tables and functions that come from extensions are excluded from the generated GraphQL schema as general applications don't need them to be exposed to the end user. You can use this flag to include them in the generated schema (not recommended).

@Urigo Urigo mentioned this issue Aug 11, 2022
46 tasks
Repository owner locked and limited conversation to collaborators Sep 18, 2022
@gilgardosh gilgardosh converted this issue into discussion #4522 Sep 18, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests

3 participants