Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PostgreSQL driver refactoring #1008

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion adodb-lib.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ function _adodb_getcount($zthis, $sql,$inputarr=false,$secs2cache=0)
* statement to have an alias for the result
*/
$requiresAlias = '';
$requiresAliasArray = array('postgres9','postgres','mysql','mysqli','mssql','mssqlnative','sqlsrv');
$requiresAliasArray = array('postgres','mysql','mysqli','mssql','mssqlnative','sqlsrv');
if (in_array($zthis->databaseType,$requiresAliasArray)
|| in_array($zthis->dsnType,$requiresAliasArray)
) {
Expand Down
2 changes: 1 addition & 1 deletion adodb-pear.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ function connect($dsn, $options = false)
$dsninfo = DB::parseDSN($dsn);
}
switch ($dsninfo["phptype"]) {
case 'pgsql': $type = 'postgres7'; break;
case 'pgsql': $type = 'postgres'; break;
case 'ifx': $type = 'informix9'; break;
default: $type = $dsninfo["phptype"]; break;
}
Expand Down
34 changes: 20 additions & 14 deletions adodb.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,9 @@ abstract class ADOConnection {
var $nameQuote = '"'; /// string to use to quote identifiers and names
var $leftBracket = '['; /// left square bracked for t-sql styled column names
var $rightBracket = ']'; /// right square bracked for t-sql styled column names
var $charSet=false; /// character set to use - only for interbase, postgres and oci8

/** @var string|bool Character set to use - only for interbase, postgres and oci8 */
var $charSet = false;

/** @var string SQL statement to get databases */
var $metaDatabasesSQL = '';
Expand Down Expand Up @@ -586,7 +588,10 @@ abstract class ADOConnection {
var $hasInsertID = false; /// supports autoincrement ID?
var $hasAffectedRows = false; /// supports affected rows for update/delete?
var $hasTop = false; /// support mssql/access SELECT TOP 10 * FROM TABLE
var $hasLimit = false; /// support pgsql/mysql SELECT * FROM TABLE LIMIT 10

/** @var bool Support for SELECT * FROM table LIMIT 10 */
var $hasLimit = false;

var $readOnly = false; /// this is a readonly database - used by phpLens
var $hasMoveFirst = false; /// has ability to run MoveFirst(), scrolling backwards
var $hasGenID = false; /// can generate sequences using GenID();
Expand Down Expand Up @@ -654,7 +659,10 @@ abstract class ADOConnection {
var $uniqueSort = false; /// indicates that all fields in order by must be unique
var $leftOuter = false; /// operator to use for left outer join in WHERE clause
var $rightOuter = false; /// operator to use for right outer join in WHERE clause
var $ansiOuter = false; /// whether ansi outer join syntax supported

/** @var bool Support for ANSI outer join syntax */
var $ansiOuter = false;

var $autoRollback = false; // autoRollback on PConnect().
var $poorAffectedRows = false; // affectedRows not working or unreliable

Expand Down Expand Up @@ -3239,15 +3247,16 @@ function _findschema(&$table,&$schema) {

/**
* List columns in a database as an array of ADOFieldObjects.
* See top of file for definition of object.
*
* @param $table table name to query
* @param $normalize makes table name case-insensitive (required by some databases)
* @schema is optional database schema to use - not supported by all databases.
* For databases that support schemas, pass it in the $table param "$schema.$tabname".
* @see ADOFieldObject
*
* @param string $table Table name to query
* @param bool $normalize Makes table name case-insensitive (required by some databases)
*
* @return array of ADOFieldObjects for current table.
* @return ADOFieldObject[]|false Array of ADOFieldObjects or false if failure
*/
function MetaColumns($table,$normalize=true) {
function metaColumns($table, $normalize = true) {
global $ADODB_FETCH_MODE;

if (!empty($this->metaColumnsSQL)) {
Expand Down Expand Up @@ -4037,6 +4046,7 @@ class ADORecordSet implements IteratorAggregate {
* public variables
*/
var $dataProvider = "native";
var $databaseType = "";

/**
* @var string Table name (used in _adodb_getupdatesql() and _adodb_getinsertsql())-
Expand Down Expand Up @@ -5554,7 +5564,7 @@ function ADOLoadCode($dbType) {

case 'pgsql':
case 'postgres':
$class = $db = 'postgres9';
$class = $db = 'postgres';
break;

case 'mysql':
Expand Down Expand Up @@ -5861,10 +5871,6 @@ function _adodb_getdriver($provider,$drivername,$perf=false) {
case 'mysqli':
$drivername='mysql';
break;
case 'postgres7':
case 'postgres8':
$drivername = 'postgres';
break;
case 'firebird15':
$drivername = 'firebird';
break;
Expand Down
6 changes: 3 additions & 3 deletions drivers/adodb-netezza.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
// security - hide paths
if (!defined('ADODB_DIR')) die();

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

class ADODB_netezza extends ADODB_postgres64 {
class ADODB_netezza extends ADODB_postgres {
var $databaseType = 'netezza';
var $dataProvider = 'netezza';
var $hasInsertID = false;
Expand Down Expand Up @@ -145,7 +145,7 @@ function MetaColumns($table,$upper=true)
Class Name: Recordset
--------------------------------------------------------------------------------------*/

class ADORecordSet_netezza extends ADORecordSet_postgres64
class ADORecordSet_netezza extends ADORecordSet_postgres
{
var $databaseType = "netezza";
var $canSeek = true;
Expand Down