Error after upgrade

From: "Paul Houselander" <housey(at)sme-ecom(dot)co(dot)uk>
To: <pgsql-general(at)postgresql(dot)org>
Subject: Error after upgrade
Date: 2008-01-28 11:37:03
Message-ID: FIEEKDEHFMGPNODJNFGFEEHHCEAA.housey@sme-ecom.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi

Im in the process of moving an application that is currently using Postgres
7.4.8 to a new system running Postgres 8.1.9

Ive managed to use pg_dump to get all the data migrated across, however I
have an update script that causes an error on the new system but works on
the older one, I just cant seem to get to the bottom of it and was hoping
someone could point me the right way!

The script is pretty basic and uses Perl DBI to just update a record, an
extract is below

$domid = '288' ;
$sdate = '2008-01-24';
$uinctr = '1';
$uinsize = '1000';
$uinspam = '0';
$uinvir = '0';
$uoutctr = '1';
$uoutsize = '100';
$uoutspam = '0';
$uoutvir = '0';
$uname = 'paul';
$stattype = "W";
$statmode = "U";

$uweeklysqlu = "UPDATE stats_? SET
statdate=?,inctr=inctr+?,insize=insize+?,inspam=inspam+?,invir=invir+?,outct
r=outctr+?,outsize=outsize+?,outspam=outspam+?,outvir=outvir+? WHERE
account=? AND stattype=? AND statmode=? AND extract(week from
statdate)=extract(week from date ?) and extract(year from
statdate)=extract(year from date ?)";

$uweeklysqlu=$dbv->prepare($uweeklysqlu);

$uweeklysqlu->execute($domid,$sdate,$uinctr,$uinsize,$uinspam,$uinvir,$uoutc
tr,$uoutsize,$uoutspam,$uoutvir,$uname,$stattype,$statmode,$sdate,$sdate);

The above gets the error

"DBD::Pg::st execute failed: ERROR: syntax error at or near "$14" at
character 277"

when run against Postgres 8.1.9 but works against 7.4.8, ive tried the
script but substituting the variables in the prepare instead of execute and
it works i.e.

$uweeklysqlu1 = "UPDATE stats_$domid SET
statdate='$sdate',inctr=inctr+'$uinctr',insize=insize+'$uinsize',inspam=insp
am+'$uinspam',invir=invir+'$uinvir',outctr=outctr+'$uoutctr',outsize=outsize
+'$uoutsize',outspam=outspam+'$uoutspam',outvir=outvir+'$uoutvir' WHERE
account='$uname' AND stattype='$stattype' AND statmode='$statmode' AND
extract(week from statdate)=extract(week from date '$sdate') and
extract(year from statdate)=extract(year from date '$sdate')";

$uweeklysqlu=$dbv->prepare($uweeklysqlu);

$uweeklysqlu->execute;

I think its something very simple but I just cant seem to solve it?

Any ideals

Kind Regards

Paul

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Magnus Hagander 2008-01-28 11:45:16 Re: Is news.postgresql.org down?
Previous Message mljv 2008-01-28 11:19:11 Re: Very long execution time of "select nextval('..');"