Proper fix, making sure that low level handling of JSON column types correctly handles aliasing.

This commit is contained in:
mike12345567 2024-03-19 16:24:15 +00:00
parent 612efba370
commit 6a0e46a0a6
2 changed files with 8 additions and 13 deletions

View File

@ -705,10 +705,13 @@ class SqlQueryBuilder extends SqlTableQueryBuilder {
if (!this._isJsonColumn(field)) {
continue
}
const fullName = `${table.name}.${name}`
for (let row of results) {
if (typeof row[fullName] === "string") {
row[fullName] = JSON.parse(row[fullName])
const columnNames = Object.keys(row)
const fullColumnName = columnNames.find(
column => column.includes(`.${name}`) || column === name
)
if (fullColumnName && typeof row[fullColumnName] === "string") {
row[fullColumnName] = JSON.parse(row[fullColumnName])
}
if (typeof row[name] === "string") {
row[name] = JSON.parse(row[name])

View File

@ -68,16 +68,8 @@ export async function processOutputBBReferences(
return value || undefined
}
let ids: string[] = []
if (typeof value === "string") {
try {
ids = JSON.parse(value)
} catch (err) {
ids = value.split(",").filter(id => !!id)
}
} else if (Array.isArray(value)) {
ids = value
}
const ids =
typeof value === "string" ? value.split(",").filter(id => !!id) : value
switch (subtype) {
case FieldSubtype.USER: