Describe the bug
Whoops. Looks like an internal server error. Search your server logs
To Reproduce
https://github.com/oxy88/prisma_bug_report
this is my model
Shop -> Owner - One to One
Owner -> Fruit - One to Many
Fruit -> Color - One to One
type Shop {
id: ID! @unique
owner: Owner
}
type Owner {
id: ID! @unique
shop: Shop
favoriteFruits: [Fruit!]!
}
type Fruit {
id: ID! @unique
owner: Owner
color: Color
}
type Color {
id: ID! @unique
fruit: Fruit
}
Steps to reproduce the behavior:
{
shops(
where: {
owner: {
favoriteFruits_some: {
color: {
id: "ANY_ID"
}
}
}
}
) {
id
}
}
Expected behavior
Works with prisma 1.13
Dosn't work with prisma 1.14 and 1.15
Screenshots
Versions (please complete the following information):
Windows 10, OS X High Sierra, Ubuntu 16.04] prisma CLI: [e.g. prisma/1.9.0 (darwin-x64) node-v10.4.0]1.9.0]graphql-cli, prisma-binding, graphql-yoga, etc. if applicableAdditional context
Add any other context about the problem here.
Hmm, I seem to be hitting this too after upgrading from 1.12.2 to 1.14.2 with a similar schema and query. I rolled back to 1.12.2 and its working again. When I'm running 1.14.2 on Docker with my schema, this is the output of the docker logs:
java.sql.SQLSyntaxErrorException: (conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)
at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeQuery(MariaDbPreparedStatementClient.java:173)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$queryToDBIO$1(BuilderBase.scala:51)
at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$jooqToDBIO$1(BuilderBase.scala:81)
at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)
at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)
at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)
at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
Query is: select *
from `green@dev`.`Segment` as `Alias`
where `Alias`.`id` in (
select `green@dev`.`_DeviceToSegment`.`B`
from `green@dev`.`_DeviceToSegment`
where `Device_Alias`.`id` in (
select `green@dev`.`_DeviceToLocation`.`A`
from `green@dev`.`_DeviceToLocation`
where `green@dev`.`_DeviceToLocation`.`B` in (
select `green@dev`.`_CompanyToLocation`.`B`
from `green@dev`.`Company` as `Company_Location_Device_Alias`
join `green@dev`.`_CompanyToLocation`
on (
`Company_Location_Device_Alias`.`id` = `green@dev`.`_CompanyToLocation`.`A`
and `Company_Location_Device_Alias`.`id` = ?
)
)
)
)
order by `Alias`.`id` asc, parameters ['cjjyt1zej7x8k0706b9jo1jkj']
at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:146)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:217)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:218)
... 13 more
{"key":"error/unhandled","requestId":"local:api:cjlfgxih1000e0858hyp4b7du","clientId":"green@dev","payload":{"exception":"java.sql.SQLSyntaxErrorException: (conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'","query":"query segs {\n segments(where: {device: {location: {company: {id: \"cjjyt1zej7x8k0706b9jo1jkj\"}}}}) {\n id\n }\n}\n\nquery cos {\n companies(where: {id: \"cjjyt1zej7x8k0706b9jo1jkj\"}) {\n locations {\n devices {\n segments {\n id\n }\n }\n }\n }\n}\n","variables":"{}","code":"0","stack_trace":"org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)\\n org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)\\n org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)\\n org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)\\n org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)\\n org.mariadb.jdbc.MariaDbPreparedStatementClient.executeQuery(MariaDbPreparedStatementClient.java:173)\\n com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)\\n com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)\\n com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$queryToDBIO$1(BuilderBase.scala:51)\\n com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$jooqToDBIO$1(BuilderBase.scala:81)\\n slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)\\n slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)\\n slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)\\n slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)\\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\n java.lang.Thread.run(Thread.java:748)","message":"(conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'"}}
java.sql.SQLSyntaxErrorException: (conn=4) Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)
at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeQuery(MariaDbPreparedStatementClient.java:173)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$queryToDBIO$1(BuilderBase.scala:51)
at com.prisma.api.connector.jdbc.database.BuilderBase.$anonfun$jooqToDBIO$1(BuilderBase.scala:81)
at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)
at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)
at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)
at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Unknown column 'Device_Alias.id' in 'IN/ALL/ANY subquery'
Query is: select *
from `green@dev`.`Segment` as `Alias`
where `Alias`.`id` in (
select `green@dev`.`_DeviceToSegment`.`B`
from `green@dev`.`_DeviceToSegment`
where `Device_Alias`.`id` in (
select `green@dev`.`_DeviceToLocation`.`A`
from `green@dev`.`_DeviceToLocation`
where `green@dev`.`_DeviceToLocation`.`B` in (
select `green@dev`.`_CompanyToLocation`.`B`
from `green@dev`.`Company` as `Company_Location_Device_Alias`
join `green@dev`.`_CompanyToLocation`
on (
`Company_Location_Device_Alias`.`id` = `green@dev`.`_CompanyToLocation`.`A`
and `Company_Location_Device_Alias`.`id` = ?
)
)
)
)
order by `Alias`.`id` asc, parameters ['cjjyt1zej7x8k0706b9jo1jkj']
at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:146)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:217)
at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:218)
... 13 more
[Bugsnag - local / testing] Error report: com.bugsnag.Report@640ff4cf
[Metrics] No Prisma Cloud secret is set. Metrics collection is disabled.
Hey @oxy88 and @timchambers, are you using the Postgres or MySQL connector?
@marktani MySQL
@marktani MySQL
Thanks a lot for the additional information! I'm closing this as duplicate of https://github.com/prisma/prisma/issues/2899. We'll look into this soon!
@marktani #2971 is this one, what鈥檚 the original issue?
Sorry just updated my comment to the original issue 馃槃