Re: Query doesn't work anymore on 7.2

From: Thomas Lockhart <thomas(at)fourpalms(dot)org>
To: ricardorsj(at)uol(dot)com(dot)br
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Query doesn't work anymore on 7.2
Date: 2002-02-26 13:36:52
Message-ID: 3C7B8F74.9497885B@fourpalms.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

> Hello there. I've just upgraded to pgsql 7.2 on netbsd and one of my programs stopped working because of a parser error:
> carteirinhas=# insert into registros values (1234,'Teste','A','Teste',date('now'),time('now'),false);
> ERROR: parser: parse error at or near "'"
> Although it's clear that this program was done in 10 minutes, it was working on 7.1.3. Has something changed or it seems to be a bug in 7.2's parser?

You also upgraded in 10 minutes ;)

The release notes explicitly mention syntax changes to support SQL9x
date/time precision features. In particular, "time(p)" is now not
recognized as a function call but rather as a specifier for the type
"time" with a precision of "p". You can rewrite your query using
standard SQL9x syntax (which was also available in versions prior to
7.2):

insert into registros
values (1234,'Teste','A','Teste',date 'now',time 'now',false);

In general, you know and I know that PostgreSQL uses functions of the
form "type(src)" to do type conversions, but it is usually better to use
standard SQL to actually write your queries. The two forms of literal
coersion for a string to a type which SQL9x defines are:

type 'string'
cast('string' as type)

where SQL9x defines the first form as applying to date/time literals
only while PostgreSQL extends this to all data types.

hth

- Thomas

In response to

Browse pgsql-general by date

  From Date Subject
Next Message ricardorsj 2002-02-26 14:07:07 Re: Query doesn't work anymore on 7.2
Previous Message Alexey Borzov 2002-02-26 13:31:02 trying to use contrib/rserv...