The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!-- $Header: /cvsroot/autodoc/autodoc/html.tmpl,v 1.4 2006/05/16 19:01:27 rbt Exp $ -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html>
  <head>
    <title>Index for pkgforge</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
	BODY {
		color:	#000000;
		background-color: #FFFFFF;
		font-family: Helvetica, sans-serif;
	}

	P {
		margin-top: 5px;
		margin-bottom: 5px;
	}

	P.w3ref {
		font-size: 8pt;
		font-style: italic;
		text-align: right;
	}

	P.detail {
		font-size: 10pt;
	}

	.error {
		color: #FFFFFF;
		background-color: #FF0000;
	}

	H1, H2, H3, H4, H5, H6 {
	}

	OL {
		list-style-type: upper-alpha;
	}

	UL.topic {
		list-style-type: upper-alpha;
	}

	LI.topic {
		font-weight : bold;
	}

	HR {
		color: #00FF00;
		background-color: #808080;
	}

	TABLE {
		border-width: medium;
		padding: 3px;
		background-color: #000000;
		width: 90%;
	}

	CAPTION {
		text-transform: capitalize;
		font-weight : bold;
		font-size: 14pt;
	}

	TH {
		color: #FFFFFF;
		background-color: #000000;
		text-align: left;
	}

	TR {
		color: #000000;
		background-color: #000000;
		vertical-align: top;
	}

	TR.tr0 {
		background-color: #F0F0F0;
	}

	TR.tr1 {
		background-color: #D8D8D8;
	}

	TD {
		font-size: 12pt;
	}

	TD.col0 {
		font-weight : bold;
		width: 20%;
	}

	TD.col1 {
		font-style: italic;
		width: 15%;
	}

	TD.col2 {
		font-size: 12px;
	}
    </style>
    <link rel="stylesheet" type="text/css" media="all" href="all.css">
    <link rel="stylesheet" type="text/css" media="screen" href="screen.css">
    <link rel="stylesheet" type="text/css" media="print" href="print.css">
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
  </head>
  <body>

    <!-- Primary Index -->
	<p><br><br>Dumped on 2010-12-15</p>
<h1><a name="index">Index of database - pkgforge</a></h1>
<ul>
    
    <li><a name="public.schema">public</a></li><ul>
    	<li><a href="#public.table.build-log">build_log</a></li><li><a href="#public.table.builder">builder</a></li><li><a href="#public.table.job">job</a></li><li><a href="#public.table.job-status">job_status</a></li><li><a href="#public.table.platform">platform</a></li><li><a href="#public.table.task">task</a></li><li><a href="#public.table.task-status">task_status</a></li>
  	<li><a href="#public.function.check-task-p-integer-t-integer">check_task(p integer, t integer)</a></li><li><a href="#public.function.update-job-status">update_job_status()</a></li><li><a href="#public.function.update-modification-time">update_modification_time()</a></li>
    </ul>
    
