Commit ef593a76 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Extraction de 2 HelperTrait (Oracle et Pg) pour factoriser du code...

Extraction de 2 HelperTrait (Oracle et Pg) pour factoriser du code potentiellement utile à tout Helper
parent 88548a92
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ Changelog
-----
- Suppression de la dépendance avec unicaen/app, et avec laminas/laminas-dependency-plugin.
- Prise en compte des microsecondes dans les dates de début/fin inscrites dans la table de logs et donc dans la durée d'exécution calculée (nécessite le type TIMESTAMP sous Oracle).
- Extraction de 2 HelperTrait (Oracle et Pg) pour factoriser du code potentiellement utile à tout Helper.
- [FIX] Le générateur SQL de la destination était utilisé aussi pour interroger la source, désormais la source a le sien propre.

7.1.0
+1 −1
Original line number Diff line number Diff line
@@ -107,5 +107,5 @@ EOT;
        return $sql;
    }

    abstract protected function generateSQLForDateTimeColumnValueInsert(DateTime $datetime): string;
    abstract public function generateSQLForDateTimeColumnValueInsert(DateTime $datetime): string;
}
 No newline at end of file
+27 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenDbImport\CodeGenerator\Oracle\Helper;

use DateTime;

/**
 * Trait destiné à regrouper les syntaxes d'Oracle pour réaliser des opérations **basiques**,
 * réutilisables dans plusieurs helpers.
 */
trait HelperTrait
{
    public function generateSQLForSequenceNextVal(string $sequenceName): string
    {
        return $sequenceName . '.nextval';
    }

    public function generateSQLForCastToString(string $columnName): string
    {
        return $columnName . "||''";
    }

    public function generateSQLForDateTimeColumnValueInsert(DateTime $datetime): string
    {
        return sprintf("to_timestamp('%s', 'YYYY-MM-DD HH24:MI:SS.FF')", $datetime->format("Y-m-d H:i:s.u"));
    }
}
 No newline at end of file
+2 −5
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ use UnicaenDbImport\Platforms\OraclePlatform;
 */
class LogTableHelper extends \UnicaenDbImport\CodeGenerator\Helper\LogTableHelper
{
    use HelperTrait;

    /**
     * @var OraclePlatform
     */
@@ -26,9 +28,4 @@ class LogTableHelper extends \UnicaenDbImport\CodeGenerator\Helper\LogTableHelpe
    {
        $this->platform = new OraclePlatform();
    }

    protected function generateSQLForDateTimeColumnValueInsert(DateTime $datetime): string
    {
        return sprintf("to_timestamp('%s', 'YYYY-MM-DD HH24:MI:SS.FF')", $datetime->format("Y-m-d H:i:s.u"));
    }
}
 No newline at end of file
+2 −17
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ use UnicaenDbImport\Platforms\OraclePlatform;
 */
class TableHelper extends \UnicaenDbImport\CodeGenerator\Helper\TableHelper
{
    use HelperTrait;

    /**
     * Helper constructor.
     */
@@ -79,23 +81,6 @@ class TableHelper extends \UnicaenDbImport\CodeGenerator\Helper\TableHelper
        return $markup;
    }

    /**
     * @param string $sequenceName
     * @return string
     */
    public function generateSQLForSequenceNextVal(string $sequenceName): string
    {
        return $sequenceName . '.nextval';
    }

    /**
     * @inheritDoc
     */
    public function generateSQLForCastToString(string $columnName): string
    {
        return $columnName . "||''";
    }

    protected function generateSQLForViewDropBeforeUpdate($name): ?string
    {
        return null;
Loading