<pre style='margin:0'>
raimue pushed a commit to branch master
in repository macports-www.

</pre>
<p><a href="https://github.com/macports/macports-www/commit/4150e65e90f554037ff68538d7749c3c94847130">https://github.com/macports/macports-www/commit/4150e65e90f554037ff68538d7749c3c94847130</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 4150e65  Switch to Postgres DB
</span>4150e65 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 4150e65e90f554037ff68538d7749c3c94847130
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Mon Oct 31 00:23:12 2016 +0100

<span style='display:block; white-space:pre;color:#404040;'>    Switch to Postgres DB
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The authentication is automatically granted based on the UNIX account
</span><span style='display:block; white-space:pre;color:#404040;'>    running the webserver. No username, password or database name are
</span><span style='display:block; white-space:pre;color:#404040;'>    required.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes https://trac.macports.org/ticket/40579
</span>---
 includes/common.inc |  28 ++++-----------
 index.php           |   2 +-
 ports.php           | 100 +++++++++++++++++++++++++++-------------------------
 3 files changed, 60 insertions(+), 70 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/includes/common.inc b/includes/common.inc
</span><span style='display:block; white-space:pre;color:#808080;'>index f70eaf1..7355738 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/includes/common.inc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/includes/common.inc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,15 +38,6 @@ $guide_url = 'https://guide.macports.org/';
</span> 
 #####################################################################
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Ports database connection parameters:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$portsdb_host = 'data.macports.org';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$portsdb_name = 'macports';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$portsdb_user = 'macports';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$portsdb_passwd = trim(file_get_contents('/var/www/script_data'));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-######################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Page header:
 function print_header($title, $encoding) {
     global $trac_url, $svn_url, $downloads, $guide_url;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,13 +67,12 @@ function print_warnings() {
</span> ######################################################################
 
 # Connect to the portsdb and gather miscellaneous information:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-function portsdb_connect($portsdb_host, $portsdb_user, $portsdb_passwd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+function portsdb_connect() {
</span>     $script = basename($_SERVER['PHP_SELF']);
     
     $portsdb_connection = FALSE;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if (function_exists('mysql_connect')) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        $portsdb_connection = mysql_connect($portsdb_host, $portsdb_user, $portsdb_passwd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if (function_exists('pg_connect')) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $portsdb_connection = pg_connect("");
</span>     }
     if ($portsdb_connection === FALSE) {
         switch ($script) {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -126,11 +116,9 @@ function portsdb_connect($portsdb_host, $portsdb_user, $portsdb_passwd) {
</span> 
 # Total count of currently available ports:
 function ports_count() {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global $portsdb_name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    $result = mysql_query("SELECT COUNT(DISTINCT name) FROM $portsdb_name.portfiles");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    $result = pg_query("SELECT COUNT(DISTINCT name) FROM portfiles");
</span>     if ($result) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        $row = mysql_fetch_array($result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $row = pg_fetch_array($result);
</span>         $count = $row[0];
     } else {
         $count = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,11 +131,9 @@ function ports_count() {
</span> 
 # Total count of port categories:
 function categories_count() {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global $portsdb_name;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    $result = mysql_query("SELECT COUNT(DISTINCT category) FROM $portsdb_name.categories");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    $result = pg_query("SELECT COUNT(DISTINCT category) FROM categories");
</span>     if ($result) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        $row = mysql_fetch_array($result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $row = pg_fetch_array($result);
</span>         $count = $row[0];
     } else {
         $count = 0;
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/index.php b/index.php
</span><span style='display:block; white-space:pre;color:#808080;'>index 09598f3..9961bb1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/index.php
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/index.php
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,6 +72,6 @@
</span> <?php
     print_footer();
     if ($portsdb_info['connection_handler'] !== false) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        mysql_close($portsdb_info['connection_handler']);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pg_close($portsdb_info['connection_handler']);
</span>     }
 ?>
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/ports.php b/ports.php
</span><span style='display:block; white-space:pre;color:#808080;'>index dfbf33b..d31b94b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/ports.php
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/ports.php
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,10 +7,10 @@
</span>     
     include_once("includes/common.inc");
     
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    $portsdb_info = portsdb_connect($portsdb_host, $portsdb_user, $portsdb_passwd);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    $sql = "SELECT UNIX_TIMESTAMP(activity_time) FROM $portsdb_name.log ORDER BY UNIX_TIMESTAMP(activity_time) DESC";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    $result = mysql_query($sql);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if ($result && $row = mysql_fetch_row($result)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    $portsdb_info = portsdb_connect();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    $sql = "SELECT ceil(extract( epoch from activity_time)) as tim FROM log ORDER BY tim DESC";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    $result = pg_query($sql);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if ($result && $row = pg_fetch_row($result)) {
</span>         $date = date('Y-m-d', $row[0]);
         $time = date('H:i:s e', $row[0]);
     } else {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,8 +64,8 @@
</span>     /* If no valid search criteria is specified (by set and not equal to all and a valid substring) we output port categories
      as possible searches */
     if (!$by || ($by != 'all' && !$substr)) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        $query = "SELECT DISTINCT category FROM $portsdb_name.categories ORDER BY category";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        $result = mysql_query($query);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $query = "SELECT DISTINCT category FROM categories ORDER BY category";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $result = pg_query($query);
</span>         if ($result) {
             $max_entries_per_column = floor($portsdb_info['num_categories']/4);
             $columns = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -73,7 +73,7 @@
</span>             while ($columns < 4) {
                 $entries_per_column = 0;
                 print '<li><ul>';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                while ($row = mysql_fetch_assoc($result)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                while ($row = pg_fetch_assoc($result)) {
</span>                     print "<li><a href=\"$phpself?by=category&amp;substr=" . urlencode($row['category']) . '">'
                     . htmlspecialchars($row['category']) . '</a></li>';
                     if ($entries_per_column == $max_entries_per_column) break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -89,34 +89,35 @@
</span>     /* If valid criteria is specified (by set and a valid substring, or by set to all) we poll the db and display the results */
     if ($by && ($substr || $by == 'all')) {
         $fields = 'name, path, version, description';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        $tables = "$portsdb_name.portfiles AS p";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $tables = "portfiles AS p";
</span>         switch ($by) {
         case 'name':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "p.name LIKE '%" . mysql_real_escape_string($substr) . "%'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            #TODO: was pg_escape_string. Current charset taken into account ?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "p.name LIKE '%" . pg_escape_string($substr) . "%'";
</span>             break;
         case 'category':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $tables .= ", $portsdb_name.categories AS c";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "c.portfile = p.name AND c.category = '" . mysql_real_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $tables .= ", categories AS c";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "c.portfile = p.name AND c.category = '" . pg_escape_string($substr) . "'";
</span>             break;
         case 'maintainer':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $tables .= ", $portsdb_name.maintainers AS m";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "m.portfile = p.name AND m.maintainer LIKE '%" . mysql_real_escape_string($substr) . "%'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $tables .= ", maintainers AS m";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "m.portfile = p.name AND m.maintainer LIKE '%" . pg_escape_string($substr) . "%'";
</span>             break;
         case 'library':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "p.name = '" . mysql_real_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "p.name = '" . pg_escape_string($substr) . "'";
</span>             break;
         case 'variant':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $tables .= ", $portsdb_name.variants AS v";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "v.portfile = p.name AND v.variant = '" . mysql_real_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $tables .= ", variants AS v";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "v.portfile = p.name AND v.variant = '" . pg_escape_string($substr) . "'";
</span>             break;
         case 'platform':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $tables .= ", $portsdb_name.platforms AS pl";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "pl.portfile = p.name AND pl.platform = '" . mysql_real_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $tables .= ", platforms AS pl";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "pl.portfile = p.name AND pl.platform = '" . pg_escape_string($substr) . "'";
</span>             break;
 /*
         case 'license':
             $tables .= ", $portsdb_name.licenses AS lc";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $criteria = "lc.portfile = p.name AND lc.license = '" . mysql_real_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $criteria = "lc.portfile = p.name AND lc.license = '" . pg_escape_string($substr) . "'";
</span>             break;
 */
         case 'all':
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -128,12 +129,12 @@
</span>         }
         $where = ($criteria == '' ? '' : "WHERE $criteria");
         $query = "SELECT DISTINCT $fields FROM $tables $where ORDER BY name";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        $result = mysql_query($query);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        $result = pg_query($query);
</span>         
         /* Main query sent to the DB */
         if ($result) {
             $paging = false;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            $numrows = mysql_num_rows($result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            $numrows = pg_num_rows($result);
</span>             if ($numrows > $pagesize) {
                 $paging = true;
                 $pagecount = ceil($numrows / $pagesize);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -154,8 +155,11 @@
</span>                 }
                 $pagecontrol .= "</p>";
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                # seek the data pointer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                mysql_data_seek($result, $offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # seek the data pointer by fetching the row before the interesting one
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # FIXME: maybe should be offset - 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if($offset > 0){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   pg_fetch_row($result, $offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span>             }
 
             print '<h3>Query Results</h3>';
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -169,9 +173,9 @@
</span> 
             print '<dl>';
             /* Iterate over the entire set of returned ports */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            for ($row = mysql_fetch_assoc($result), $i = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            for ($row = pg_fetch_assoc($result), $i = 0;
</span>                  $row && (!$paging || $i < $curpagesize);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                 $row = mysql_fetch_assoc($result), $i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 $row = pg_fetch_assoc($result), $i++) {
</span> 
                 /* Port name and Portfile URL */
                 print "<dt><b><a href=\"${trac_url}browser/trunk/dports/" . $row['path'] . "/Portfile\">" . htmlspecialchars($row['name'])
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -182,12 +186,12 @@
</span>                 print htmlspecialchars($row['description']) . '<br />';
                 
                 /* Licenses */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nquery = "SELECT license FROM $portsdb_name.licenses WHERE portfile='" . mysql_real_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nquery = "SELECT license FROM licenses WHERE portfile='" . pg_escape_string($row['name']) .
</span>                 "' ORDER BY license";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nresult = mysql_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if ($nresult && mysql_num_rows($nresult) > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if ($nresult && pg_num_rows($nresult) > 0) {
</span>                     print '<i>Licenses:</i> ';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    while ($nrow = mysql_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    while ($nrow = pg_fetch_row($nresult)) {
</span>                         print "<a href=\"$phpself?by=license&amp;substr=" . urlencode($nrow[0]) . '">'
                         . htmlspecialchars($nrow[0]) . '</a> ';
                     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -195,13 +199,13 @@
</span>                 }
 
                 /* Maintainers */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nquery = "SELECT maintainer FROM $portsdb_name.maintainers WHERE portfile='" . mysql_real_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nquery = "SELECT maintainer FROM maintainers WHERE portfile='" . pg_escape_string($row['name']) .
</span>                 "' ORDER BY is_primary DESC, maintainer";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nresult = mysql_query($nquery);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nresult = pg_query($nquery);
</span>                 if ($nresult) {
                     $primary = 1;
                     print '<i>Maintained by:</i>';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    while ($nrow = mysql_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    while ($nrow = pg_fetch_row($nresult)) {
</span>                         if ($primary) { print ' <b>'; }
                         else { print ' '; }
                         print obfuscate_email($nrow[0]);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -211,13 +215,13 @@
</span>                 }
 
                 /* Categories */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nquery = "SELECT category FROM $portsdb_name.categories WHERE portfile='" . mysql_real_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nquery = "SELECT category FROM categories WHERE portfile='" . pg_escape_string($row['name']) .
</span>                 "' ORDER BY is_primary DESC, category";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nresult = mysql_query($nquery);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nresult = pg_query($nquery);
</span>                 if ($nresult) {
                     $primary = 1;
                     print '<br /><i>Categories:</i>';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    while ($nrow = mysql_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    while ($nrow = pg_fetch_row($nresult)) {
</span>                         if ($primary) { print ' <b>'; }
                         else { print ' '; }
                         print "<a href=\"$phpself?by=category&amp;substr=" . urlencode($nrow[0]) . '">'
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -228,24 +232,24 @@
</span>                 }
 
                 /* Platforms */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nquery = "SELECT platform FROM $portsdb_name.platforms WHERE portfile='" . mysql_real_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nquery = "SELECT platform FROM platforms WHERE portfile='" . pg_escape_string($row['name']) .
</span>                 "' ORDER BY platform";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nresult = mysql_query($nquery);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nresult = pg_query($nquery);
</span>                 if ($nresult) {
                     print '<br /><i>Platforms:</i> ';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    while ($nrow = mysql_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    while ($nrow = pg_fetch_row($nresult)) {
</span>                         print "<a href=\"$phpself?by=platform&amp;substr=" . urlencode($nrow[0]) . '">'
                         . htmlspecialchars($nrow[0]) . '</a> ';
                     }
                 }
 
                 /* Dependencies */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nquery = "SELECT library FROM $portsdb_name.dependencies WHERE portfile='" . mysql_real_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nquery = "SELECT library FROM dependencies WHERE portfile='" . pg_escape_string($row['name']) .
</span>                 "' ORDER BY library";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nresult = mysql_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if ($nresult && mysql_num_rows($nresult) > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if ($nresult && pg_num_rows($nresult) > 0) {
</span>                     print '<br /><i>Dependencies:</i> ';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    while ($nrow = mysql_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    while ($nrow = pg_fetch_row($nresult)) {
</span>                         $library = preg_replace('/^(?:[^:]*:){1,2}/', '', $nrow[0]);
                         print "<a href=\"$phpself?by=library&amp;substr=" . urlencode($library) . '">'
                         . htmlspecialchars($library) . '</a> ';
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -253,12 +257,12 @@
</span>                 }
 
                 /* Variants */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nquery = "SELECT variant FROM $portsdb_name.variants WHERE portfile='" . mysql_real_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nquery = "SELECT variant FROM variants WHERE portfile='" . pg_escape_string($row['name']) .
</span>                 "' ORDER BY variant";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                $nresult = mysql_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if ($nresult && mysql_num_rows($nresult) > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if ($nresult && pg_num_rows($nresult) > 0) {
</span>                     print '<br /><i>Variants:</i> ';
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    while ($nrow = mysql_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    while ($nrow = pg_fetch_row($nresult)) {
</span>                         print "<a href=\"$phpself?by=variant&amp;substr=" . urlencode($nrow[0]) . '">'
                         . htmlspecialchars($nrow[0]) . '</a> ';
                     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -274,7 +278,7 @@
</span> 
         /* When we hit this else, the query failed for some reason */
         } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            print '<p>An Error Occurred: '. mysql_error($portsdb_info['connection_handler']) . '</p>';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            print '<p>An Error Occurred: '. pg_last_error($portsdb_info['connection_handler']) . '</p>';
</span>         }
         
     } /* if (main query sent to the DB) */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -285,5 +289,5 @@
</span> 
 <?php
     print_footer();
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    mysql_close($portsdb_info['connection_handler']);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pg_close($portsdb_info['connection_handler']);
</span> ?>
</pre><pre style='margin:0'>

</pre>