Ignore:
Timestamp:
May 2, 2016, 12:09:23 PM (3 years ago)
Author:
jrpelegrina
Message:

Updated to moodle 3.0.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • moodle/trunk/fuentes/lib/adodb/drivers/adodb-postgres64.inc.php

    r136 r1331  
    11<?php
    22/*
    3  V5.19  23-Apr-2014  (c) 2000-2014 John Lim (jlim#natsoft.com). All rights reserved.
     3 @version   v5.20.1  06-Dec-2015
     4 @copyright (c) 2000-2013 John Lim (jlim#natsoft.com). All rights reserved.
     5 @copyright (c) 2014      Damien Regad, Mark Newnham and the ADOdb community
    46  Released under both BSD license and Lesser GPL library license.
    57  Whenever there is any discrepancy between the two licenses,
     
    146148        function pg_insert_id($tablename,$fieldname)
    147149        {
    148                 $result=pg_exec($this->_connectionID, "SELECT last_value FROM ${tablename}_${fieldname}_seq");
     150                $result=pg_query($this->_connectionID, 'SELECT last_value FROM '. $tablename .'_'. $fieldname .'_seq');
    149151                if ($result) {
    150152                        $arr = @pg_fetch_row($result,0);
    151                         pg_freeresult($result);
     153                        pg_free_result($result);
    152154                        if (isset($arr[0])) return $arr[0];
    153155                }
     
    155157        }
    156158
    157 /* Warning from http://www.php.net/manual/function.pg-getlastoid.php:
    158 Using a OID as a unique identifier is not generally wise.
    159 Unless you are very careful, you might end up with a tuple having
    160 a different OID if a database must be reloaded. */
     159        /**
     160         * Warning from http://www.php.net/manual/function.pg-getlastoid.php:
     161         * Using a OID as a unique identifier is not generally wise.
     162         * Unless you are very careful, you might end up with a tuple having
     163         * a different OID if a database must be reloaded.
     164         */
    161165        function _insertid($table,$column)
    162166        {
     
    167171        }
    168172
    169 // I get this error with PHP before 4.0.6 - jlim
    170 // Warning: This compilation does not support pg_cmdtuples() in adodb-postgres.inc.php on line 44
    171173        function _affectedrows()
    172174        {
    173175                if (!is_resource($this->_resultid) || get_resource_type($this->_resultid) !== 'pgsql result') return false;
    174                 return pg_cmdtuples($this->_resultid);
    175         }
    176 
    177 
    178                 // returns true/false
     176                return pg_affected_rows($this->_resultid);
     177        }
     178
     179
     180        /**
     181         * @return true/false
     182         */
    179183        function BeginTrans()
    180184        {
    181185                if ($this->transOff) return true;
    182186                $this->transCnt += 1;
    183                 return @pg_Exec($this->_connectionID, "begin ".$this->_transmode);
     187                return pg_query($this->_connectionID, 'begin '.$this->_transmode);
    184188        }
    185189
     
    197201
    198202                $this->transCnt -= 1;
    199                 return @pg_Exec($this->_connectionID, "commit");
     203                return pg_query($this->_connectionID, 'commit');
    200204        }
    201205
     
    205209                if ($this->transOff) return true;
    206210                $this->transCnt -= 1;
    207                 return @pg_Exec($this->_connectionID, "rollback");
     211                return pg_query($this->_connectionID, 'rollback');
    208212        }
    209213
     
    355359        function UpdateBlobFile($table,$column,$path,$where,$blobtype='BLOB')
    356360        {
    357                 pg_exec ($this->_connectionID, "begin");
     361                pg_query($this->_connectionID, 'begin');
    358362
    359363                $fd = fopen($path,'r');
     
    367371
    368372                // $oid = pg_lo_import ($path);
    369                 pg_exec($this->_connectionID, "commit");
     373                pg_query($this->_connectionID, 'commit');
    370374                $rs = ADOConnection::UpdateBlob($table,$column,$oid,$where,$blobtype);
    371375                $rez = !empty($rs);
     
    383387        function BlobDelete( $blob )
    384388        {
    385                 pg_exec ($this->_connectionID, "begin");
     389                pg_query($this->_connectionID, 'begin');
    386390                $result = @pg_lo_unlink($blob);
    387                 pg_exec ($this->_connectionID, "commit");
     391                pg_query($this->_connectionID, 'commit');
    388392                return( $result );
    389393        }
     
    414418                if (!$this->GuessOID($blob)) return $blob;
    415419
    416                 if ($hastrans) @pg_exec($this->_connectionID,"begin");
    417                 $fd = @pg_lo_open($this->_connectionID,$blob,"r");
     420                if ($hastrans) pg_query($this->_connectionID,'begin');
     421                $fd = @pg_lo_open($this->_connectionID,$blob,'r');
    418422                if ($fd === false) {
    419                         if ($hastrans) @pg_exec($this->_connectionID,"commit");
     423                        if ($hastrans) pg_query($this->_connectionID,'commit');
    420424                        return $blob;
    421425                }
    422426                if (!$maxsize) $maxsize = $this->maxblobsize;
    423                 $realblob = @pg_loread($fd,$maxsize);
     427                $realblob = @pg_lo_read($fd,$maxsize);
    424428                @pg_loclose($fd);
    425                 if ($hastrans) @pg_exec($this->_connectionID,"commit");
     429                if ($hastrans) pg_query($this->_connectionID,'commit');
    426430                return $realblob;
    427431        }
     
    471475        }
    472476
     477        /**
     478         * Generate the SQL to retrieve MetaColumns data
     479         * @param string $table Table name
     480         * @param string $schema Schema name (can be blank)
     481         * @return string SQL statement to execute
     482         */
     483        protected function _generateMetaColumnsSQL($table, $schema)
     484        {
     485                if ($schema) {
     486                        return sprintf($this->metaColumnsSQL1, $table, $table, $schema);
     487                }
     488                else {
     489                        return sprintf($this->metaColumnsSQL, $table, $table, $schema);
     490                }
     491        }
    473492
    474493        // for schema support, pass in the $table param "$schema.$tabname".
     
    477496        function MetaColumns($table,$normalize=true)
    478497        {
    479         global $ADODB_FETCH_MODE;
     498                global $ADODB_FETCH_MODE;
    480499
    481500                $schema = false;
     
    489508                if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
    490509
    491                 if ($schema) $rs = $this->Execute(sprintf($this->metaColumnsSQL1,$table,$table,$schema));
    492                 else $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table,$table,$table));
     510                $rs = $this->Execute($this->_generateMetaColumnsSQL($table, $schema));
    493511                if (isset($savem)) $this->SetFetchMode($savem);
    494512                $ADODB_FETCH_MODE = $save;
     
    722740                # https://bugs.php.net/bug.php?id=59831 states this is in fact not a bug,
    723741                # so we manually set bytea_output
    724                 if (version_compare($info['version'], '9.0', '>=')) {
     742                if ( !empty($this->connection->noBlobs) && version_compare($info['version'], '9.0', '>=')) {
    725743                        $this->Execute('set bytea_output=escape');
    726744                }
     
    760778                        with plan = 1.51861286163 secs
    761779                        no plan =   1.26903700829 secs
    762 
    763 
    764 
    765780                */
    766781                        $plan = 'P'.md5($sql);
     
    780795
    781796
    782                         $rez = @pg_exec($this->_connectionID,$exsql);
     797                        $rez = @pg_execute($this->_connectionID,$exsql);
    783798                        if (!$rez) {
    784799                        # Perhaps plan does not exist? Prepare/compile plan.
     
    804819                                $s = "PREPARE $plan ($params) AS ".substr($sql,0,strlen($sql)-2);
    805820                                //adodb_pr($s);
    806                                 $rez = pg_exec($this->_connectionID,$s);
     821                                $rez = pg_execute($this->_connectionID,$s);
    807822                                //echo $this->ErrorMsg();
    808823                        }
    809824                        if ($rez)
    810                                 $rez = pg_exec($this->_connectionID,$exsql);
     825                                $rez = pg_execute($this->_connectionID,$exsql);
    811826                } else {
    812827                        //adodb_backtrace();
    813                         $rez = pg_exec($this->_connectionID,$sql);
     828                        $rez = pg_query($this->_connectionID,$sql);
    814829                }
    815830                // check if no data returned, then no need to create real recordset
    816                 if ($rez && pg_numfields($rez) <= 0) {
     831                if ($rez && pg_num_fields($rez) <= 0) {
    817832                        if (is_resource($this->_resultid) && get_resource_type($this->_resultid) === 'pgsql result') {
    818                                 pg_freeresult($this->_resultid);
     833                                pg_free_result($this->_resultid);
    819834                        }
    820835                        $this->_resultid = $rez;
     
    865880                if ($this->transCnt) $this->RollbackTrans();
    866881                if ($this->_resultid) {
    867                         @pg_freeresult($this->_resultid);
     882                        @pg_free_result($this->_resultid);
    868883                        $this->_resultid = false;
    869884                }
     
    920935
    921936                // Parent's constructor
    922                 $this->ADORecordSet($queryID);
    923         }
    924 
    925         function GetRowAssoc($upper=true)
    926         {
    927                 if ($this->fetchMode == PGSQL_ASSOC && !$upper) return $this->fields;
     937                parent::__construct($queryID);
     938        }
     939
     940        function GetRowAssoc($upper = ADODB_ASSOC_CASE)
     941        {
     942                if ($this->fetchMode == PGSQL_ASSOC && $upper == ADODB_ASSOC_CASE_LOWER) {
     943                        return $this->fields;
     944                }
    928945                $row = ADORecordSet::GetRowAssoc($upper);
    929946                return $row;
     
    935952        global $ADODB_COUNTRECS;
    936953                $qid = $this->_queryID;
    937                 $this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($qid):-1;
    938                 $this->_numOfFields = @pg_numfields($qid);
     954                $this->_numOfRows = ($ADODB_COUNTRECS)? @pg_num_rows($qid):-1;
     955                $this->_numOfFields = @pg_num_fields($qid);
    939956
    940957                // cache types for blob decode check
    941                 // apparently pg_fieldtype actually performs an sql query on the database to get the type.
     958                // apparently pg_field_type actually performs an sql query on the database to get the type.
    942959                if (empty($this->connection->noBlobs))
    943960                for ($i=0, $max = $this->_numOfFields; $i < $max; $i++) {
    944                         if (pg_fieldtype($qid,$i) == 'bytea') {
    945                                 $this->_blobArr[$i] = pg_fieldname($qid,$i);
     961                        if (pg_field_type($qid,$i) == 'bytea') {
     962                                $this->_blobArr[$i] = pg_field_name($qid,$i);
    946963                        }
    947964                }
     
    968985
    969986                $o= new ADOFieldObject();
    970                 $o->name = @pg_fieldname($this->_queryID,$off);
    971                 $o->type = @pg_fieldtype($this->_queryID,$off);
     987                $o->name = @pg_field_name($this->_queryID,$off);
     988                $o->type = @pg_field_type($this->_queryID,$off);
    972989                $o->max_length = @pg_fieldsize($this->_queryID,$off);
    973990                return $o;
     
    10331050        function _close()
    10341051        {
    1035                 return @pg_freeresult($this->_queryID);
     1052                return @pg_free_result($this->_queryID);
    10361053        }
    10371054
Note: See TracChangeset for help on using the changeset viewer.