</ul>

    <!-- Schema Creation -->
    <!-- publicpublic -->

		
		
        <hr>
		<h2>Table:
			<a name="public.table.build-log">build_log</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>build_log Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                  <a href="#public.table.task">task.id</a>
                  
                
                </td>
            	<td>task</td>
            	<td>integer</td>
                <td><i>
				
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                  
                  <a href="#public.table.builder">builder.id</a>
                  
                
                </td>
            	<td>builder</td>
            	<td>integer</td>
                <td><i>
				
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                </td>
            	<td>modtime</td>
            	<td>timestamp with time zone</td>
                <td><i>
				

				NOT NULL
				DEFAULT now()
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		

        <!-- Foreign Key Discovery -->
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	
        <hr>
		<h2>Table:
			<a name="public.table.builder">builder</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>builder Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                
                </td>
            	<td>name</td>
            	<td>character varying(50)</td>
                <td><i>
				
					

					
                       UNIQUE
                    
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                  
                  <a href="#public.table.platform">platform.id</a>
                  
                
                </td>
            	<td>platform</td>
            	<td>integer</td>
                <td><i>
				
					

					
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                  <a href="#public.table.task">task.id</a>
                  
                
                  
                
                </td>
            	<td>current</td>
            	<td>integer</td>
                <td><i>
				
					

					
				
					

					
                       UNIQUE
                    
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                </td>
            	<td>modtime</td>
            	<td>timestamp with time zone</td>
                <td><i>
				

				NOT NULL
				DEFAULT now()
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		
        <p>&nbsp;</p>
		<table width="100%" cellspacing="0" cellpadding="3">
            <caption>builder Constraints</caption>
            <tr>
            	<th>Name</th>
            	<th>Constraint</th>
            </tr>
			
            <tr class="tr0">
				<td>task_platform</td>
                <td>CHECK (check_task(current, platform))</td>
            </tr>
			
		</table>
		

        <!-- Foreign Key Discovery -->
		
			<p>Tables referencing this one via Foreign Key Constraints:</p>
		
			<ul>
				<li><a href="#public.table.build-log">build_log</a></li>
			</ul>
		
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	
        <hr>
		<h2>Table:
			<a name="public.table.job">job</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>job Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                
                </td>
            	<td>uuid</td>
            	<td>character varying(50)</td>
                <td><i>
				
					

					
                       UNIQUE
                    
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                </td>
            	<td>submitter</td>
            	<td>character varying(50)</td>
                <td><i>
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                  <a href="#public.table.job-status">job_status.id</a>
                  
                
                </td>
            	<td>status</td>
            	<td>integer</td>
                <td><i>
				
					

					
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                </td>
            	<td>size</td>
            	<td>integer</td>
                <td><i>
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                </td>
            	<td>modtime</td>
            	<td>timestamp with time zone</td>
                <td><i>
				

				NOT NULL
				DEFAULT now()
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		

        <!-- Foreign Key Discovery -->
		
			<p>Tables referencing this one via Foreign Key Constraints:</p>
		
			<ul>
				<li><a href="#public.table.task">task</a></li>
			</ul>
		
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	
        <hr>
		<h2>Table:
			<a name="public.table.job-status">job_status</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>job_status Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                
                </td>
            	<td>name</td>
            	<td>character varying(20)</td>
                <td><i>
				
					

					
                       UNIQUE
                    
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		

        <!-- Foreign Key Discovery -->
		
			<p>Tables referencing this one via Foreign Key Constraints:</p>
		
			<ul>
				<li><a href="#public.table.job">job</a></li>
			</ul>
		
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	
        <hr>
		<h2>Table:
			<a name="public.table.platform">platform</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>platform Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                
                </td>
            	<td>name</td>
            	<td>character varying(10)</td>
                <td><i>
				
					

					
                       UNIQUE#1
                    
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>arch</td>
            	<td>character varying(10)</td>
                <td><i>
				
					

					
                       UNIQUE#1
                    
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                </td>
            	<td>active</td>
            	<td>boolean</td>
                <td><i>
				

				NOT NULL
				DEFAULT false
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		

        <!-- Foreign Key Discovery -->
		
			<p>Tables referencing this one via Foreign Key Constraints:</p>
		
			<ul>
				<li><a href="#public.table.builder">builder</a></li>
			</ul>
		
			<ul>
				<li><a href="#public.table.task">task</a></li>
			</ul>
		
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	
        <hr>
		<h2>Table:
			<a name="public.table.task">task</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>task Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                
                  
                  <a href="#public.table.job">job.id</a>
                  
                
                </td>
            	<td>job</td>
            	<td>integer</td>
                <td><i>
				
					

					
                       UNIQUE#1
                    
				
					

					
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                  
                  <a href="#public.table.platform">platform.id</a>
                  
                
                </td>
            	<td>platform</td>
            	<td>integer</td>
                <td><i>
				
					

					
                       UNIQUE#1
                    
				
					

					
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                  <a href="#public.table.task-status">task_status.id</a>
                  
                
                </td>
            	<td>status</td>
            	<td>integer</td>
                <td><i>
				
					

					
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr0">
				<td>
                
                </td>
            	<td>modtime</td>
            	<td>timestamp with time zone</td>
                <td><i>
				

				NOT NULL
				DEFAULT now()
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		

        <!-- Foreign Key Discovery -->
		
			<p>Tables referencing this one via Foreign Key Constraints:</p>
		
			<ul>
				<li><a href="#public.table.build-log">build_log</a></li>
			</ul>
		
			<ul>
				<li><a href="#public.table.builder">builder</a></li>
			</ul>
		
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	
        <hr>
		<h2>Table:
			<a name="public.table.task-status">task_status</a>
		</h2>
        


        <table width="100%" cellspacing="0" cellpadding="3">
                <caption>task_status Structure</caption>
                <tr>
                <th>F-Key</th>
                <th>Name</th>
                <th>Type</th>
                <th>Description</th>
                </tr>
            
            <tr class="tr0">
				<td>
                
                  
                
                </td>
            	<td>id</td>
            	<td>serial</td>
                <td><i>
				
					PRIMARY KEY
					

					
				

				
				
				</i>
				
				</td>
			 </tr>
            
            <tr class="tr1">
				<td>
                
                  
                
                </td>
            	<td>name</td>
            	<td>character varying(20)</td>
                <td><i>
				
					

					
                       UNIQUE
                    
				

				NOT NULL
				
				</i>
				
				</td>
			 </tr>
            
        </table>

        <!-- Inherits -->
		

		
		
		

        <!-- Constraint List -->
		

        <!-- Foreign Key Discovery -->
		
			<p>Tables referencing this one via Foreign Key Constraints:</p>
		
			<ul>
				<li><a href="#public.table.task">task</a></li>
			</ul>
		
		

    <!-- Indexes -->
    

	<!-- View Definition -->
	

	<!-- List off permissions -->
	

	<p>
		<a href="#index">Index</a> -
		<a href="#public.schema">Schema public</a>
    </p>
	

	<!-- We've gone through the table structure, now lets take a look at user functions -->
	
		<hr>
		<h2>Function:
			<a href="#public.schema"><a name="public.function.check-task-p-integer-t-integer">check_task(p integer, t integer)</a>
		</h2>
