Fix: Error in creating function with postgresql

This commit is contained in:
Laurent Destailleur 2010-07-20 21:14:42 +00:00
parent 99e5f46afb
commit f999884397
3 changed files with 18 additions and 11 deletions

View File

@ -201,7 +201,7 @@ if ($_POST["action"] == "set")
}
}
}
// Force https
$_POST["main_force_https"] = ((isset($_POST["main_force_https"]) && $_POST["main_force_https"] == "on")?'1':'0');
@ -356,7 +356,7 @@ if ($_POST["action"] == "set")
print $langs->trans("DatabaseCreation").' : ';
print $dolibarr_main_db_name;
print '</td>';
print '<td>'.$langs->trans("Error").' '.$db->lasterrno().'</td></tr>';
print '<td>'.$langs->trans("Error").' '.$db->lasterrno().'<br>'.$db->lasterror().'</td></tr>';
// Affiche aide diagnostique
print '<tr><td colspan="2"><br>';
@ -365,7 +365,7 @@ if ($_POST["action"] == "set")
print '<br>';
print '</td></tr>';
dolibarr_install_syslog('etape1: Failed to create database '.$dolibarr_main_db_name.' '.$db->lasterrno(), LOG_ERR);
dolibarr_install_syslog('etape1: Failed to create database '.$dolibarr_main_db_name.' '.$db->lasterrno().' '.$db->lasterror(), LOG_ERR);
$error++;
}
$db->close();
@ -562,7 +562,7 @@ function write_conf_file($conffile)
/* Authentication */
fputs($fp, '$dolibarr_main_authentication=\'dolibarr\';');
fputs($fp,"\n");
fputs($fp, '$dolibarr_main_force_https=\''.$_POST["main_force_https"].'\';');
fputs($fp,"\n");

View File

@ -388,14 +388,14 @@ if ($_POST["action"] == "set")
$buf = fgets($fp, 4096);
if (substr($buf, 0, 2) <> '--')
{
$buffer .= $buf;
$buffer .= $buf."§";
}
}
fclose($fp);
}
//$buffer=preg_replace('/;\';/',";'§",$buffer);
// Si plusieurs requetes, on boucle sur chaque
$buffer=preg_replace('/;\';/',";'§",$buffer);
// If several requests, we loop on each of them
$listesql=explode('§',$buffer);
foreach ($listesql as $buffer)
{
@ -403,6 +403,7 @@ if ($_POST["action"] == "set")
if ($buffer)
{
dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG);
print "<!-- Insert line : ".$buffer."<br>-->\n";
$resql=$db->query($buffer);
if ($resql)
{
@ -411,14 +412,15 @@ if ($_POST["action"] == "set")
}
else
{
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS'
|| $db->errno() == 'DB_ERROR_KEY_NAME_ALREADY_EXISTS')
{
// print "<tr><td>Insertion ligne : $buffer</td><td>
//print "Insert line : ".$buffer."<br>\n";
}
else
{
$ok = 0;
print $langs->trans("ErrorSQL")." : ".$db->errno()." - '$buffer' - ".$db->lastqueryerror()."<br>";
print $langs->trans("ErrorSQL")." : ".$db->errno()." - '".$buffer."'<br>\n";
}
}
}

View File

@ -1,5 +1,6 @@
-- ============================================================================
-- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
-- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
-- Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net>
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@ -18,6 +19,9 @@
-- $Id$
-- ============================================================================
CREATE LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION UNIX_TIMESTAMP(TIMESTAMP WITHOUT TIME ZONE) RETURNS BIGINT LANGUAGE SQL IMMUTABLE STRICT AS 'SELECT EXTRACT(EPOCH FROM $1)::bigint;';
CREATE OR REPLACE FUNCTION UNIX_TIMESTAMP(TIMESTAMP WITH TIME ZONE) RETURNS BIGINT LANGUAGE SQL IMMUTABLE STRICT AS 'SELECT EXTRACT(EPOCH FROM $1)::bigint;';
@ -33,6 +37,7 @@ CREATE OR REPLACE FUNCTION MONTH(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER AS $$
CREATE OR REPLACE FUNCTION MONTH(DATE) RETURNS INTEGER AS $$ SELECT EXTRACT(MONTH FROM $1)::INTEGER; $$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DAY(TIMESTAMP without TIME ZONE) RETURNS INTEGER AS $$ SELECT EXTRACT(DAY FROM $1)::INTEGER; $$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION DAY(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER AS $$ SELECT EXTRACT(DAY FROM $1)::INTEGER; $$ LANGUAGE SQL STABLE;