This has been saved for the 8.4 release:

        http://momjian.postgresql.org/cgi-bin/pgpatches_hold

---------------------------------------------------------------------------

Pavel Stehule wrote:
> Hello,
> 
> this proposal change older unaccepted proposal
> http://archives.postgresql.org/pgsql-hackers/2006-03/msg01157.php .
> 
> Changes:
> * based on prepared statements
> * syntax and behave is near to Oracle
> * usable as protection from SQL injection
> 
> New syntax:
> 
> a) EXECUTE stringexpr
>       [INTO [STRICT] varlist
>       [USING exprlist]
> 
> b) FOR varlist IN EXECUTE stringexpr USING exprlist LOOP ....
> 
> Reason:
> * defence from SQL injection
> * more readable, shorter, more comfortable
> 
> Sample (secure dynamic statement):
> EXECUTE
>                  'SELECT * FROM ' ||
>                   CASE tblname
>                              WHEN 'tab1' THEN 'tab1'
>                              WHEN 'tab2' THEN 'tab2'
>                              ELSE '"some is wrong"' END ||
>                   ' WHERE c1 = $1 AND c2 = $2'
>    USING unsecure_parameter1, unsecure_parameter2;
> 
> Difference between PL/SQL and proposal:
> * allow only IN variables
> * use PostgreSQL placeholders notation - "$"n instead ":"n
> 
> Compliance with PL/SQL
> * You can use numeric, character, and string literals as bind arguments
> * You cannot use bind arguments to pass the names of schema objects to
> a dynamic SQL statement.
> 
> Best regards
> 
> Pavel Stehule
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>        http://momjian.us
  EnterpriseDB                             http://postgres.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to