Re: remove undocumented assign syntax from plpgsql doc - Mailing list pgsql-docs

From Pavel Stehule
Subject Re: remove undocumented assign syntax from plpgsql doc
Date
Msg-id CAFj8pRAyAOi9ZJbxMBPkW+r03n+zQm6idojWWH2n17h8NGyXBA@mail.gmail.com
Whole thread Raw
In response to Re: remove undocumented assign syntax from plpgsql doc  (Bruce Momjian <bruce@momjian.us>)
Responses Re: remove undocumented assign syntax from plpgsql doc  (Bruce Momjian <bruce@momjian.us>)
List pgsql-docs



2014/1/12 Bruce Momjian <bruce@momjian.us>
On Sat, Jan 11, 2014 at 10:06:27PM +0100, Pavel Stehule wrote:
>
>
>
> 2014/1/11 Tom Lane <tgl@sss.pgh.pa.us>
>
>     Bruce Momjian <bruce@momjian.us> writes:
>     > Oh, I think you are right.  I have reverted the patch.  Attached is
>     > proposed documentation for '='.
>
>     Meh.  Variable initialization is only one of multiple cases (assignment,
>     GET DIAGNOSTICS; maybe others, I've not examined the grammar).  Also,
>     if we do it like this, we're implying that both := and = are equally
>     preferred, which might not be the impression we want to leave.
>
>
> GET DIAGNOSTICS is defined by standard - and there "=" should be allowed only -
> although we allow ":=" too. It is a embedded SQL statement - although it is
> implemented as plpgsql statement.

OK, docs updated for that.  I assume OPEN and FOR also can take := or =,
right?

> Same situation is with UPDATE statement - we don't allow ":=" there.
>  
>
>
>     I'd be a bit inclined to just stick a NOTE somewhere saying that "="
>     can be used in place of ":=" for assignment.
>
>
> ok
>
> If we accept it and we close this topic, then following comment should be
> removed
>
> assign_operator : '='   /* not documented because it might be removed someday *

Comment updated.  Patch attached.


Still I am missing message about preferred syntax (or we should to enhance GET DIAGNOSTICS doc about proprietary syntax).

PL/pgSQL, PL/SQL is mix of two languages: ADA and SQL - and their designers decided so embedded SQL statements will be placed in native SQL syntax (and ADA in simplified ADA syntax)

We have to find a agreement what we will prefer for PL/pgSQL:

The assign statement is "ADA" statement - ":=" is preferred

The GET DIAGNOSTICS is "SQL" statement - "=" is preferred

A newer SQL/PSM was designed differently - without this dichotomy - A assignment is emphased by syntax SET varname = value
 
A proper syntax is good information what is coming from - and It is good mental helper to understand a philosophy of stored procedures (that shares concepts with PL/SQL). Next argument is similarity with PL/SQL and SQL PL. This statement (GET DIAGNOSTICS) is supported on both environments and only "=" is allowed there.

Regards

Pavel
 
--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

pgsql-docs by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: remove undocumented assign syntax from plpgsql doc
Next
From: Bruce Momjian
Date:
Subject: Re: remove undocumented assign syntax from plpgsql doc