<!-- $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> </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 'Could not find a job for task %', 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 = 'fail';
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 = 'success';
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 = 'cancelled';
IF total_count > 0 THEN
IF fail_count > 0 THEN
IF fail_count = total_count THEN
job_status_name := 'fail';
ELSE
job_status_name := 'partial fail';
END IF;
ELSIF success_count > 0 THEN
IF success_count = total_count THEN
job_status_name := 'success';
ELSE
job_status_name := 'partial success';
END IF;
ELSIF cancel_count = total_count THEN
job_status_name := 'cancelled';
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>