Omeka S3.0.1 module Ark error

Can you check if it is fixed in 3.17.2.3?

I have installed and used version 3.17.2.3 of the CleanUrl module.

And I get the same error :

Doctrine\DBAL\Exception\DriverException
An exception occurred while executing ‘SELECT value.value, MIN(value.resource_id), resource.resource_type, value.id FROM value value INNER JOIN resource resource ON resource.id = value.resource_id WHERE (value.property_id = 10) AND (value.type = “literal”) AND (value.value = ?) GROUP BY value.resource_id, resource.resource_type ORDER BY value.resource_id ASC, value.id ASC LIMIT 1’ with params [“ark:/67375/CG2hB4mjdd16”]: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘omekas_db.value.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

The version 3.17.3.3 of CleanUrl fixes this issue related to the database mysql.

Hi

I use the module BULK IMPORT in its version 3.3.27.0. I get the same error:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘omekadb.value.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by in /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:112
Stack trace:
#0 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(112): PDOStatement->execute()
#1 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1292): Doctrine\DBAL\Driver\PDOStatement->execute()
#2 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(478): Doctrine\DBAL\Connection->executeQuery()
#3 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(175): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->findResourcesFromValues()
#4 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(126): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->findResources()
#5 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/Bulk.php(839): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->__invoke()
#6 /www/omeka/modules/BulkImport/src/Processor/AbstractProcessor.php(299): BulkImport\Mvc\Controller\Plugin\Bulk->findResourcesFromIdentifiers()
#7 /www/omeka/modules/BulkImport/src/Processor/AbstractProcessor.php(484): BulkImport\Processor\AbstractProcessor->findResourcesFromIdentifiers()
#8 /www/omeka/modules/BulkImport/src/Processor/AbstractResourceProcessor.php(912): BulkImport\Processor\AbstractProcessor->fillId()
#9 /www/omeka/modules/BulkImport/src/Processor/ResourceProcessor.php(430): BulkImport\Processor\AbstractResourceProcessor->checkEntity()
#10 /www/omeka/modules/BulkImport/src/Processor/ItemProcessor.php(50): BulkImport\Processor\ResourceProcessor->checkEntity()
#11 /www/omeka/modules/BulkImport/src/Processor/AbstractResourceProcessor.php(248): BulkImport\Processor\ItemProcessor->checkEntity()
#12 /www/omeka/modules/BulkImport/src/Processor/ItemProcessor.php(34): BulkImport\Processor\AbstractResourceProcessor->process()
#13 /www/omeka/modules/BulkImport/src/Job/Import.php(53): BulkImport\Processor\ItemProcessor->process()
#14 /www/omeka/application/src/Job/DispatchStrategy/Synchronous.php(34): BulkImport\Job\Import->perform()
#15 /www/omeka/modules/Log/src/Job/Dispatcher.php(32): Omeka\Job\DispatchStrategy\Synchronous->send()
#16 /www/omeka/application/data/scripts/perform-job.php(66): Log\Job\Dispatcher->send()
#17 {main}

Next Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘omekadb.value.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by in /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
Stack trace:
#0 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(114): Doctrine\DBAL\Driver\PDO\Exception::new()
#1 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1292): Doctrine\DBAL\Driver\PDOStatement->execute()
#2 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(478): Doctrine\DBAL\Connection->executeQuery()
#3 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(175): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->findResourcesFromValues()
#4 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(126): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->findResources()
#5 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/Bulk.php(839): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->__invoke()
#6 /www/omeka/modules/BulkImport/src/Processor/AbstractProcessor.php(299): BulkImport\Mvc\Controller\Plugin\Bulk->findResourcesFromIdentifiers()
#7 /www/omeka/modules/BulkImport/src/Processor/AbstractProcessor.php(484): BulkImport\Processor\AbstractProcessor->findResourcesFromIdentifiers()
#8 /www/omeka/modules/BulkImport/src/Processor/AbstractResourceProcessor.php(912): BulkImport\Processor\AbstractProcessor->fillId()
#9 /www/omeka/modules/BulkImport/src/Processor/ResourceProcessor.php(430): BulkImport\Processor\AbstractResourceProcessor->checkEntity()
#10 /www/omeka/modules/BulkImport/src/Processor/ItemProcessor.php(50): BulkImport\Processor\ResourceProcessor->checkEntity()
#11 /www/omeka/modules/BulkImport/src/Processor/AbstractResourceProcessor.php(248): BulkImport\Processor\ItemProcessor->checkEntity()
#12 /www/omeka/modules/BulkImport/src/Processor/ItemProcessor.php(34): BulkImport\Processor\AbstractResourceProcessor->process()
#13 /www/omeka/modules/BulkImport/src/Job/Import.php(53): BulkImport\Processor\ItemProcessor->process()
#14 /www/omeka/application/src/Job/DispatchStrategy/Synchronous.php(34): BulkImport\Job\Import->perform()
#15 /www/omeka/modules/Log/src/Job/Dispatcher.php(32): Omeka\Job\DispatchStrategy\Synchronous->send()
#16 /www/omeka/application/data/scripts/perform-job.php(66): Log\Job\Dispatcher->send()
#17 {main}

