track used search terms to reduce slow downs

deepsource-autofix-76c6eb20
Dan Gowans 2023-02-22 14:32:12 -05:00
parent 816ea77749
commit 9fa374d8c5
2 changed files with 29 additions and 22 deletions

View File

@ -15,13 +15,14 @@ export function getLotNameWhereClause(lotName = '', lotNameSearchType, lotsTable
break;
}
default: {
const usedPieces = new Set();
const lotNamePieces = lotName.toLowerCase().split(' ');
for (const lotNamePiece of lotNamePieces) {
if (lotNamePiece === '') {
if (lotNamePiece === '' || usedPieces.has(lotNamePiece)) {
continue;
}
sqlWhereClause +=
' and instr(lower(' + lotsTableAlias + '.lotName), ?)';
usedPieces.add(lotNamePiece);
sqlWhereClause += ` and instr(lower(${lotsTableAlias}.lotName), ?)`;
sqlParameters.push(lotNamePiece);
}
}
@ -70,16 +71,16 @@ export function getOccupancyTimeWhereClause(occupancyTime, lotOccupanciesTableAl
export function getOccupantNameWhereClause(occupantName = '', tableAlias = 'o') {
let sqlWhereClause = '';
const sqlParameters = [];
if (occupantName !== '') {
const usedPieces = new Set();
const occupantNamePieces = occupantName.toLowerCase().split(' ');
for (const occupantNamePiece of occupantNamePieces) {
if (occupantNamePiece === '') {
if (occupantNamePiece === '' || usedPieces.has(occupantNamePiece)) {
continue;
}
usedPieces.add(occupantNamePiece);
sqlWhereClause += ` and (instr(lower(${tableAlias}.occupantName), ?) or instr(lower(${tableAlias}.occupantFamilyName), ?))`;
sqlParameters.push(occupantNamePiece, occupantNamePiece);
}
}
return {
sqlWhereClause,
sqlParameters

View File

@ -28,14 +28,18 @@ export function getLotNameWhereClause(
break
}
default: {
const usedPieces = new Set<string>()
const lotNamePieces = lotName.toLowerCase().split(' ')
for (const lotNamePiece of lotNamePieces) {
if (lotNamePiece === '') {
if (lotNamePiece === '' || usedPieces.has(lotNamePiece)) {
continue
}
sqlWhereClause +=
' and instr(lower(' + lotsTableAlias + '.lotName), ?)'
usedPieces.add(lotNamePiece)
sqlWhereClause += ` and instr(lower(${lotsTableAlias}.lotName), ?)`
sqlParameters.push(lotNamePiece)
}
}
@ -101,17 +105,19 @@ export function getOccupantNameWhereClause(
let sqlWhereClause = ''
const sqlParameters: unknown[] = []
if (occupantName !== '') {
const usedPieces = new Set<string>()
const occupantNamePieces = occupantName.toLowerCase().split(' ')
for (const occupantNamePiece of occupantNamePieces) {
if (occupantNamePiece === '') {
if (occupantNamePiece === '' || usedPieces.has(occupantNamePiece)) {
continue
}
usedPieces.add(occupantNamePiece)
sqlWhereClause += ` and (instr(lower(${tableAlias}.occupantName), ?) or instr(lower(${tableAlias}.occupantFamilyName), ?))`
sqlParameters.push(occupantNamePiece, occupantNamePiece)
}
}
return {
sqlWhereClause,