From 23531e15096fec99f100a71c406658ee47230978 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 17 Dec 2024 16:10:21 +0100 Subject: [PATCH] Fix sqs formula --- .../src/sdk/app/rows/search/internal/sqs.ts | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/server/src/sdk/app/rows/search/internal/sqs.ts b/packages/server/src/sdk/app/rows/search/internal/sqs.ts index 4eca0e4c09..c92d186a37 100644 --- a/packages/server/src/sdk/app/rows/search/internal/sqs.ts +++ b/packages/server/src/sdk/app/rows/search/internal/sqs.ts @@ -62,7 +62,15 @@ async function buildInternalFieldList( ) { const { relationships, allowedFields } = opts || {} let schemaFields: string[] = [] + const isView = sdk.views.isView(source) + let table: Table + if (isView) { + table = await sdk.views.getTable(source.id) + } else { + table = source + } + if (isView) { schemaFields = Object.keys(helpers.views.basicFields(source)) } else { @@ -71,17 +79,16 @@ async function buildInternalFieldList( ) } - if (allowedFields) { + const containsFormula = schemaFields.some( + f => table.schema[f]?.type === FieldType.FORMULA + ) + // If are requesting for a formula field, we need to retrieve all fields + if (containsFormula) { + schemaFields = Object.keys(table.schema) + } else if (allowedFields) { schemaFields = schemaFields.filter(field => allowedFields.includes(field)) } - let table: Table - if (isView) { - table = await sdk.views.getTable(source.id) - } else { - table = source - } - let fieldList: string[] = [] const getJunctionFields = (relatedTable: Table, fields: string[]) => { const junctionFields: string[] = []