diff --git a/src/Storage/IntColumnHandler.php b/src/Storage/IntColumnHandler.php index 6f3b339..d77e77c 100644 --- a/src/Storage/IntColumnHandler.php +++ b/src/Storage/IntColumnHandler.php @@ -7,7 +7,7 @@ use Drupal\Core\Database\Connection; /** * Per database implementation of denormalizing into integer columns. */ -class IntColumnHandler implements IntColumnHandlerInterface { +abstract class IntColumnHandler implements IntColumnHandlerInterface { /** * The database connection. @@ -60,6 +60,9 @@ class IntColumnHandler implements IntColumnHandlerInterface { $prefixed_name = $this->connection->prefixTables('{' . $table . '}'); foreach (['update', 'insert'] as $op) { $trigger = $prefixed_name . '_der_' . $op; + if (strlen($trigger) > 64) { + $trigger = substr($trigger, 0, 56) . substr(hash('sha256', $trigger), 0, 8); + } $this->connection->query("DROP TRIGGER IF EXISTS $trigger"); if ($body) { $this->createTrigger($trigger, $op, $prefixed_name, $body); @@ -80,9 +83,7 @@ class IntColumnHandler implements IntColumnHandlerInterface { * @param string $column * The name of the target_id column. */ - protected function createBody($column_int, $column) { - throw new \LogicException('Not implemented'); - } + abstract protected function createBody($column_int, $column); /** * Actually create the trigger. @@ -96,9 +97,7 @@ class IntColumnHandler implements IntColumnHandlerInterface { * @param string $body * The body of the trigger. */ - protected function createTrigger($trigger, $op, $prefixed_name, $body) { - - } + abstract protected function createTrigger($trigger, $op, $prefixed_name, $body); /** * Removes the trigger.