diff --git a/packages/backend-core/src/db/instrumentation.ts b/packages/backend-core/src/db/instrumentation.ts index aa2ac424ae..5a05a93270 100644 --- a/packages/backend-core/src/db/instrumentation.ts +++ b/packages/backend-core/src/db/instrumentation.ts @@ -146,4 +146,11 @@ export class DDInstrumentedDatabase implements Database { return this.db.getIndexes(...args) }) } + + sql(sql: string): Promise { + return tracer.trace("db.sql", span => { + span?.addTags({ db_name: this.name }) + return this.db.sql(sql) + }) + } } diff --git a/packages/server/src/api/controllers/row/internalSql.ts b/packages/server/src/api/controllers/row/internalSql.ts index d46653588e..accb573be6 100644 --- a/packages/server/src/api/controllers/row/internalSql.ts +++ b/packages/server/src/api/controllers/row/internalSql.ts @@ -145,7 +145,7 @@ export async function sqlSearch(ctx: UserCtx) { let sql = builder._query(request, { disableReturning: true, disablePreparedStatements: true, - }) + }) as string // quick hack for docIds sql = sql.replace(/`doc1`.`rowId`/g, "`doc1.rowId`") diff --git a/packages/server/src/db/linkedRows/LinkDocument.ts b/packages/server/src/db/linkedRows/LinkDocument.ts index cac4a9448b..8d25bbe93c 100644 --- a/packages/server/src/db/linkedRows/LinkDocument.ts +++ b/packages/server/src/db/linkedRows/LinkDocument.ts @@ -1,4 +1,4 @@ -import { generateLinkID } from "../utils" +import { generateLinkID, generateJunctionTableID } from "../utils" import { FieldType, LinkDocument } from "@budibase/types" /** diff --git a/packages/server/src/sdk/app/rows/search.ts b/packages/server/src/sdk/app/rows/search.ts index 16fa133f82..fc01324b14 100644 --- a/packages/server/src/sdk/app/rows/search.ts +++ b/packages/server/src/sdk/app/rows/search.ts @@ -1,17 +1,11 @@ -import { - Row, - SearchFilters, - SearchParams, - SortOrder, - SortType, -} from "@budibase/types" +import { Row, SearchFilters, SearchParams, SortOrder } from "@budibase/types" import { isExternalTableID } from "../../../integrations/utils" import * as internal from "./search/internal" import * as external from "./search/external" import { Format } from "../../../api/controllers/view/exporters" import { NoEmptyFilterStrings } from "../../../constants" -export { isValidFilter, removeEmptyFilters } from "../../../integrations/utils" +export { isValidFilter } from "../../../integrations/utils" export interface ViewParams { calculation: string diff --git a/packages/server/src/sdk/app/rows/search/internal.ts b/packages/server/src/sdk/app/rows/search/internal.ts index 3d86451741..7abb9898d5 100644 --- a/packages/server/src/sdk/app/rows/search/internal.ts +++ b/packages/server/src/sdk/app/rows/search/internal.ts @@ -135,7 +135,13 @@ export async function exportRows( rows = result } - let exportRows = cleanExportRows(rows, schema, format, columns, customHeaders) + let exportRows = sdk.rows.utils.cleanExportRows( + rows, + schema, + format, + columns, + customHeaders + ) if (format === Format.CSV) { return { fileName: "export.csv",