Commit 97795760 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Purge du owner

parent 8f7e92a7
Loading
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -72,7 +72,9 @@ class TriggerManager extends AbstractManager implements TriggerManagerInterface,
            $data[$r['name']]['definition'] .= $r['ddl'];
        }
        foreach ($data as $name => $d) {
            $data[$name]['definition'] = $this->purger($d['definition'], false);
            $def = $this->purger($d['definition'], false);
            $def = $this->purgeOwner($def, $d['name']);
            $data[$name]['definition'] = $def;
        }

        return $data;
@@ -80,6 +82,25 @@ class TriggerManager extends AbstractManager implements TriggerManagerInterface,



    function purgeOwner(string $ddl, string $name): string
    {
        $np = strpos($ddl, '."'.$name.'"');
        if (false !== $np && 0 === strpos($ddl,'CREATE OR REPLACE TRIGGER "')){
            $owner = substr($ddl, 27, $np-28);
            $ddl = str_replace('"'.$owner.'".', '', $ddl);
        }

        $np = strpos($ddl, '.'.$name);
        if (false !== $np && 0 === strpos($ddl,'CREATE OR REPLACE TRIGGER ')){
            $owner = substr($ddl, 26, $np-26);
            $ddl = str_replace($owner.'.', '', $ddl);
        }

        return $ddl;
    }



    public function create(array $data): void
    {
        if ($this->sendEvent()->getReturn('no-exec')) return;