public function insertSlug($connection)
 {
     if (!isset($connection)) {
         $connection = QubitTransactionFilter::getConnection(QubitObject::DATABASE_NAME);
     }
     if (isset($this->slug)) {
         $statement = $connection->prepare('
     INSERT INTO ' . QubitSlug::TABLE_NAME . ' (' . QubitSlug::OBJECT_ID . ', ' . QubitSlug::SLUG . ')
     VALUES (?, ?)');
         // Unless it is set, get random, digit and letter slug
         if (1 > strlen($this->slug)) {
             $statement->execute(array($this->id, QubitSlug::getUnique($connection)));
             return $this;
         }
         // Compute unique slug adding contiguous numeric suffix
         $suffix = 2;
         do {
             try {
                 $statement->execute(array($this->id, $this->slug));
                 unset($suffix);
             } catch (PDOException $e) {
                 if (2 == $suffix) {
                     $this->slug .= "-{$suffix}";
                 } else {
                     $this->slug = preg_replace('/-\\d+$/', '', $this->slug, 1) . "-{$suffix}";
                 }
                 $suffix++;
             }
         } while (isset($suffix));
     }
     return $this;
 }