Setting a hard limit on how many rows can be returned by the SQL plus queries.

This commit is contained in:
mike12345567 2021-10-15 17:52:06 +01:00
parent 6049acd126
commit fd894897ca
3 changed files with 792 additions and 20 deletions

View File

@ -15,7 +15,7 @@ const apiCall =
if (resp.status === 403) {
removeCookie(Cookies.Auth)
// reload after removing cookie, go to login
if (!url.includes("self")) {
if (!url.includes("self") && !url.includes("login")) {
location.reload()
}
}

View File

@ -98,7 +98,9 @@ function addFilters(
}
function addRelationships(
knex: Knex,
query: KnexQuery,
fields: string | string[],
fromTable: string,
relationships: RelationshipsJson[] | undefined
): KnexQuery {
@ -114,7 +116,7 @@ function addRelationships(
query = query.leftJoin(
toTable,
`${fromTable}.${from}`,
`${relationship.tableName}.${to}`
`${toTable}.${to}`
)
} else {
const throughTable = relationship.through
@ -130,7 +132,7 @@ function addRelationships(
.leftJoin(toTable, `${toTable}.${toPrimary}`, `${throughTable}.${to}`)
}
}
return query
return query.limit(BASE_LIMIT)
}
function buildCreate(
@ -199,7 +201,7 @@ function buildRead(knex: Knex, json: QueryJson, limit: number): KnexQuery {
[tableName]: query,
}).select(selectStatement)
// handle joins
return addRelationships(preQuery, tableName, relationships)
return addRelationships(knex, preQuery, selectStatement, tableName, relationships)
}
function buildUpdate(

File diff suppressed because it is too large Load Diff