From 9fe41d488e38942fcd46658f61e7b3faf02601a3 Mon Sep 17 00:00:00 2001 From: Juraj Nemec <60540-poker10@users.noreply.drupalcode.org> Date: Wed, 6 Nov 2024 16:26:14 +0000 Subject: [PATCH 1/2] Replace GROUP_CONCAT on PostgreSQL --- commerce_pricelist.install | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/commerce_pricelist.install b/commerce_pricelist.install index 39663f1..7571a52 100644 --- a/commerce_pricelist.install +++ b/commerce_pricelist.install @@ -191,10 +191,18 @@ function commerce_pricelist_update_8205() { */ function commerce_pricelist_update_8206() { // Check if we have duplicate price list items for the same product/quantity. - $query = \Drupal::database()->select('commerce_pricelist_item', 'cpi'); + $database = \Drupal::database(); + $query = $database->select('commerce_pricelist_item', 'cpi'); $query->fields('cpi', ['price_list_id', 'purchasable_entity', 'quantity', 'price__currency_code']); $query->addExpression('COUNT(*)', 'cnt'); - $query->addExpression('GROUP_CONCAT(cpi.id)', 'ids'); + + // GROUP_CONCAT is not supported on PostgreSQL. + if ($database->driver() == 'pgsql') { + $query->addExpression("STRING_AGG(cpi.id, ',')", 'ids'); + } else { + $query->addExpression('GROUP_CONCAT(cpi.id)', 'ids'); + } + $query ->groupBy('type') ->groupBy('price_list_id') -- GitLab From 25528046a0ca78c73d4dedc6d6d48329ccf2067d Mon Sep 17 00:00:00 2001 From: Juraj Nemec <60540-poker10@users.noreply.drupalcode.org> Date: Fri, 8 Nov 2024 21:05:42 +0000 Subject: [PATCH 2/2] STRING_AGG needs a text as a first parameter --- commerce_pricelist.install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commerce_pricelist.install b/commerce_pricelist.install index 7571a52..3ca1ddd 100644 --- a/commerce_pricelist.install +++ b/commerce_pricelist.install @@ -198,7 +198,7 @@ function commerce_pricelist_update_8206() { // GROUP_CONCAT is not supported on PostgreSQL. if ($database->driver() == 'pgsql') { - $query->addExpression("STRING_AGG(cpi.id, ',')", 'ids'); + $query->addExpression("STRING_AGG(cpi.id::text, ',')", 'ids'); } else { $query->addExpression('GROUP_CONCAT(cpi.id)', 'ids'); } -- GitLab