fixed filtering in json columns for postgres #889

This commit is contained in:
SPRINX0\prochazka
2024-09-17 16:42:07 +02:00
parent 5c58c35a64
commit 677f83cc4b
4 changed files with 16 additions and 10 deletions

View File

@@ -225,7 +225,7 @@ export abstract class GridDisplay {
conditions.push(
_.cloneDeepWith(condition, (expr: Expression) => {
if (expr.exprType == 'placeholder') {
return this.createColumnExpression(column, { alias: column.sourceAlias });
return this.createColumnExpression(column, { alias: column.sourceAlias }, undefined, 'filter');
}
// return {
// exprType: 'column',
@@ -253,7 +253,7 @@ export abstract class GridDisplay {
orCondition.conditions.push(
_.cloneDeepWith(condition, (expr: Expression) => {
if (expr.exprType == 'placeholder') {
return this.createColumnExpression(column, { alias: 'basetbl' });
return this.createColumnExpression(column, { alias: 'basetbl' }, undefined, 'filter');
}
})
);
@@ -570,10 +570,10 @@ export abstract class GridDisplay {
processReferences(select: Select, displayedColumnInfo: DisplayedColumnInfo, options) {}
createColumnExpression(col, source, alias?) {
createColumnExpression(col, source, alias?, purpose: 'view' | 'filter' = 'view') {
let expr = null;
if (this.dialect.createColumnViewExpression) {
expr = this.dialect.createColumnViewExpression(col.columnName, col.dataType, source, alias);
expr = this.dialect.createColumnViewExpression(col.columnName, col.dataType, source, alias, purpose);
if (expr) {
return expr;
}
@@ -595,7 +595,7 @@ export abstract class GridDisplay {
name: _.pick(name, ['schemaName', 'pureName']),
alias: 'basetbl',
},
columns: columns.map(col => this.createColumnExpression(col, { alias: 'basetbl' })),
columns: columns.map(col => this.createColumnExpression(col, { alias: 'basetbl' }, undefined, 'view')),
orderBy: this.driver?.requiresDefaultSortCriteria
? [
{

View File

@@ -63,7 +63,7 @@ export class TableGridDisplay extends GridDisplay {
? this.table.primaryKey.columns.map(x => x.columnName)
: this.table.columns.map(x => x.columnName);
}
if (this.config.isFormView) {
this.addAllExpandedColumnsToSelected = true;
this.hintBaseColumns = this.formColumns;
@@ -287,7 +287,7 @@ export class TableGridDisplay extends GridDisplay {
for (const column of columns) {
if (this.addAllExpandedColumnsToSelected || this.config.addedColumns.includes(column.uniqueName)) {
select.columns.push(
this.createColumnExpression(column, { name: column, alias: parentAlias }, column.uniqueName)
this.createColumnExpression(column, { name: column, alias: parentAlias }, column.uniqueName, 'view')
);
displayedColumnInfo[column.uniqueName] = {
...column,