diff --git a/commerce_pricelist.install b/commerce_pricelist.install index 39663f1750c3127606d2f9059babadd63e355f64..3ca1dddb8b7878fe844d5b588c90596c3f3411d4 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::text, ',')", 'ids'); + } else { + $query->addExpression('GROUP_CONCAT(cpi.id)', 'ids'); + } + $query ->groupBy('type') ->groupBy('price_list_id')