<h3>Returns: boolean</h3>
<h3>Language: PLPGSQL</h3>
        
        <pre>
DECLARE correct BOOLEAN;
BEGIN
        SELECT  (platform = $2) INTO correct
        FROM    task
        WHERE   id = $1;

        RETURN correct;
END;
</pre>
	
		<hr>
		<h2>Function:
			<a href="#public.schema"><a name="public.function.update-job-status">update_job_status()</a>
		</h2>
<h3>Returns: trigger</h3>
<h3>Language: PLPGSQL</h3>
        
        <pre>
DECLARE
   total_count      INTEGER := 0;
   fail_count       INTEGER := 0;
   success_count    INTEGER := 0;
   cancel_count     INTEGER := 0;
   task_id          INTEGER := NEW.id;
   job_id           INTEGER;
   job_status_name  VARCHAR(20) := NULL;
BEGIN

   SELECT job INTO job_id
       FROM task
       WHERE id = task_id
       LIMIT 1;

   IF NOT FOUND THEN
     RAISE NOTICE &#39;Could not find a job for task %&#39;, task_id;
     RETURN NEW;
   END IF;

   SELECT COUNT(t.id) INTO total_count
       FROM task AS t
       WHERE t.job = job_id;

   SELECT COUNT(t.id) INTO fail_count
       FROM task AS t
       JOIN task_status AS s ON t.status = s.id
       WHERE t.job = job_id AND s.name = &#39;fail&#39;;

   SELECT COUNT(t.id) INTO success_count
       FROM task AS t
       JOIN task_status AS s ON t.status = s.id
       WHERE t.job = job_id AND s.name = &#39;success&#39;;

   SELECT COUNT(t.id) INTO cancel_count
       FROM task AS t
       JOIN task_status AS s ON t.status = s.id
       WHERE t.job = job_id AND s.name = &#39;cancelled&#39;;

   IF total_count &gt; 0 THEN

     IF fail_count &gt; 0 THEN

       IF fail_count = total_count THEN
         job_status_name := &#39;fail&#39;;
       ELSE
         job_status_name := &#39;partial fail&#39;;
       END IF;

     ELSIF success_count &gt; 0 THEN

       IF success_count = total_count THEN
         job_status_name := &#39;success&#39;;
       ELSE
         job_status_name := &#39;partial success&#39;;
       END IF;

     ELSIF cancel_count = total_count THEN
         job_status_name := &#39;cancelled&#39;;
     END IF;

     IF job_status_name IS NOT NULL THEN

       UPDATE job SET status = 
         ( SELECT id FROM job_status WHERE name = job_status_name LIMIT 1)
         WHERE id = job_id;

     END IF;

   END IF;

   RETURN NEW;
END;
</pre>
	
		<hr>
		<h2>Function:
			<a href="#public.schema"><a name="public.function.update-modification-time">update_modification_time()</a>
		</h2>
<h3>Returns: trigger</h3>
<h3>Language: PLPGSQL</h3>
        
        <pre>
BEGIN
   NEW.modtime = now(); 
   RETURN NEW;
END;
</pre>
	


<p class="w3ref">Generated by <a href="http://www.rbt.ca/autodoc/">PostgreSQL Autodoc</a></p>
<p class="w3ref"><a href="http://validator.w3.org/check/referer">W3C HTML 4.01 Strict</a></p>
</body></html>