Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

proposed patch for function parameters name refs


  • From: "Gevik Babakhani" <pgdev(at)xs4all(dot)nl>
  • To: <pgsql-patches(at)postgresql(dot)org>
  • Cc: "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • Subject: proposed patch for function parameters name refs
  • Date: Tue, 27 Nov 2007 13:24:37 +0100
  • Message-id: <003c01c830f0$7e35f9d0$0a01a8c0@gevmus> <text/plain>

This patch implements the function parameter referencing by name as
discussed before.
Please find the version 1.0 of this patch at http://www.postgresql.nl/gevik/

The zip archive contains a combined and separate patches to make reviewing
easier.

How this patch is implemented:
As discussed before, a generic parser callback functionality has been
implemented
to create hooks from within the parser. The mechanism of handling refnames
acts only
when the parser is in context of parsing a function AND all of the previous
attempts to 
recognize an unknown refname (also after implicit RTE) has failed. This way
the match 
for a possible function parameter name is executed as a last measure.

notes:

- a new error code has been added: ERRCODE_UNDEFINED_FUNCTION_PARAMETER_NAME
- when a given refname is unrecognized after all matches, one of the two
following
error messages is shown:

a) "there is no parameter %s defined for function %s"
b) "there is no parameter %s.%s defined for function %s or this \n is 
    an invalid reference to FROM-clause entry for table \"%s\""

- 2 new files have been added parse_callback.h and .c
- the patch also contains test for regression
- the main logic is implemented in transformColumnRef/ case 1 and case 2
- patch is created using VC++ 2005, tested on Win32 and RH4


------------------------------------------------
Gevik Babakhani

PostgreSQL NL       http://www.postgresql.nl
TrueSoftware BV     http://www.truesoftware.nl
------------------------------------------------




Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group