Fix mysql formula test
This commit is contained in:
parent
8765a28f04
commit
8eb82d3b05
|
@ -165,8 +165,11 @@ export async function buildSqlFieldList(
|
||||||
fields = extractRealFields(source)
|
fields = extractRealFields(source)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const containsFormula = (isView ? fields : Object.keys(table.schema)).some(
|
||||||
|
f => table.schema[f]?.type === FieldType.FORMULA
|
||||||
|
)
|
||||||
// If are requesting for a formula field, we need to retrieve all fields
|
// If are requesting for a formula field, we need to retrieve all fields
|
||||||
if (fields.find(f => table.schema[f]?.type === FieldType.FORMULA)) {
|
if (containsFormula) {
|
||||||
fields = extractRealFields(table)
|
fields = extractRealFields(table)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,15 +195,22 @@ export async function buildSqlFieldList(
|
||||||
if (
|
if (
|
||||||
isView &&
|
isView &&
|
||||||
source.schema?.[field.name] &&
|
source.schema?.[field.name] &&
|
||||||
!helpers.views.isVisible(source.schema[field.name])
|
!helpers.views.isVisible(source.schema[field.name]) &&
|
||||||
|
!containsFormula
|
||||||
) {
|
) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
const { tableName } = breakExternalTableId(field.tableId)
|
const { tableName } = breakExternalTableId(field.tableId)
|
||||||
const relatedTable = tables[tableName]
|
const relatedTable = tables[tableName]
|
||||||
if (relatedTable) {
|
if (!relatedTable) {
|
||||||
const viewFields = new Set<string>()
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
const viewFields = new Set<string>()
|
||||||
|
if (containsFormula) {
|
||||||
|
extractRealFields(relatedTable).forEach(f => viewFields.add(f))
|
||||||
|
} else {
|
||||||
relatedTable.primary?.forEach(f => viewFields.add(f))
|
relatedTable.primary?.forEach(f => viewFields.add(f))
|
||||||
if (relatedTable.primaryDisplay) {
|
if (relatedTable.primaryDisplay) {
|
||||||
viewFields.add(relatedTable.primaryDisplay)
|
viewFields.add(relatedTable.primaryDisplay)
|
||||||
|
@ -218,12 +228,12 @@ export async function buildSqlFieldList(
|
||||||
)
|
)
|
||||||
.forEach(([field]) => viewFields.add(field))
|
.forEach(([field]) => viewFields.add(field))
|
||||||
}
|
}
|
||||||
|
|
||||||
const fieldsToAdd = Array.from(viewFields)
|
|
||||||
.map(f => `${relatedTable.name}.${f}`)
|
|
||||||
.filter(f => !fields.includes(f))
|
|
||||||
fields.push(...fieldsToAdd)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fieldsToAdd = Array.from(viewFields)
|
||||||
|
.map(f => `${relatedTable.name}.${f}`)
|
||||||
|
.filter(f => !fields.includes(f))
|
||||||
|
fields.push(...fieldsToAdd)
|
||||||
}
|
}
|
||||||
|
|
||||||
return [...new Set(fields)]
|
return [...new Set(fields)]
|
||||||
|
|
Loading…
Reference in New Issue