97 |
function ExecuteScript($p_cn,$script) { |
function ExecuteScript($p_cn,$script) { |
98 |
$hf=fopen($script,'r'); |
$hf=fopen($script,'r'); |
99 |
$sql=""; |
$sql=""; |
100 |
|
$flag_function=false; |
101 |
while (!feof($hf)) { |
while (!feof($hf)) { |
102 |
$buffer=fgets($hf); |
$buffer=fgets($hf); |
103 |
|
$buffer=str_replace ("$","\$",$buffer); |
104 |
|
print $buffer."<br>"; |
105 |
// comment are not execute |
// comment are not execute |
106 |
if ( substr($buffer,0,2) == "--" ) { |
if ( substr($buffer,0,2) == "--" ) { |
107 |
//echo "comment $buffer"; |
//echo "comment $buffer"; |
112 |
//echo "Blank $buffer"; |
//echo "Blank $buffer"; |
113 |
Continue; |
Continue; |
114 |
} |
} |
115 |
|
if ( strpos($buffer,"create function")===0 ) { |
116 |
|
echo "found a function"; |
117 |
|
$flag_function=true; |
118 |
|
$sql=$buffer; |
119 |
|
continue; |
120 |
|
} |
121 |
// No semi colon -> multiline command |
// No semi colon -> multiline command |
122 |
if ( strpos($buffer,';') == false ) { |
if ( $flag_function== false && strpos($buffer,';') == false ) { |
123 |
$sql.=$buffer; |
$sql.=$buffer; |
124 |
continue; |
continue; |
125 |
} |
} |
126 |
// cut the semi colon |
if ( $flag_function ) { |
127 |
$buffer=str_replace (';','',$buffer); |
if ( strpos($buffer, "language plpgsql") == false ) { |
128 |
|
$sql.=$buffer; |
129 |
|
continue; |
130 |
|
} |
131 |
|
} else { |
132 |
|
// cut the semi colon |
133 |
|
$buffer=str_replace (';','',$buffer); |
134 |
|
} |
135 |
$sql.=$buffer; |
$sql.=$buffer; |
136 |
ExecSql($p_cn,$sql); |
if ( ExecSql($p_cn,$sql) == false ) { |
137 |
|
Rollback($p_cn); |
138 |
|
print "ERROR : $sql"; |
139 |
|
break; |
140 |
|
} |
141 |
$sql=""; |
$sql=""; |
142 |
|
$flag_function=false; |
143 |
|
print "<hr>"; |
144 |
} // while (feof) |
} // while (feof) |
145 |
fclose($hf); |
fclose($hf); |
146 |
} |
} |
296 |
|
|
297 |
for ($e=0;$e < $MaxDossier;$e++) { |
for ($e=0;$e < $MaxDossier;$e++) { |
298 |
$db_row=pg_fetch_array($Resdossier,$e); |
$db_row=pg_fetch_array($Resdossier,$e); |
|
echo "Patching ".$db_row['dos_name']."<hr>"; |
|
299 |
$db=DbConnect($db_row['dos_id'],'dossier'); |
$db=DbConnect($db_row['dos_id'],'dossier'); |
300 |
|
echo "Patching ".$db_row['dos_name']." from the version ".GetVersion($db)."<hr>"; |
301 |
|
|
302 |
if ( GetVersion($db) <= 4 ) { |
if ( GetVersion($db) <= 4 ) { |
303 |
ExecuteScript($db,'sql/patch/upgrade4.sql'); |
ExecuteScript($db,'sql/patch/upgrade4.sql'); |
304 |
|
|