diff --git a/.changeset/eighty-foxes-look.md b/.changeset/eighty-foxes-look.md new file mode 100644 index 00000000..75360e02 --- /dev/null +++ b/.changeset/eighty-foxes-look.md @@ -0,0 +1,5 @@ +--- +"@hyperdx/app": patch +--- + +fix: differentiate map indexing vs array indexing diff --git a/packages/app/src/utils.ts b/packages/app/src/utils.ts index f1d2cab9..e20b5b1d 100644 --- a/packages/app/src/utils.ts +++ b/packages/app/src/utils.ts @@ -892,7 +892,14 @@ export const mergePath = (path: string[], jsonColumns: string[] = []) => { .join('.'), ) .join('.')}` - : `${key}['${rest.join("']['")}']`; + : `${key}${rest + .map(v => { + const asNumber = Number(v); + const isArrayIndex = Number.isInteger(asNumber) && asNumber >= 0; + // ClickHouse arrays are 1-based, but flattened data uses 0-based indices + return isArrayIndex ? `[${asNumber + 1}]` : `['${v}']`; + }) + .join('')}`; }; const _useTry = (fn: () => T): [null | Error | unknown, null | T] => {