Skip to content

Commit 47d0cc7

Browse files
QueryColumnsProvider: Quote the reserved key of pgsql in function param
1 parent 10895f9 commit 47d0cc7

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

library/Icingadb/Data/QueryColumnsProvider.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use ipl\Orm\Relation\HasOne;
2626
use ipl\Orm\Resolver;
2727
use ipl\Orm\UnionModel;
28+
use ipl\Sql\Adapter\Pgsql;
2829
use ipl\Sql\Expression;
2930
use ipl\Sql\Select;
3031
use ipl\Stdlib\BaseFilter;
@@ -404,6 +405,11 @@ public function queryCustomvarConfig(Filter\Rule $filter): Select
404405
}
405406
}
406407

408+
$quotedUser = null;
409+
if ($this->getDb()->getAdapter() instanceof Pgsql) {
410+
$quotedUser = $this->getDb()->getAdapter()->quoteIdentifier('user');
411+
}
412+
407413
$scalarQueries = [];
408414
$aggregates = ['flatname'];
409415
foreach ($resolver->getRelations($customVars->getModel()) as $name => $relation) {
@@ -424,6 +430,10 @@ public function queryCustomvarConfig(Filter\Rule $filter): Select
424430
);
425431
}
426432

433+
if ($quotedUser && $name === 'user') {
434+
$name = $quotedUser;
435+
}
436+
427437
$aggregates[$name] = new Expression("MAX($name)");
428438
$scalarQueries[$name] = $select
429439
->resetColumns()->columns(new Expression('1'))
@@ -456,6 +466,10 @@ public function queryCustomvarConfig(Filter\Rule $filter): Select
456466
->groupBy('flatname')
457467
->limit(Suggestions::DEFAULT_LIMIT);
458468
foreach ($scalarQueries as $name => $_) {
469+
if ($quotedUser && $name === 'user') {
470+
$name = $quotedUser;
471+
}
472+
459473
$outerQuery->orHaving("MAX($name) = 1");
460474
}
461475

0 commit comments

Comments
 (0)