Updated Prisma from v5.4.2 to v5.7.0 to test out the "relationJoins" preview feature. Most queries work as expected but there was one that gave me this error when executing a findMany operation:
This happens locally and when deployed to App Engine on GCP.
Upgrade to v5.7.0 and enable the "relationJoins" preview feature.
The query should "just work" and return the correct data as before when using the previous versions of Prisma.
For brevity I am not including the entire schema and instead including the models that are related to the query in question that has caused the error I am seeing. Let me know if you need me to include more.
SELECT
"t1"."id",
"t1"."internalId",
"t1"."referenceId",
"t1"."authorId",
"t1"."distributorId",
"t1"."locationId",
"t1"."pickUpLocationId",
"t1"."deliveryPlanId",
"t1"."companyId",
"t1"."deliveryDate",
"t1"."paymentMethod" :: text,
"t1"."distributorAdvancePayment",
"t1"."totalPaidAmount",
"t1"."totalDueAmount",
"t1"."totalAmount",
"t1"."totalBuyingAmount",
"t1"."transportFareAmount",
"t1"."discount",
"t1"."discountAmount",
"t1"."deliveryCharge",
"t1"."additionalNotes",
"t1"."internalNotes",
"t1"."status" :: text,
"t1"."subStatus" :: text,
"t1"."deliveryStatus",
"t1"."deliveryTrackingId",
"t1"."deliveryTrackingUrl",
"t1"."deliveryOrderId",
"t1"."deliveryConsignment",
"t1"."flagReason",
"t1"."onHoldReason",
"t1"."shortId",
"t1"."isStockTransfer",
"t1"."isReturn",
"t1"."parentSalesOrderId",
"t1"."copyCount",
"t1"."staleness",
"t1"."createdAt",
"t1"."updatedAt",
"t1"."orderDate",
"t1"."exportedForDeliveryAt",
"t1"."followUpDate",
"t1"."unloadedAt",
"t1"."deliveredAt",
"t1"."approvedAt",
"t1"."onHoldAt",
"t1"."processedAt",
"t1"."shippedAt",
"t1"."inTransitAt",
"t1"."flaggedAt",
"t1"."returnedAt",
"t1"."damagedAt",
"t1"."cancelledAt",
"t1"."metadata",
"t1"."deliveryArea",
"t1"."truckPlateNumber",
"t1"."loadingBay",
"t1"."district",
"t1"."preferredDeliveryPartner",
"t1"."source" :: text,
"t1"."printedAt",
"t1"."integrationId",
"t1"."isDeliveryFree",
"SalesOrder_company"."__prisma_data__" AS "company",
"SalesOrder_deliveryPlan"."__prisma_data__" AS "deliveryPlan",
"SalesOrder_distributor"."__prisma_data__" AS "distributor",
"SalesOrder_location"."__prisma_data__" AS "location",
"SalesOrder_pickUpLocation"."__prisma_data__" AS "pickUpLocation",
"SalesOrder_transactions"."__prisma_data__" AS "transactions",
"SalesOrder_salesOrderItems"."__prisma_data__" AS "salesOrderItems",
"SalesOrder_deliveryPartner"."__prisma_data__" AS "deliveryPartner"
FROM
"public"."SalesOrder" AS "t1"
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t4"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t3"."id", 'phone', "t3"."phone",
'name', "t3"."name", 'tag', "t3"."tag",
'address', "t3"."address", 'latitude',
"t3"."latitude", 'longitude', "t3"."longitude",
'country', "t3"."country", 'currency',
"t3"."currency", 'disabled', "t3"."disabled",
'website', "t3"."website", 'createdAt',
"t3"."createdAt", 'updatedAt', "t3"."updatedAt"
) AS "__prisma_data__"
FROM
(
SELECT
"t2".*
FROM
"public"."Company" AS "t2"
WHERE
"t1"."companyId" = "t2"."id"
/* root select */
) AS "t3"
/* inner select */
) AS "t4"
/* middle select */
) AS "t5"
/* outer select */
) AS "SalesOrder_company" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t8"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t7"."id", 'internalId', "t7"."internalId",
'deliveryDate', "t7"."deliveryDate",
'companyId', "t7"."companyId", 'shortId',
"t7"."shortId", 'status', "t7"."status",
'loadState', "t7"."loadState", 'runIds',
"t7"."runIds", 'usableTruckWeights',
"t7"."usableTruckWeights", 'createdAt',
"t7"."createdAt", 'updatedAt', "t7"."updatedAt",
'customized', "t7"."customized",
'scalar', "t7"."scalar", 'mode',
"t7"."mode", 'cancellationReason',
"t7"."cancellationReason"
) AS "__prisma_data__"
FROM
(
SELECT
"t6".*
FROM
"public"."DeliveryPlan" AS "t6"
WHERE
"t1"."deliveryPlanId" = "t6"."id"
/* root select */
) AS "t7"
/* inner select */
) AS "t8"
/* middle select */
) AS "t9"
/* outer select */
) AS "SalesOrder_deliveryPlan" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t12"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t11"."id", 'name', "t11"."name",
'disabled', "t11"."disabled", 'managerName',
"t11"."managerName", 'managerTitle',
"t11"."managerTitle", 'phone', "t11"."phone",
'email', "t11"."email", 'additionalInformation',
"t11"."additionalInformation",
'type', "t11"."type", 'paymentMethod',
"t11"."paymentMethod", 'paymentTerms',
"t11"."paymentTerms", 'lastSalesOrderCreatedAt',
"t11"."lastSalesOrderCreatedAt",
'createdAt', "t11"."createdAt",
'updatedAt', "t11"."updatedAt",
'accountManagerId', "t11"."accountManagerId",
'userId', "t11"."userId", 'companyId',
"t11"."companyId", 'shortId', "t11"."shortId",
'internalId', "t11"."internalId",
'internalName', "t11"."internalName",
'metadata', "t11"."metadata", 'customerTagId',
"t11"."customerTagId", 'smsCount',
"t11"."smsCount", 'accountManagerId',
"t11"."accountManagerId", 'accountManager',
"Distributor_accountManager"."__prisma_data__",
'locations', "Distributor_locations_m2m"."__prisma_data__"
) AS "__prisma_data__",
"t11"."accountManagerId"
FROM
(
SELECT
"t10".*
FROM
"public"."Distributor" AS "t10"
WHERE
"t1"."distributorId" = "t10"."id"
/* root select */
) AS "t11"
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t16"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t15"."id", 'internalId', "t15"."internalId",
'name', "t15"."name", 'email', "t15"."email",
'phone', "t15"."phone", 'disabled',
"t15"."disabled", 'role', "t15"."role",
'companyId', "t15"."companyId",
'permissionGroupId', "t15"."permissionGroupId",
'vehicleTypes', "t15"."vehicleTypes",
'createdAt', "t15"."createdAt",
'updatedAt', "t15"."updatedAt",
'team', "t15"."team", 'lastUnassignedTripId',
"t15"."lastUnassignedTripId", 'metadata',
"t15"."metadata"
) AS "__prisma_data__"
FROM
(
SELECT
"t14".*
FROM
"public"."User" AS "t14"
WHERE
"t11"."accountManagerId" = "t14"."id"
/* root select */
) AS "t15"
/* inner select */
) AS "t16"
/* middle select */
) AS "t17"
/* outer select */
) AS "Distributor_accountManager" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"Distributor_locations"."__prisma_data__"
FROM
"public"."_DistributorToLocation" AS "t18"
LEFT JOIN LATERAL (
SELECT
JSON_BUILD_OBJECT(
'id', "t20"."id", 'internalId', "t20"."internalId",
'internalName', "t20"."internalName",
'referenceId', "t20"."referenceId",
'label', "t20"."label", 'description',
"t20"."description", 'type', "t20"."type",
'address', "t20"."address", 'district',
"t20"."district", 'division', "t20"."division",
'postCode', "t20"."postCode", 'country',
"t20"."country", 'contactPerson',
"t20"."contactPerson", 'phone',
"t20"."phone", 'latitude', "t20"."latitude",
'longitude', "t20"."longitude",
'companyId', "t20"."companyId",
'deletedAt', "t20"."deletedAt",
'createdAt', "t20"."createdAt",
'updatedAt', "t20"."updatedAt"
) AS "__prisma_data__",
"t20"."id"
FROM
(
SELECT
"t19".*
FROM
"public"."Location" AS "t19"
WHERE
"t18"."B" = "t19"."id"
/* root select */
) AS "t20"
) AS "Distributor_locations" ON true
WHERE
(
"t18"."A" = "t11"."id"
AND "public"."Location"."type" = CAST(
$1 :: text AS "public"."LocationType"
)
)
) AS "Distributor_locations_m2m_1"
) AS "Distributor_locations_m2m" ON true
/* inner select */
) AS "t12"
/* middle select */
) AS "t13"
/* outer select */
) AS "SalesOrder_distributor" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t25"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t24"."id", 'internalId', "t24"."internalId",
'internalName', "t24"."internalName",
'referenceId', "t24"."referenceId",
'label', "t24"."label", 'description',
"t24"."description", 'type', "t24"."type",
'address', "t24"."address", 'district',
"t24"."district", 'division', "t24"."division",
'postCode', "t24"."postCode", 'country',
"t24"."country", 'contactPerson',
"t24"."contactPerson", 'phone',
"t24"."phone", 'latitude', "t24"."latitude",
'longitude', "t24"."longitude",
'companyId', "t24"."companyId",
'deletedAt', "t24"."deletedAt",
'createdAt', "t24"."createdAt",
'updatedAt', "t24"."updatedAt"
) AS "__prisma_data__"
FROM
(
SELECT
"t23".*
FROM
"public"."Location" AS "t23"
WHERE
"t1"."locationId" = "t23"."id"
/* root select */
) AS "t24"
/* inner select */
) AS "t25"
/* middle select */
) AS "t26"
/* outer select */
) AS "SalesOrder_location" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t29"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t28"."id", 'internalId', "t28"."internalId",
'internalName', "t28"."internalName",
'referenceId', "t28"."referenceId",
'label', "t28"."label", 'description',
"t28"."description", 'type', "t28"."type",
'address', "t28"."address", 'district',
"t28"."district", 'division', "t28"."division",
'postCode', "t28"."postCode", 'country',
"t28"."country", 'contactPerson',
"t28"."contactPerson", 'phone',
"t28"."phone", 'latitude', "t28"."latitude",
'longitude', "t28"."longitude",
'companyId', "t28"."companyId",
'deletedAt', "t28"."deletedAt",
'createdAt', "t28"."createdAt",
'updatedAt', "t28"."updatedAt"
) AS "__prisma_data__"
FROM
(
SELECT
"t27".*
FROM
"public"."Location" AS "t27"
WHERE
"t1"."pickUpLocationId" = "t27"."id"
/* root select */
) AS "t28"
/* inner select */
) AS "t29"
/* middle select */
) AS "t30"
/* outer select */
) AS "SalesOrder_pickUpLocation" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t33"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t32"."id", 'authorId', "t32"."authorId",
'payerId', "t32"."payerId", 'payerResource',
"t32"."payerResource", 'payeeId',
"t32"."payeeId", 'payeeResource',
"t32"."payeeResource", 'paymentOption',
"t32"."paymentOption", 'paymentStatus',
"t32"."paymentStatus", 'type', "t32"."type",
'additionalNotes', "t32"."additionalNotes",
'amount', "t32"."amount", 'salesOrderId',
"t32"."salesOrderId", 'purchaseOrderId',
"t32"."purchaseOrderId", 'createdAt',
"t32"."createdAt", 'updatedAt',
"t32"."updatedAt"
) AS "__prisma_data__"
FROM
(
SELECT
"t31".*
FROM
"public"."Transaction" AS "t31"
WHERE
"t1"."id" = "t31"."salesOrderId"
/* root select */
) AS "t32"
/* inner select */
) AS "t33"
/* middle select */
) AS "t34"
/* outer select */
) AS "SalesOrder_transactions" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t37"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t36"."id", 'productId', "t36"."productId",
'salesOrderId', "t36"."salesOrderId",
'packageQuantity', "t36"."packageQuantity",
'packageId', "t36"."packageId",
'quantity', "t36"."quantity", 'quantityUnit',
"t36"."quantityUnit", 'totalWeight',
"t36"."totalWeight", 'totalWeightUnit',
"t36"."totalWeightUnit", 'totalVolume',
"t36"."totalVolume", 'totalVolumeUnit',
"t36"."totalVolumeUnit", 'discount',
"t36"."discount", 'discountAmount',
"t36"."discountAmount", 'price',
"t36"."price", 'buyingPrice', "t36"."buyingPrice",
'productUnit', "t36"."productUnit",
'deliveredQuantity', "t36"."deliveredQuantity",
'deliveredPackageQuantity', "t36"."deliveredPackageQuantity",
'flaggedQuantity', "t36"."flaggedQuantity",
'createdAt', "t36"."createdAt",
'updatedAt', "t36"."updatedAt",
'inventoryItemId', "t36"."inventoryItemId",
'inventoryBatchItemId', "t36"."inventoryBatchItemId",
'approvedQuantity', "t36"."approvedQuantity",
'approvedPackageQuantity', "t36"."approvedPackageQuantity",
'isUpsell', "t36"."isUpsell", 'productId',
"t36"."productId", 'product', "SalesOrderItem_product"."__prisma_data__",
'salesOrderItemSpecifications',
"SalesOrderItem_salesOrderItemSpecifications"."__prisma_data__",
'packageId', "t36"."packageId",
'packaging', "SalesOrderItem_packaging"."__prisma_data__",
'inventoryBatchItemId', "t36"."inventoryBatchItemId",
'inventoryBatchItem', "SalesOrderItem_inventoryBatchItem"."__prisma_data__"
) AS "__prisma_data__",
"t36"."productId",
"t36"."id",
"t36"."packageId",
"t36"."inventoryBatchItemId"
FROM
(
SELECT
"t35".*
FROM
"public"."SalesOrderItem" AS "t35"
WHERE
"t1"."id" = "t35"."salesOrderId"
/* root select */
) AS "t36"
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t41"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t40"."id", 'summary', "t40"."summary",
'name', "t40"."name", 'companyId',
"t40"."companyId", 'imageUrls',
"t40"."imageUrls", 'price', "t40"."price",
'salePrice', "t40"."salePrice",
'resellPrice', "t40"."resellPrice",
'purchasePrice', "t40"."purchasePrice",
'retailPrice', "t40"."retailPrice",
'distributorPrice', "t40"."distributorPrice",
'dealerPrice', "t40"."dealerPrice",
'traderPrice', "t40"."traderPrice",
'microEntrepreneurPrice', "t40"."microEntrepreneurPrice",
'corporatePrice', "t40"."corporatePrice",
'eCommerceCustomerPrice', "t40"."eCommerceCustomerPrice",
'currency', "t40"."currency", 'sku',
"t40"."sku", 'barcode', "t40"."barcode",
'position', "t40"."position", 'shelfLife',
"t40"."shelfLife", 'category', "t40"."category",
'subCategory1', "t40"."subCategory1",
'subCategory2', "t40"."subCategory2",
'subCategory3', "t40"."subCategory3",
'subCategory4', "t40"."subCategory4",
'subCategory5', "t40"."subCategory5",
'parentProductId', "t40"."parentProductId",
'internalId', "t40"."internalId",
'industry', "t40"."industry", 'deleted',
"t40"."deleted", 'createdAt', "t40"."createdAt",
'updatedAt', "t40"."updatedAt",
'metadata', "t40"."metadata", 'type',
"t40"."type", 'integrationId', "t40"."integrationId",
'productSpecifications', "Product_productSpecifications"."__prisma_data__",
'inventoryItems', "Product_inventoryItems"."__prisma_data__"
) AS "__prisma_data__",
"t40"."id"
FROM
(
SELECT
"t39".*
FROM
"public"."Product" AS "t39"
WHERE
"t36"."productId" = "t39"."id"
/* root select */
) AS "t40"
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t45"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'productId', "t44"."productId", 'specificationCompanyId',
"t44"."specificationCompanyId",
'specificationKey', "t44"."specificationKey",
'value', "t44"."value", 'unit', "t44"."unit",
'specificationCompanyId', "t44"."specificationCompanyId",
'specificationKey', "t44"."specificationKey",
'specification', "ProductSpecification_specification"."__prisma_data__"
) AS "__prisma_data__",
"t44"."specificationCompanyId",
"t44"."specificationKey"
FROM
(
SELECT
"t43".*
FROM
"public"."ProductSpecification" AS "t43"
WHERE
"t40"."id" = "t43"."productId"
/* root select */
) AS "t44"
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t49"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'label', "t48"."label", 'type', "t48"."type"
) AS "__prisma_data__"
FROM
(
SELECT
"t47".*
FROM
"public"."Specification" AS "t47"
WHERE
(
"t44"."specificationCompanyId" = "t47"."companyId"
AND "t44"."specificationKey" = "t47"."key"
)
/* root select */
) AS "t48"
/* inner select */
) AS "t49"
/* middle select */
) AS "t50"
/* outer select */
) AS "ProductSpecification_specification" ON true
/* inner select */
) AS "t45"
/* middle select */
) AS "t46"
/* outer select */
) AS "Product_productSpecifications" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t53"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t52"."id", 'productId', "t52"."productId",
'quantity', "t52"."quantity", 'wastageQuantity',
"t52"."wastageQuantity", 'expiredQuantity',
"t52"."expiredQuantity", 'locationId',
"t52"."locationId", 'companyId',
"t52"."companyId", 'batchNumber',
"t52"."batchNumber", 'createdAt',
"t52"."createdAt", 'updatedAt',
"t52"."updatedAt"
) AS "__prisma_data__",
"t52"."quantity"
FROM
(
SELECT
"t51".*
FROM
"public"."InventoryItem" AS "t51"
WHERE
"t40"."id" = "t51"."productId"
/* root select */
) AS "t52"
/* inner select */
) AS "t53"
WHERE
"t53"."quantity" > $2
/* middle select */
) AS "t54"
/* outer select */
) AS "Product_inventoryItems" ON true
/* inner select */
) AS "t41"
/* middle select */
) AS "t42"
/* outer select */
) AS "SalesOrderItem_product" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t57"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'salesOrderItemId', "t56"."salesOrderItemId",
'specificationCompanyId', "t56"."specificationCompanyId",
'specificationKey', "t56"."specificationKey",
'value', "t56"."value", 'unit', "t56"."unit",
'specificationCompanyId', "t56"."specificationCompanyId",
'specificationKey', "t56"."specificationKey",
'specification', "SalesOrderItemSpecification_specification"."__prisma_data__"
) AS "__prisma_data__",
"t56"."specificationCompanyId",
"t56"."specificationKey"
FROM
(
SELECT
"t55".*
FROM
"public"."SalesOrderItemSpecification" AS "t55"
WHERE
"t36"."id" = "t55"."salesOrderItemId"
/* root select */
) AS "t56"
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t61"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'label', "t60"."label", 'type', "t60"."type"
) AS "__prisma_data__"
FROM
(
SELECT
"t59".*
FROM
"public"."Specification" AS "t59"
WHERE
(
"t56"."specificationCompanyId" = "t59"."companyId"
AND "t56"."specificationKey" = "t59"."key"
)
/* root select */
) AS "t60"
/* inner select */
) AS "t61"
/* middle select */
) AS "t62"
/* outer select */
) AS "SalesOrderItemSpecification_specification" ON true
/* inner select */
) AS "t57"
/* middle select */
) AS "t58"
/* outer select */
) AS "SalesOrderItem_salesOrderItemSpecifications" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t65"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t64"."id", 'name', "t64"."name",
'productId', "t64"."productId",
'type', "t64"."type", 'width', "t64"."width",
'widthUnit', "t64"."widthUnit",
'height', "t64"."height", 'heightUnit',
"t64"."heightUnit", 'length', "t64"."length",
'lengthUnit', "t64"."lengthUnit",
'volume', "t64"."volume", 'volumeUnit',
"t64"."volumeUnit", 'size', "t64"."size",
'sizeUnit', "t64"."sizeUnit", 'createdAt',
"t64"."createdAt", 'updatedAt',
"t64"."updatedAt"
) AS "__prisma_data__"
FROM
(
SELECT
"t63".*
FROM
"public"."Package" AS "t63"
WHERE
"t36"."packageId" = "t63"."id"
/* root select */
) AS "t64"
/* inner select */
) AS "t65"
/* middle select */
) AS "t66"
/* outer select */
) AS "SalesOrderItem_packaging" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t69"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t68"."id", 'inventoryItemId',
"t68"."inventoryItemId", 'packageId',
"t68"."packageId", 'productId',
"t68"."productId", 'locationId',
"t68"."locationId", 'companyId',
"t68"."companyId", 'quantity', "t68"."quantity",
'wastageQuantity', "t68"."wastageQuantity",
'expiredQuantity', "t68"."expiredQuantity",
'manufactureDate', "t68"."manufactureDate",
'expiryDate', "t68"."expiryDate",
'batchNumber', "t68"."batchNumber",
'createdAt', "t68"."createdAt",
'updatedAt', "t68"."updatedAt"
) AS "__prisma_data__"
FROM
(
SELECT
"t67".*
FROM
"public"."InventoryBatchItem" AS "t67"
WHERE
"t36"."inventoryBatchItemId" = "t67"."id"
/* root select */
) AS "t68"
/* inner select */
) AS "t69"
/* middle select */
) AS "t70"
/* outer select */
) AS "SalesOrderItem_inventoryBatchItem" ON true
/* inner select */
) AS "t37"
/* middle select */
) AS "t38"
/* outer select */
) AS "SalesOrder_salesOrderItems" ON true
LEFT JOIN LATERAL (
SELECT
COALESCE(
JSON_AGG("__prisma_data__"),
'[]'
) AS "__prisma_data__"
FROM
(
SELECT
"t73"."__prisma_data__"
FROM
(
SELECT
JSON_BUILD_OBJECT(
'id', "t72"."id", 'name', "t72"."name",
'type', "t72"."type", 'partnerId',
"t72"."partnerId", 'disabled', "t72"."disabled"
) AS "__prisma_data__"
FROM
(
SELECT
"t71".*
FROM
"public"."DeliveryPartner" AS "t71"
WHERE
"t1"."preferredDeliveryPartner" = "t71"."id"
/* root select */
) AS "t72"
/* inner select */
) AS "t73"
/* middle select */
) AS "t74"
/* outer select */
) AS "SalesOrder_deliveryPartner" ON true
WHERE
(
"t1"."id" IN (
$3, $4, $5, $6, $7, $8, $9, $10, $11, $12,
$13, $14, $15, $16, $17, $18, $19, $20,
$21, $22, $23, $24, $25, $26, $27, $28,
$29, $30, $31, $32, $33, $34, $35
)
AND "t1"."companyId" = $36
)
Bug description
Updated Prisma from v5.4.2 to v5.7.0 to test out the "relationJoins" preview feature. Most queries work as expected but there was one that gave me this error when executing a
findManyoperation:This happens locally and when deployed to App Engine on GCP.
How to reproduce
Upgrade to v5.7.0 and enable the "relationJoins" preview feature.
Expected behavior
The query should "just work" and return the correct data as before when using the previous versions of Prisma.
Prisma information
For brevity I am not including the entire schema and instead including the models that are related to the query in question that has caused the error I am seeing. Let me know if you need me to include more.
Here is the generated query from the Prisma logger:
From the Logger in GCP I see this log from Postgres before the error is thrown:
Environment & setup
Prisma Version