Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

<?php
/**
 * Oracle 8.0.5 (oci8) driver
 *
 * @deprecated
 *
 * Optimizes selectLimit() performance with FIRST_ROWS hint.
 *
 * This file is part of ADOdb, a Database Abstraction Layer library for PHP.
 *
 * @package ADOdb
 * @link https://adodb.org Project's web site and documentation
 * @link https://github.com/ADOdb/ADOdb Source code and issue tracker
 *
 * The ADOdb Library is dual-licensed, released under both the BSD 3-Clause
 * and the GNU Lesser General Public Licence (LGPL) v2.1 or, at your option,
 * any later version. This means you can use it in proprietary products.
 * See the LICENSE.md file distributed with this source code for details.
 * @license BSD-3-Clause
 * @license LGPL-2.1-or-later
 *
 * @copyright 2000-2013 John Lim
 * @copyright 2014 Damien Regad, Mark Newnham and the ADOdb community
 */

// security - hide paths
if (!defined('ADODB_DIR')) die();

include_once(ADODB_DIR.'/drivers/adodb-oci8.inc.php');

class ADODB_oci805 extends ADODB_oci8 {
        var $databaseType = "oci805";
        var $connectSID = true;

        function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0)
        {
                // seems that oracle only supports 1 hint comment in 8i
                if (strpos($sql,'/*+') !== false)
                        $sql = str_replace('/*+ ','/*+FIRST_ROWS ',$sql);
                else
                        $sql = preg_replace('/^[ \t\n]*select/i','SELECT /*+FIRST_ROWS*/',$sql);

                /*
                        The following is only available from 8.1.5 because order by in inline views not
                        available before then...
                        http://www.jlcomp.demon.co.uk/faq/top_sql.html
                if ($nrows > 0) {
                        if ($offset > 0) $nrows += $offset;
                        $sql = "select * from ($sql) where rownum <= $nrows";
                        $nrows = -1;
                }
                */

                return ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache);
        }
}

class ADORecordset_oci805 extends ADORecordset_oci8 {
        var $databaseType = "oci805";
}