[HELP] Defining a function as a procedure - Mailing list pgsql-sql

From Daniel Caune
Subject [HELP] Defining a function as a procedure
Date
Msg-id 1E293D3FF63A3740B10AD5AAD88535D201663CC5@UBIMAIL1.ubisoft.org
Whole thread Raw
Responses Re: [HELP] Defining a function as a procedure  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
<div class="Section1"><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Hi,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size:
10.0pt;font-family:Arial">Is there a way to define a function as a procedure, I mean a function that returns
nothing.</span></font><pclass="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA" style="font-size: 
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue"
face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">CREATE OR </span></font><font face="Courier New" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:"CourierNew"">REPLACE FUNCTION foo(<in-parameters>)</span></font><p
class="MsoNormal"><fontcolor="blue" face="Courier New" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:"CourierNew";color:blue">AS </span></font><font face="Courier New" size="2"><span
lang="EN-CA"style="font-size:10.0pt;font-family: 
"Courier New"">$$</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">BEGIN</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">  <update-some-tables></span></font><p class="MsoNormal" style="text-autospace:none"><font
color="blue"face="Courier New" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">END</span></font><font face="Courier New" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:"CourierNew"">;</span></font><p class="MsoNormal"><font face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"">$$ <font color="blue"><span
style="color:blue">LANGUAGE</span></font>'plpgsql';</span></font><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:Arial"></span></font><pclass="MsoNormal"><font face="Arial" size="2"><span
lang="EN-CA"style="font-size: 
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial">Actually, PostgreSQL complains as a “function result type must be specified”.  I can patch my
functionso that it compiles but that won’t be really nice:</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanlang="EN-CA" style="font-size: 
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue"
face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">CREATE OR </span></font><font face="Courier New" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:"CourierNew"">REPLACE FUNCTION foo(<in-parameters>)</span></font><p
class="MsoNormal"style="text-autospace:none"><font face="Courier New" size="2"><span
style="font-size:10.0pt;font-family:"CourierNew"">  RETURNS <font color="blue"><span
style="color:blue">int</span></font></span></font><pclass="MsoNormal"><font color="blue" face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New";color:blue">AS </span></font><font
face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family: 
"Courier New"">$$</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">BEGIN</span></font><p class="MsoNormal" style="text-autospace:none"><font color="blue" face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"; 
color:blue">  <update-some-tables></span></font><p class="MsoNormal" style="text-autospace:none"><font
face="CourierNew" size="2"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"">  <font
color="blue"><spanstyle="color:blue">RETURN </span></font>1;</span></font><p class="MsoNormal"
style="text-autospace:none"><fontcolor="blue" face="Courier New" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:"CourierNew"; 
color:blue">END</span></font><font face="Courier New" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:"CourierNew"">;</span></font><p class="MsoNormal"><font face="Courier New"
size="2"><spanlang="EN-CA" style="font-size:10.0pt;font-family:"Courier New"">$$ <font color="blue"><span
style="color:blue">LANGUAGE</span></font>'plpgsql';</span></font><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:10.0pt;font-family:Arial"></span></font><pclass="MsoNormal"><font face="Arial" size="2"><span
lang="EN-CA"style="font-size: 
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial">Is there any other prettier way to do that?</span></font><p class="MsoNormal"><font
face="Arial"size="2"><span lang="EN-CA" style="font-size: 
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial">Thanks,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial">--</span></font><p class="MsoNormal"><font face="Arial" size="2"><span lang="EN-CA"
style="font-size:
10.0pt;font-family:Arial">Daniel</span></font><span lang="EN-CA"></span><p class="MsoNormal"><font face="Times New
Roman"size="3"><span lang="EN-CA" style="font-size:12.0pt"> </span></font></div> 

pgsql-sql by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: filtering after join
Next
From: Tom Lane
Date:
Subject: Re: [HELP] Defining a function as a procedure