Next Doctrine\DBAL\Exception\DriverException: An exception occurred while executing ‘SELECT CASE WHEN MIN(value.uri) <> “” THEN MIN(value.uri) ELSE MIN(value.value) END AS “identifier”, MIN(value.resource_id) AS “id”, COUNT(DISTINCT(value.resource_id)) AS “count” FROM value value LEFT JOIN resource resource ON value.resource_id = resource.id WHERE ((value.uri = ?) OR ((value.value = ?) AND (value.uri IS NULL OR value.uri = “”))) AND (value.property_id = ?) AND (resource.resource_type = ?) AND (value.uri <> “” OR value.value <> “”) GROUP BY value.value ORDER BY MIN(value.resource_id) ASC, value.id ASC’ with params [“ITEM2”, “ITEM2”, 10, “Omeka\Entity\Item”]:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘omekadb.value.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by in /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128
Stack trace:
#0 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(182): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException()
#1 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(159): Doctrine\DBAL\DBALException::wrapException()
#2 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2214): Doctrine\DBAL\DBALException::driverExceptionDuringQuery()
#3 /www/omeka/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1301): Doctrine\DBAL\Connection->handleExceptionDuringQuery()
#4 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(478): Doctrine\DBAL\Connection->executeQuery()
#5 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(175): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->findResourcesFromValues()
#6 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/FindResourcesFromIdentifiers.php(126): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->findResources()
#7 /www/omeka/modules/BulkImport/src/Mvc/Controller/Plugin/Bulk.php(839): BulkImport\Mvc\Controller\Plugin\FindResourcesFromIdentifiers->__invoke()
#8 /www/omeka/modules/BulkImport/src/Processor/AbstractProcessor.php(299): BulkImport\Mvc\Controller\Plugin\Bulk->findResourcesFromIdentifiers()
#9 /www/omeka/modules/BulkImport/src/Processor/AbstractProcessor.php(484): BulkImport\Processor\AbstractProcessor->findResourcesFromIdentifiers()
#10 /www/omeka/modules/BulkImport/src/Processor/AbstractResourceProcessor.php(912): BulkImport\Processor\AbstractProcessor->fillId()
#11 /www/omeka/modules/BulkImport/src/Processor/ResourceProcessor.php(430): BulkImport\Processor\AbstractResourceProcessor->checkEntity()
#12 /www/omeka/modules/BulkImport/src/Processor/ItemProcessor.php(50): BulkImport\Processor\ResourceProcessor->checkEntity()
#13 /www/omeka/modules/BulkImport/src/Processor/AbstractResourceProcessor.php(248): BulkImport\Processor\ItemProcessor->checkEntity()
#14 /www/omeka/modules/BulkImport/src/Processor/ItemProcessor.php(34): BulkImport\Processor\AbstractResourceProcessor->process()
#15 /www/omeka/modules/BulkImport/src/Job/Import.php(53): BulkImport\Processor\ItemProcessor->process()
#16 /www/omeka/application/src/Job/DispatchStrategy/Synchronous.php(34): BulkImport\Job\Import->perform()
#17 /www/omeka/modules/Log/src/Job/Dispatcher.php(32): Omeka\Job\DispatchStrategy\Synchronous->send()
#18 /www/omeka/application/data/scripts/perform-job.php(66): Log\Job\Dispatcher->send()
#19 {main}

It seems it works including a MIN(value.id) in line 413 in file BulkImport/src/Mvc/Controller/PluginFindResourcesFromIdentifiers.php

line 412            ->addOrderBy('MIN(value.resource_id)', 'ASC')
line 413            ->addOrderBy('MIN(value.id)', 'ASC');

But I am not sure if it has sense.

I have installed and used version 3.17.3.3 of the CleanUrl module.

And unfortunately, I still have the same error :

Doctrine\DBAL\Exception\DriverException
An exception occurred while executing ‘SELECT value.value, MIN(value.resource_id), resource.resource_type, value.id FROM value value INNER JOIN resource resource ON resource.id = value.resource_id WHERE (value.property_id = 10) AND (value.type = “literal”) AND (value.value = ?) GROUP BY value.resource_id, resource.resource_type ORDER BY value.resource_id ASC, value.id ASC LIMIT 1’ with params [“ark:/67375/CG2hB4mjdd16”]: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘omekas_db.value.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

I think it’s a good fix and included it in last commit (a new version will be released next week).

Yes, the code is the same because the function is the same (find a resource from an identifier) in Clean Url and Bulk Import, but there are some differences to manage options for various use cases.

Can you try the last commit (will be released if fixed) here ? (or just copy the last version of the file.

This topic was automatically closed 250 days after the last reply. New replies are no longer allowed.