Comments (8)
Right!
With this query:
{
battles {
id
videos_func { count }
}
}
The response is:
{
"errors": [
{
"message": "An unexpected error occurred.",
"extensions": {
"code": "INTERNAL_SERVER_ERROR"
}
}
]
}
And the error is:
ERROR: select "battles"."id", (select count(*) from "videos" as "kaggh" left join "matchdays" as "jjvhv" on "videos"."matchday" = "jjvhv"."id" left join "battles" as "xcswd" on "videos"."battle" = "xcswd"."id" where "kaggh"."battle" = "battles"."id" and ((("jjvhv"."status" = 'published' or "xcswd"."status" = 'published')))) AS "videos_count" from "battles" where (("battles"."status" = $1)) order by "battles"."id" asc limit $2 - invalid reference to FROM-clause entry for table "videos"
From:
ERROR: select "battles"."id", (select count(*) from "videos" as "kaggh" left join "matchdays" as "jjvhv" on "videos"."matchday" = "jjvhv"."id" left join "battles" as "xcswd" on "videos"."battle" = "xcswd"."id" where "kaggh"."battle" = "battles"."id" and ((("jjvhv"."status" = 'published' or "xcswd"."status" = 'published')))) AS "videos_count" from "battles" where (("battles"."status" = $1)) order by "battles"."id" asc limit $2 - invalid reference to FROM-clause entry for table "videos"
err: {
"type": "GraphQLError",
"message": "select \"battles\".\"id\", (select count(*) from \"videos\" as \"kaggh\" left join \"matchdays\" as \"jjvhv\" on \"videos\".\"matchday\" = \"jjvhv\".\"id\" left join \"battles\" as \"xcswd\" on \"videos\".\"battle\" = \"xcswd\".\"id\" where \"kaggh\".\"battle\" = \"battles\".\"id\" and (((\"jjvhv\".\"status\" = 'published' or \"xcswd\".\"status\" = 'published')))) AS \"videos_count\" from \"battles\" where ((\"battles\".\"status\" = $1)) order by \"battles\".\"id\" asc limit $2 - invalid reference to FROM-clause entry for table \"videos\"",
"stack":
error: select "battles"."id", (select count(*) from "videos" as "kaggh" left join "matchdays" as "jjvhv" on "videos"."matchday" = "jjvhv"."id" left join "battles" as "xcswd" on "videos"."battle" = "xcswd"."id" where "kaggh"."battle" = "battles"."id" and ((("jjvhv"."status" = 'published' or "xcswd"."status" = 'published')))) AS "videos_count" from "battles" where (("battles"."status" = $1)) order by "battles"."id" asc limit $2 - invalid reference to FROM-clause entry for table "videos"
at Parser.parseErrorMessage (/directus/node_modules/.pnpm/[email protected]/node_modules/pg-protocol/dist/parser.js:283:98)
at Parser.handlePacket (/directus/node_modules/.pnpm/[email protected]/node_modules/pg-protocol/dist/parser.js:122:29)
at Parser.parse (/directus/node_modules/.pnpm/[email protected]/node_modules/pg-protocol/dist/parser.js:35:38)
at Socket.<anonymous> (/directus/node_modules/.pnpm/[email protected]/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:517:28)
at addChunk (node:internal/streams/readable:368:12)
at readableAddChunk (node:internal/streams/readable:341:9)
at Readable.push (node:internal/streams/readable:278:10)
at Pipe.onStreamRead (node:internal/stream_base_commons:190:23)
"path": [
"battles"
],
"locations": [
{
"line": 2,
"column": 3
}
],
"extensions": {}
}
Using PostgreSQL v15.
And the collection is (both matchday & video are M2O):
from directus.
Yes, no custom hooks / flows related to this query.
from directus.
The missing piece to reproducing this were the Item Permissions
for the videos
collection. With this filter I can reproduce the error. And this looks like a regression caused in #22297.
{
"_and": [{
"_or": [{
"battle": {
"status": {
"_eq": "published"
}
}
}, {
"matchday": {
"status": {
"_eq": "published"
}
}
}]
}]
}
from directus.
Right, in my matchdays and battle collections I have the status field. And in the permission I required to published.
The videos has no status field.
from directus.
Heya, I've tried replicating this in v10.11.0 on my end, but so far my GraphQL queries seem to work just find for m2m, m2a and o2m relations.
Can you please share your collection setup, DB vendor and maybe even a stack trace you might be seeing in your Directus logs?
from directus.
Are you seeing this in the app or when querying the API? Because the DB query looks like some additional filters are applied?
It would help if you could share the whole request. Thank you!
from directus.
Just with the query:
POST /graphql
Payload:
{"query":"{\n battles {\n id\n videos_func { count }\n }\n}","variables":null}
from directus.
Just to double check, you're not using any custom hooks or flows that might transform that query before it hits the DB?
from directus.
Related Issues (20)
- Upload CSV File Error HOT 1
- Action Flow doesn't show updated payload anymore HOT 3
- Add updateBatch request to the SDK
- CMS is not accessible HOT 1
- Add docs for updateBatch methods
- Adding incorrect value to `one_allowed_collections` relations through schema endpoint breaks graphql endpoint without any visible errors.
- V-drawer showing up behind the manual workflow run confirmation dialog HOT 1
- The data volume of active and revisions will become larger and larger HOT 2
- "You don't have permission to access this." when displaying Directus User in a list in the built-in Directus UI HOT 2
- Directus Paging issue HOT 5
- Error when opening the media-library HOT 2
- Upload files in chunks
- TypeError Cannot read properties of undefined (reading 'primary') HOT 3
- AUTH_LDAP_DEFAULT_ROLE_ID overwrites assigned role on every login
- Unable to detach link in flow
- Unable to create two images with a different name on the same singleton collection HOT 2
- Insight : Definition object should contain 'type' property: Object({ type: undefined, resolve: [function resolve] }) HOT 3
- Directus FLows: Item.create and Item.update have different data structure HOT 1
- WYSIWYG field - filtering for special characters HOT 1
- Cloudinary Storage: Old image returned after replacing/editing HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from directus.