Skip to content

Relation is resolved as column in graphQL and Postgres #6419

Open
@Wouter125

Description

@Wouter125

Issue Description

I set up a Postgres instance with Parse and GraphQL. If I run a GraphQL query against my db that contains a relation, the relation is being resolved as a column instead of a relation causing a crash.

Steps to reproduce

  1. Setup a parse server + parse dashboard
  2. Enable GraphQL
  3. Connect to a Postgres instance
  4. Open the GraphQL playground inside the dashboard
  5. Execute the following query;
query Roles {
  roles(first: 1) {
    edges {
      node {
        users {
          edges {
            node {
              username
            }
          }
        }
      }
    }
  }
}

Expected Results

I would expect to get an empty set of data since we have a clean Database.

Actual Outcome

Instead users is being resolved as a column and not a relation causing the following error;

"message": "error: column \"users\" does not exist",

Environment Setup

  • Server

    • parse-server version (Be specific! Don't say 'latest'.) : 3.10.0
    • Operating System: Ubuntu 18.04.3 LTS
    • Hardware: 1 vCPUs, 1GB / 25GB Disk
    • Localhost or remote server? (AWS, Heroku, Azure, Digital Ocean, etc): Digital Ocean
  • Database

    • Postgres version: 10.10
    • Storage engine: Digital Ocean Spaces
    • Hardware: 1 vCPUs, 1GB / 25GB Disk
    • Localhost or remote server? (AWS, mLab, ObjectRocket, Digital Ocean, etc): Digital Ocean

Logs/Trace

With Verbose on this is all I get;

Parse error: error: column "users" does not exist {"code":1,"stack":"Error: error: column \"users\" does not exist\n    at /home/wouter/app/node_modules/parse-server/lib/Controllers/DatabaseController.js:1179:21\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (internal/process/task_queues.js:97:5)\n    at async Object.findObjects (/home/wouter/app/node_modules/parse-server/lib/GraphQL/helpers/objectsQueries.js:149:24)\n    at async resolve (/home/wouter/app/node_modules/parse-server/lib/GraphQL/loaders/parseClassQueries.js:139:18)"}

Aditional

It does work if I create the user column myself through PGAdmin. Then it correctly resolves the relation instead of the column. So it's either inside the schema or the resolver.

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugImpaired feature or lacking behavior that is likely assumed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions