Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-05-01 Thread Bruce Momjian
On Fri, May  1, 2015 at 05:25:53AM +0200, Pavel Stehule wrote:
 It is done

Uh, I am not sure why you say that as I don't see any commit related to
this.  Can you show me the commit?

---


 
 Dne 1.5.2015 3:11 napsal uživatel Bruce Momjian br...@momjian.us:
 
 On Tue, Mar 10, 2015 at 02:51:30PM -0400, Robert Haas wrote:
  On Tue, Mar 10, 2015 at 2:32 PM, Pavel Stehule pavel.steh...@gmail.com
 wrote:
   1. funcname_signature_string
   2. get_rule_expr
 
  Thanks.  Patch attached.  I'll commit this if there are no objections.
 
 Robert, are you going to apply this?
 
 --
   Bruce Momjian  br...@momjian.us        http://momjian.us
   EnterpriseDB                             http://enterprisedb.com
 
   + Everyone has their own god. +
 

-- 
  Bruce Momjian  br...@momjian.ushttp://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-05-01 Thread Petr Jelinek

On 01/05/15 15:01, Bruce Momjian wrote:

On Fri, May  1, 2015 at 05:25:53AM +0200, Pavel Stehule wrote:

It is done


Uh, I am not sure why you say that as I don't see any commit related to
this.  Can you show me the commit?



865f14a2d31af23a05bbf2df04c274629c5d5c4d


--
 Petr Jelinek  http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training  Services


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-05-01 Thread Petr Jelinek

On 01/05/15 15:17, Bruce Momjian wrote:

On Fri, May  1, 2015 at 03:13:28PM +0200, Petr Jelinek wrote:

On 01/05/15 15:01, Bruce Momjian wrote:

On Fri, May  1, 2015 at 05:25:53AM +0200, Pavel Stehule wrote:

It is done


Uh, I am not sure why you say that as I don't see any commit related to
this.  Can you show me the commit?



865f14a2d31af23a05bbf2df04c274629c5d5c4d


But that doesn't touch these:

1. funcname_signature_string
2. get_rule_expr

which is what Robert's later patch did:


http://www.postgresql.org/message-id/ca+tgmobcmf7f50+fejpclr8e_lyv45ayxbsdiog-ns7vluf...@mail.gmail.com



Oh, now I see what you mean, yeah that does not appear to have been 
committed.


--
 Petr Jelinek  http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training  Services


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-05-01 Thread Robert Haas
On Thu, Apr 30, 2015 at 9:11 PM, Bruce Momjian br...@momjian.us wrote:
 On Tue, Mar 10, 2015 at 02:51:30PM -0400, Robert Haas wrote:
 On Tue, Mar 10, 2015 at 2:32 PM, Pavel Stehule pavel.steh...@gmail.com 
 wrote:
  1. funcname_signature_string
  2. get_rule_expr

 Thanks.  Patch attached.  I'll commit this if there are no objections.

 Robert, are you going to apply this?

Good catch.  I had totally forgotten about this.  Committed now, thanks.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-04-30 Thread Bruce Momjian
On Tue, Mar 10, 2015 at 02:51:30PM -0400, Robert Haas wrote:
 On Tue, Mar 10, 2015 at 2:32 PM, Pavel Stehule pavel.steh...@gmail.com 
 wrote:
  1. funcname_signature_string
  2. get_rule_expr
 
 Thanks.  Patch attached.  I'll commit this if there are no objections.

Robert, are you going to apply this?

-- 
  Bruce Momjian  br...@momjian.ushttp://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-04-30 Thread Pavel Stehule
It is done
Dne 1.5.2015 3:11 napsal uživatel Bruce Momjian br...@momjian.us:

 On Tue, Mar 10, 2015 at 02:51:30PM -0400, Robert Haas wrote:
  On Tue, Mar 10, 2015 at 2:32 PM, Pavel Stehule pavel.steh...@gmail.com
 wrote:
   1. funcname_signature_string
   2. get_rule_expr
 
  Thanks.  Patch attached.  I'll commit this if there are no objections.

 Robert, are you going to apply this?

 --
   Bruce Momjian  br...@momjian.ushttp://momjian.us
   EnterpriseDB http://enterprisedb.com

   + Everyone has their own god. +



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-12 Thread Kevin Grittner
Tom Lane t...@sss.pgh.pa.us wrote:
 Robert Haas robertmh...@gmail.com writes:
 On Tue, Mar 10, 2015 at 11:50 AM, Tom Lane t...@sss.pgh.pa.us wrote:
 Was there any consideration given to whether ruleutils should start
 printing NamedArgExprs with =?  Or do we think that needs to wait?

 I have to admit that I didn't consider that.  What do you think?  I
 guess I'd be tentatively in favor of changing that to match, but I
 could be convinced otherwise.

 Presumably we are going to change it at some point; maybe we
 should just do it rather than waiting another 5 years.

+1

It has been deprecated long enough that I don't see the point of waiting.

--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-12 Thread Tom Lane
Kevin Grittner kgri...@ymail.com writes:
 Tom Lane t...@sss.pgh.pa.us wrote:
 Presumably we are going to change it at some point; maybe we
 should just do it rather than waiting another 5 years.

 +1

 It has been deprecated long enough that I don't see the point of waiting.

Uh, just to clarify, this has nothing to do with how long the operator has
been deprecated.  The issue is whether pg_dump should dump a function-call
syntax that will not be recognized by any pre-9.5 release, when there is
an alternative that will be recognized back to 9.0.

BTW, I just noticed another place that probably should be changed:

regression=# select foo(x = 1);
ERROR:  42883: function foo(x := integer) does not exist
LINE 1: select foo(x = 1);
   ^
HINT:  No function matches the given name and argument types. You might need to 
add explicit type casts.
LOCATION:  ParseFuncOrColumn, parse_func.c:516

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-12 Thread Pavel Stehule
2015-03-10 17:07 GMT+01:00 Petr Jelinek p...@2ndquadrant.com:

 On 10/03/15 17:01, Pavel Stehule wrote:



 2015-03-10 16:50 GMT+01:00 Tom Lane t...@sss.pgh.pa.us
 mailto:t...@sss.pgh.pa.us:

 Robert Haas robertmh...@gmail.com mailto:robertmh...@gmail.com
 writes:

  Committed with a few documentation tweaks.

 Was there any consideration given to whether ruleutils should start
 printing NamedArgExprs with =?  Or do we think that needs to wait?


 I didn't think about it? I don't see any reason why it have to use
 deprecated syntax.


 There is one, loading the output into older version of Postgres. Don't
 know if that's important one though.


I don't think so it is a hard issue. We doesn't support downgrades - and if
somebody needs it, it can fix it with some regexp. We should to use
preferred syntax everywhere - and preferred syntax should be ANSI.

I forgot it :(

Pavel




 --
  Petr Jelinek  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training  Services



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Robert Haas
On Tue, Mar 10, 2015 at 11:50 AM, Tom Lane t...@sss.pgh.pa.us wrote:
 Robert Haas robertmh...@gmail.com writes:
 On Thu, Feb 19, 2015 at 3:15 PM, Pavel Stehule pavel.steh...@gmail.com 
 wrote:
 I am marking this as Ready For Committer, the patch is trivial and works
 as expected, there is nothing to be added to it IMHO.

 The = operator was deprecated for several years so it should not be too
 controversial either.

 Committed with a few documentation tweaks.

 Was there any consideration given to whether ruleutils should start
 printing NamedArgExprs with =?  Or do we think that needs to wait?

I have to admit that I didn't consider that.  What do you think?  I
guess I'd be tentatively in favor of changing that to match, but I
could be convinced otherwise.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Tom Lane
Robert Haas robertmh...@gmail.com writes:
 On Tue, Mar 10, 2015 at 11:50 AM, Tom Lane t...@sss.pgh.pa.us wrote:
 Was there any consideration given to whether ruleutils should start
 printing NamedArgExprs with =?  Or do we think that needs to wait?

 I have to admit that I didn't consider that.  What do you think?  I
 guess I'd be tentatively in favor of changing that to match, but I
 could be convinced otherwise.

Well, as said upthread, the argument for not changing would be that it
would make it easier to dump views and reload them into older PG versions.
I'm not sure how big a consideration that is, or whether it outweighs
possible cross-DBMS compatibility benefits of dumping the more standard
syntax.  Presumably we are going to change it at some point; maybe we
should just do it rather than waiting another 5 years.

IOW, I guess I lean mildly towards changing, but I've been beaten up
enough lately about backwards-compatibility worries that I'm not going
to fight for changing this.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Robert Haas
On Thu, Feb 19, 2015 at 3:15 PM, Pavel Stehule pavel.steh...@gmail.com wrote:
 I am marking this as Ready For Committer, the patch is trivial and works
 as expected, there is nothing to be added to it IMHO.

 The = operator was deprecated for several years so it should not be too
 controversial either.

Committed with a few documentation tweaks.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Petr Jelinek

On 10/03/15 17:01, Pavel Stehule wrote:



2015-03-10 16:50 GMT+01:00 Tom Lane t...@sss.pgh.pa.us
mailto:t...@sss.pgh.pa.us:

Robert Haas robertmh...@gmail.com mailto:robertmh...@gmail.com
writes:

 Committed with a few documentation tweaks.

Was there any consideration given to whether ruleutils should start
printing NamedArgExprs with =?  Or do we think that needs to wait?


I didn't think about it? I don't see any reason why it have to use
deprecated syntax.



There is one, loading the output into older version of Postgres. Don't 
know if that's important one though.


--
 Petr Jelinek  http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training  Services


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Pavel Stehule
2015-03-10 16:50 GMT+01:00 Tom Lane t...@sss.pgh.pa.us:

 Robert Haas robertmh...@gmail.com writes:
  On Thu, Feb 19, 2015 at 3:15 PM, Pavel Stehule pavel.steh...@gmail.com
 wrote:
  I am marking this as Ready For Committer, the patch is trivial and works
  as expected, there is nothing to be added to it IMHO.
 
  The = operator was deprecated for several years so it should not be
 too
  controversial either.

  Committed with a few documentation tweaks.

 Was there any consideration given to whether ruleutils should start
 printing NamedArgExprs with =?  Or do we think that needs to wait?


I didn't think about it? I don't see any reason why it have to use
deprecated syntax.

Regards

Pavel



 regards, tom lane



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Tom Lane
Robert Haas robertmh...@gmail.com writes:
 On Thu, Feb 19, 2015 at 3:15 PM, Pavel Stehule pavel.steh...@gmail.com 
 wrote:
 I am marking this as Ready For Committer, the patch is trivial and works
 as expected, there is nothing to be added to it IMHO.
 
 The = operator was deprecated for several years so it should not be too
 controversial either.

 Committed with a few documentation tweaks.

Was there any consideration given to whether ruleutils should start
printing NamedArgExprs with =?  Or do we think that needs to wait?

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Pavel Stehule
2015-03-10 19:02 GMT+01:00 Tom Lane t...@sss.pgh.pa.us:

 Kevin Grittner kgri...@ymail.com writes:
  Tom Lane t...@sss.pgh.pa.us wrote:
  Presumably we are going to change it at some point; maybe we
  should just do it rather than waiting another 5 years.

  +1

  It has been deprecated long enough that I don't see the point of waiting.

 Uh, just to clarify, this has nothing to do with how long the operator has
 been deprecated.  The issue is whether pg_dump should dump a function-call
 syntax that will not be recognized by any pre-9.5 release, when there is
 an alternative that will be recognized back to 9.0.

 BTW, I just noticed another place that probably should be changed:

 regression=# select foo(x = 1);
 ERROR:  42883: function foo(x := integer) does not exist
 LINE 1: select foo(x = 1);
^
 HINT:  No function matches the given name and argument types. You might
 need to add explicit type casts.
 LOCATION:  ParseFuncOrColumn, parse_func.c:516


1. funcname_signature_string
2. get_rule_expr






 regards, tom lane



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-03-10 Thread Robert Haas
On Tue, Mar 10, 2015 at 2:32 PM, Pavel Stehule pavel.steh...@gmail.com wrote:
 1. funcname_signature_string
 2. get_rule_expr

Thanks.  Patch attached.  I'll commit this if there are no objections.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


named-expr-fixes.patch
Description: binary/octet-stream

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-02-19 Thread Pavel Stehule
2015-02-19 16:06 GMT+01:00 Petr Jelinek p...@2ndquadrant.com:

 On 19/01/15 17:14, Pavel Stehule wrote:



 2015-01-19 14:27 GMT+01:00 Robert Haas robertmh...@gmail.com
 mailto:robertmh...@gmail.com:

 On Mon, Jan 19, 2015 at 2:59 AM, Pavel Stehule
 pavel.steh...@gmail.com mailto:pavel.steh...@gmail.com wrote:
  I think you should just remove the WARNING, not change it to an
 error.
  If somebody wants to quote the operator name to be able to continue
  using it, I think that's OK.
 
  It looks so quoting doesn't help here
 
  + CREATE OPERATOR = (
  +leftarg = int8,-- right unary
  +procedure = numeric_fac
  + );
  + ERROR:  syntax error at or near (
  + LINE 1: CREATE OPERATOR = (
  +  ^

 Well then the error check is just dead code.  Either way, you don't
 need it.


 yes, I removed it


 I am marking this as Ready For Committer, the patch is trivial and works
 as expected, there is nothing to be added to it IMHO.

 The = operator was deprecated for several years so it should not be too
 controversial either.


Thank you very much

Pavel




 --
  Petr Jelinek  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training  Services



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-02-19 Thread Petr Jelinek

On 19/01/15 17:14, Pavel Stehule wrote:



2015-01-19 14:27 GMT+01:00 Robert Haas robertmh...@gmail.com
mailto:robertmh...@gmail.com:

On Mon, Jan 19, 2015 at 2:59 AM, Pavel Stehule
pavel.steh...@gmail.com mailto:pavel.steh...@gmail.com wrote:
 I think you should just remove the WARNING, not change it to an error.
 If somebody wants to quote the operator name to be able to continue
 using it, I think that's OK.

 It looks so quoting doesn't help here

 + CREATE OPERATOR = (
 +leftarg = int8,-- right unary
 +procedure = numeric_fac
 + );
 + ERROR:  syntax error at or near (
 + LINE 1: CREATE OPERATOR = (
 +  ^

Well then the error check is just dead code.  Either way, you don't
need it.


yes, I removed it



I am marking this as Ready For Committer, the patch is trivial and works 
as expected, there is nothing to be added to it IMHO.


The = operator was deprecated for several years so it should not be 
too controversial either.



--
 Petr Jelinek  http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training  Services


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-19 Thread Pavel Stehule
2015-01-19 4:54 GMT+01:00 Robert Haas robertmh...@gmail.com:

 On Sat, Jan 17, 2015 at 8:27 PM, Pavel Stehule pavel.steh...@gmail.com
 wrote:
  two years a operator = is marked as deprecated (from PostgreSQL 9.2).
 
  Isn't time to use it for named parameters now (for PostgreSQL 9.5) ?

 I'm cool with that.  It's possible that there are installations out
 there that still have = operators installed, but every
 still-supported release warns you not to do that, and the hstore
 change exists in three released versions.  Anyway, no amount of
 waiting will eliminate the hazard completely.

  I am sending a implementation where syntax based on = symbol is second
  (but preferred) variant of := syntax .. syntax := will be supported
  still.
 
  Here is a patch

 I think you should just remove the WARNING, not change it to an error.
 If somebody wants to quote the operator name to be able to continue
 using it, I think that's OK.


It looks so quoting doesn't help here

+ CREATE OPERATOR = (
+leftarg = int8,-- right unary
+procedure = numeric_fac
+ );
+ ERROR:  syntax error at or near (
+ LINE 1: CREATE OPERATOR = (
+  ^

Regards

Pavel



 --
 Robert Haas
 EnterpriseDB: http://www.enterprisedb.com
 The Enterprise PostgreSQL Company



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-19 Thread Alvaro Herrera
Pavel Stehule wrote:

 It looks so quoting doesn't help here
 
 + CREATE OPERATOR = (
 +leftarg = int8,-- right unary
 +procedure = numeric_fac
 + );
 + ERROR:  syntax error at or near (
 + LINE 1: CREATE OPERATOR = (
 +  ^

Does it work to use OPERATOR(=) syntax?  I don't think identifier
quoting works for operators.

-- 
Álvaro Herrerahttp://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training  Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-19 Thread Robert Haas
On Mon, Jan 19, 2015 at 2:59 AM, Pavel Stehule pavel.steh...@gmail.com wrote:
 I think you should just remove the WARNING, not change it to an error.
 If somebody wants to quote the operator name to be able to continue
 using it, I think that's OK.

 It looks so quoting doesn't help here

 + CREATE OPERATOR = (
 +leftarg = int8,-- right unary
 +procedure = numeric_fac
 + );
 + ERROR:  syntax error at or near (
 + LINE 1: CREATE OPERATOR = (
 +  ^

Well then the error check is just dead code.  Either way, you don't need it.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-19 Thread Pavel Stehule
2015-01-19 14:30 GMT+01:00 Alvaro Herrera alvhe...@2ndquadrant.com:

 Pavel Stehule wrote:

  It looks so quoting doesn't help here
 
  + CREATE OPERATOR = (
  +leftarg = int8,-- right unary
  +procedure = numeric_fac
  + );
  + ERROR:  syntax error at or near (
  + LINE 1: CREATE OPERATOR = (
  +  ^

 Does it work to use OPERATOR(=) syntax?  I don't think identifier
 quoting works for operators.


it doesn't work too




 --
 Álvaro Herrerahttp://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Remote DBA, Training  Services



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-19 Thread Pavel Stehule
2015-01-19 14:27 GMT+01:00 Robert Haas robertmh...@gmail.com:

 On Mon, Jan 19, 2015 at 2:59 AM, Pavel Stehule pavel.steh...@gmail.com
 wrote:
  I think you should just remove the WARNING, not change it to an error.
  If somebody wants to quote the operator name to be able to continue
  using it, I think that's OK.
 
  It looks so quoting doesn't help here
 
  + CREATE OPERATOR = (
  +leftarg = int8,-- right unary
  +procedure = numeric_fac
  + );
  + ERROR:  syntax error at or near (
  + LINE 1: CREATE OPERATOR = (
  +  ^

 Well then the error check is just dead code.  Either way, you don't need
 it.


yes, I removed it

Regards

Pavel



 --
 Robert Haas
 EnterpriseDB: http://www.enterprisedb.com
 The Enterprise PostgreSQL Company

diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
new file mode 100644
index 5e7b000..c33190e
*** a/doc/src/sgml/func.sgml
--- b/doc/src/sgml/func.sgml
*** SELECT SUBSTRING('XY1234Z', 'Y*?([0-9]{1
*** 6785,6791 
   Create interval from years, months, weeks, days, hours, minutes and
   seconds fields
  /entry
! entryliteralmake_interval(days := 10)/literal/entry
  entryliteral10 days/literal/entry
 /row
  
--- 6785,6791 
   Create interval from years, months, weeks, days, hours, minutes and
   seconds fields
  /entry
! entryliteralmake_interval(days = 10)/literal/entry
  entryliteral10 days/literal/entry
 /row
  
diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml
new file mode 100644
index 4b81b08..d30db6a
*** a/doc/src/sgml/syntax.sgml
--- b/doc/src/sgml/syntax.sgml
*** SELECT concat_lower_or_upper('Hello', 'W
*** 2599,2605 
   literal:=/literal to separate it from the argument expression.
   For example:
  screen
! SELECT concat_lower_or_upper(a := 'Hello', b := 'World');
   concat_lower_or_upper 
  ---
   hello world
--- 2599,2605 
   literal:=/literal to separate it from the argument expression.
   For example:
  screen
! SELECT concat_lower_or_upper(a = 'Hello', b = 'World');
   concat_lower_or_upper 
  ---
   hello world
*** SELECT concat_lower_or_upper(a := 'Hello
*** 2610,2622 
   using named notation is that the arguments may be specified in any
   order, for example:
  screen
! SELECT concat_lower_or_upper(a := 'Hello', b := 'World', uppercase := true);
   concat_lower_or_upper 
  ---
   HELLO WORLD
  (1 row)
  
! SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World');
   concat_lower_or_upper 
  ---
   HELLO WORLD
--- 2610,2633 
   using named notation is that the arguments may be specified in any
   order, for example:
  screen
! SELECT concat_lower_or_upper(a = 'Hello', b = 'World', uppercase = true);
   concat_lower_or_upper 
  ---
   HELLO WORLD
  (1 row)
  
! SELECT concat_lower_or_upper(a = 'Hello', uppercase = true, b = 'World');
!  concat_lower_or_upper 
! ---
!  HELLO WORLD
! (1 row)
! /screen
! /para
! 
! para
!   Older syntax based on := symbol is still supported:
! screen
! SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World');
   concat_lower_or_upper 
  ---
   HELLO WORLD
*** SELECT concat_lower_or_upper(a := 'Hello
*** 2638,2644 
  already mentioned, named arguments cannot precede positional arguments.
  For example:
  screen
! SELECT concat_lower_or_upper('Hello', 'World', uppercase := true);
   concat_lower_or_upper 
  ---
   HELLO WORLD
--- 2649,2655 
  already mentioned, named arguments cannot precede positional arguments.
  For example:
  screen
! SELECT concat_lower_or_upper('Hello', 'World', uppercase = true);
   concat_lower_or_upper 
  ---
   HELLO WORLD
diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
new file mode 100644
index f40504c..264e5ff
*** a/doc/src/sgml/xfunc.sgml
--- b/doc/src/sgml/xfunc.sgml
*** SELECT mleast(VARIADIC ARRAY[]::numeric[
*** 776,789 
   literalVARIADIC/.  For example, this will work:
  
  screen
! SELECT mleast(VARIADIC arr := ARRAY[10, -1, 5, 4.4]);
  /screen
  
   but not these:
  
  screen
! SELECT mleast(arr := 10);
! SELECT mleast(arr := ARRAY[10, -1, 5, 4.4]);
  /screen
  /para
 /sect2
--- 776,789 
   literalVARIADIC/.  For example, this will work:
  
  screen
! SELECT mleast(VARIADIC arr = ARRAY[10, -1, 5, 4.4]);
  /screen
  
   but not these:
  
  screen
! SELECT mleast(arr = 10);
! SELECT mleast(arr = ARRAY[10, -1, 5, 4.4]);
  /screen
  /para
 /sect2
diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c
new file mode 100644
index 2996019..e4327c2
*** a/src/backend/commands/operatorcmds.c

Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-18 Thread Pavel Stehule
2015-01-19 4:54 GMT+01:00 Robert Haas robertmh...@gmail.com:

 On Sat, Jan 17, 2015 at 8:27 PM, Pavel Stehule pavel.steh...@gmail.com
 wrote:
  two years a operator = is marked as deprecated (from PostgreSQL 9.2).
 
  Isn't time to use it for named parameters now (for PostgreSQL 9.5) ?

 I'm cool with that.  It's possible that there are installations out
 there that still have = operators installed, but every
 still-supported release warns you not to do that, and the hstore
 change exists in three released versions.  Anyway, no amount of
 waiting will eliminate the hazard completely.

  I am sending a implementation where syntax based on = symbol is second
  (but preferred) variant of := syntax .. syntax := will be supported
  still.
 
  Here is a patch

 I think you should just remove the WARNING, not change it to an error.
 If somebody wants to quote the operator name to be able to continue
 using it, I think that's OK.


I have no problem with it. Just I'll try if there are no some unexpected
problem and I'll send a updated patch

Regards

Pavel



 --
 Robert Haas
 EnterpriseDB: http://www.enterprisedb.com
 The Enterprise PostgreSQL Company



Re: [HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-18 Thread Robert Haas
On Sat, Jan 17, 2015 at 8:27 PM, Pavel Stehule pavel.steh...@gmail.com wrote:
 two years a operator = is marked as deprecated (from PostgreSQL 9.2).

 Isn't time to use it for named parameters now (for PostgreSQL 9.5) ?

I'm cool with that.  It's possible that there are installations out
there that still have = operators installed, but every
still-supported release warns you not to do that, and the hstore
change exists in three released versions.  Anyway, no amount of
waiting will eliminate the hazard completely.

 I am sending a implementation where syntax based on = symbol is second
 (but preferred) variant of := syntax .. syntax := will be supported
 still.

 Here is a patch

I think you should just remove the WARNING, not change it to an error.
If somebody wants to quote the operator name to be able to continue
using it, I think that's OK.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] proposal: disallow operator = and use it for named parameters

2015-01-17 Thread Pavel Stehule
Hello

two years a operator = is marked as deprecated (from PostgreSQL 9.2).

Isn't time to use it for named parameters now (for PostgreSQL 9.5) ?

I am sending a implementation where syntax based on = symbol is second
(but preferred) variant of := syntax .. syntax := will be supported
still.

Here is a patch

comments, notices?

Regards

Pavel
commit 857c079d6b8030c575da129bb142860e8f6f951e
Author: Pavel Stehule pavel.steh...@gooddata.com
Date:   Sun Jan 18 02:25:48 2015 +0100

initial implementation

diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 5e7b000..c33190e 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -6785,7 +6785,7 @@ SELECT SUBSTRING('XY1234Z', 'Y*?([0-9]{1,3})');
  Create interval from years, months, weeks, days, hours, minutes and
  seconds fields
 /entry
-entryliteralmake_interval(days := 10)/literal/entry
+entryliteralmake_interval(days = 10)/literal/entry
 entryliteral10 days/literal/entry
/row
 
diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml
index 4b81b08..d30db6a 100644
--- a/doc/src/sgml/syntax.sgml
+++ b/doc/src/sgml/syntax.sgml
@@ -2599,7 +2599,7 @@ SELECT concat_lower_or_upper('Hello', 'World');
  literal:=/literal to separate it from the argument expression.
  For example:
 screen
-SELECT concat_lower_or_upper(a := 'Hello', b := 'World');
+SELECT concat_lower_or_upper(a = 'Hello', b = 'World');
  concat_lower_or_upper 
 ---
  hello world
@@ -2610,13 +2610,24 @@ SELECT concat_lower_or_upper(a := 'Hello', b := 'World');
  using named notation is that the arguments may be specified in any
  order, for example:
 screen
-SELECT concat_lower_or_upper(a := 'Hello', b := 'World', uppercase := true);
+SELECT concat_lower_or_upper(a = 'Hello', b = 'World', uppercase = true);
  concat_lower_or_upper 
 ---
  HELLO WORLD
 (1 row)
 
-SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World');
+SELECT concat_lower_or_upper(a = 'Hello', uppercase = true, b = 'World');
+ concat_lower_or_upper 
+---
+ HELLO WORLD
+(1 row)
+/screen
+/para
+
+para
+  Older syntax based on := symbol is still supported:
+screen
+SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World');
  concat_lower_or_upper 
 ---
  HELLO WORLD
@@ -2638,7 +2649,7 @@ SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World');
 already mentioned, named arguments cannot precede positional arguments.
 For example:
 screen
-SELECT concat_lower_or_upper('Hello', 'World', uppercase := true);
+SELECT concat_lower_or_upper('Hello', 'World', uppercase = true);
  concat_lower_or_upper 
 ---
  HELLO WORLD
diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index f40504c..264e5ff 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -776,14 +776,14 @@ SELECT mleast(VARIADIC ARRAY[]::numeric[]);
  literalVARIADIC/.  For example, this will work:
 
 screen
-SELECT mleast(VARIADIC arr := ARRAY[10, -1, 5, 4.4]);
+SELECT mleast(VARIADIC arr = ARRAY[10, -1, 5, 4.4]);
 /screen
 
  but not these:
 
 screen
-SELECT mleast(arr := 10);
-SELECT mleast(arr := ARRAY[10, -1, 5, 4.4]);
+SELECT mleast(arr = 10);
+SELECT mleast(arr = ARRAY[10, -1, 5, 4.4]);
 /screen
 /para
/sect2
diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c
index 2996019..2d26345 100644
--- a/src/backend/commands/operatorcmds.c
+++ b/src/backend/commands/operatorcmds.c
@@ -93,9 +93,8 @@ DefineOperator(List *names, List *parameters)
 	 * as the name of a user-defined operator.
 	 */
 	if (strcmp(oprName, =) == 0)
-		ereport(WARNING,
-(errmsg(= is deprecated as an operator name),
- errdetail(This name may be disallowed altogether in future versions of PostgreSQL.)));
+		ereport(ERROR,
+(errmsg(= is disallowed as an operator name)));
 
 	/* Check we have creation rights in target namespace */
 	aclresult = pg_namespace_aclcheck(oprNamespace, GetUserId(), ACL_CREATE);
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 36dac29..6a02dcc 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -531,7 +531,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
  */
 %token str	IDENT FCONST SCONST BCONST XCONST Op
 %token ival	ICONST PARAM
-%token			TYPECAST DOT_DOT COLON_EQUALS
+%token			TYPECAST DOT_DOT COLON_EQUALS EQUALS_GREATER
 
 /*
  * If you want to make any keyword changes, update the keyword table in
@@ -12557,6 +12557,15 @@ func_arg_expr:  a_expr
 	na-location = @1;
 	$$ = (Node *) na;
 }
+			| param_name EQUALS_GREATER a_expr
+{
+	NamedArgExpr *na = makeNode(NamedArgExpr);
+	na-name = $1;
+	na-arg = (Expr *) $3;
+	na-argnumber = -1;		/* until determined */
+	na-location = @1;
+	$$ =