Обсуждение: "=" or ":=" ?
Hello,
I'm trying to optimize assign_vertex_id() function provided by
pgRouting/PostGIS. In this function, I can see :
DECLARE
points record;
i record;
source_id int;
target_id int;
pre varchar;
post varchar;
srid integer;
BEGIN
BEGIN
DROP TABLE vertices_tmp;
EXCEPTION
WHEN UNDEFINED_TABLE THEN
END;
EXECUTE 'CREATE TABLE vertices_tmp (id serial)';
FOR i IN EXECUTE 'SELECT srid FROM geometry_columns WHERE
f_table_name='''|| quote_ident(geom_table)||'''' LOOP
END LOOP;
srid := i.srid;
EXECUTE 'SELECT addGeometryColumn(''vertices_tmp'', ''the_geom'',
'||srid||', ''POINT'', 2)';
CREATE INDEX vertices_tmp_idx ON vertices_tmp USING
GIST (the_geom);
pre = '';
post = '';
I don't understand last assignations. In pgsql documentation, ther is
written that all assignations have to be written with ":=", not with
"=". What is the difference between "=" and ":=" ? I don't find any
information about "=".
Regards,
JKB
BERTRAND Joël wrote: > I don't understand last assignations. In pgsql documentation, ther is > written that all assignations have to be written with ":=", not with > "=". What is the difference between "=" and ":=" ? I don't find any > information about "=". It's exactly the same. := is the documented way, but = is also accepted and behaves identically. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
=?ISO-8859-1?Q?BERTRAND_Jo=EBl?= <joel.bertrand@systella.fr> writes:
> What is the difference between "=" and ":=" ?
None; plpgsql accepts either for assignment.
regards, tom lane
Tom Lane wrote:
> =?ISO-8859-1?Q?BERTRAND_Jo=EBl?= <joel.bertrand@systella.fr> writes:
>> What is the difference between "=" and ":=" ?
>
> None; plpgsql accepts either for assignment.
Thank you for your answer. I suggest to add a note in documentation ;-)
Regards,
JKB
On Thu, 2008-02-28 at 20:11 +0100, BERTRAND Joël wrote:
> Tom Lane wrote:
> > =?ISO-8859-1?Q?BERTRAND_Jo=EBl?= <joel.bertrand@systella.fr> writes:
> >> What is the difference between "=" and ":=" ?
> >
> > None; plpgsql accepts either for assignment.
>
> Thank you for your answer. I suggest to add a note in documentation ;-)
I think that it is undocumented on purpose.
"=" in SQL is generally for testing equality, and having one operator
mean two completely different things can be confusing. Therefore, ":="
is encouraged.
Regards,
Jeff Davis