basesite-shared-grid-lib 21.0.0-beta.5 → 21.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -239,7 +239,7 @@ class OdataProvider {
239
239
  query = query + '&' + customFilters.join('and');
240
240
  }
241
241
  }
242
- query = query.replace('and$filter=', '&filter=');
242
+ query = query.replace('and$filter=', '&$filter=');
243
243
  return query;
244
244
  };
245
245
  /**
@@ -317,7 +317,15 @@ class OdataProvider {
317
317
  if (!col.values || col.values.length === 0) {
318
318
  return '';
319
319
  }
320
- const equalsClauses = col.values.map((v) => me.odataOperator.equalsStr(colName, `'${me.encode(v)}'`, isCaseSensitiveStringFilter));
320
+ // Fill-cell / set-filter columns are always equality-matched against
321
+ // a fixed list of backend-provided values, so the casing on both
322
+ // sides is already known to match. Skip the tolower() wrap that the
323
+ // generic string operators apply — wrapping the column in tolower()
324
+ // forces a full scan because LOWER(col) cannot use any index, and
325
+ // SQL Server's default collation is already case-insensitive.
326
+ // Resulting predicate: `col eq 'Value'` (single) or
327
+ // `(col eq 'V1' or col eq 'V2')` (multi).
328
+ const equalsClauses = col.values.map((v) => me.odataOperator.equals(colName, `'${me.encode(v)}'`));
321
329
  return equalsClauses.length === 1
322
330
  ? equalsClauses[0]
323
331
  : `(${equalsClauses.join(' or ')})`;