123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- if (!defined('ADODB_DIR')) die();
- include_once(ADODB_DIR.'/drivers/adodb-postgres64.inc.php');
- class ADODB_netezza extends ADODB_postgres64 {
- var $databaseType = 'netezza';
- var $dataProvider = 'netezza';
- var $hasInsertID = false;
- var $_resultid = false;
- var $concat_operator='||';
- var $random = 'random';
- var $metaDatabasesSQL = "select objname from _v_object_data where objtype='database' order by 1";
- var $metaTablesSQL = "select objname from _v_object_data where objtype='table' order by 1";
- var $isoDates = true;
- var $sysDate = "CURRENT_DATE";
- var $sysTimeStamp = "CURRENT_TIMESTAMP";
- var $blobEncodeType = 'C';
- var $metaColumnsSQL = "SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum";
- var $metaColumnsSQL1 = "SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum";
-
-
- var $metaKeySQL = "";
- var $hasAffectedRows = true;
- var $hasLimit = true;
- var $true = 't';
- var $false = 'f';
- var $fmtDate = "'Y-m-d'";
- var $fmtTimeStamp = "'Y-m-d G:i:s'";
- var $ansiOuter = true;
- var $autoRollback = true;
-
-
- function ADODB_netezza()
- {
-
- }
-
- function &MetaColumns($table,$upper=true)
- {
-
-
-
-
- global $ADODB_FETCH_MODE;
-
- $table = strtolower($table);
- $save = $ADODB_FETCH_MODE;
- $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
- if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
-
- $rs =& $this->Execute(sprintf($this->metaColumnsSQL,$table,$table));
- if (isset($savem)) $this->SetFetchMode($savem);
- $ADODB_FETCH_MODE = $save;
-
- if ($rs === false) return false;
- $retarr = array();
- while (!$rs->EOF) {
- $fld = new ADOFieldObject();
- $fld->name = $rs->fields[0];
-
-
-
-
- if ($first = strstr($rs->fields[1], "(")) {
- $fld->max_length = trim($first, "()");
- } else {
- $fld->max_length = -1;
- }
-
- if ($first = strpos($rs->fields[1], "(")) {
- $fld->type = substr($rs->fields[1], 0, $first);
- } else {
- $fld->type = $rs->fields[1];
- }
-
- switch ($fld->type) {
- case "byteint":
- case "boolean":
- $fld->max_length = 1;
- break;
- case "smallint":
- $fld->max_length = 2;
- break;
- case "integer":
- case "numeric":
- case "date":
- $fld->max_length = 4;
- break;
- case "bigint":
- case "time":
- case "timestamp":
- $fld->max_length = 8;
- break;
- case "timetz":
- case "time with time zone":
- $fld->max_length = 12;
- break;
- }
-
- if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;
- else $retarr[($upper) ? strtoupper($fld->name) : $fld->name] = $fld;
-
- $rs->MoveNext();
- }
- $rs->Close();
- return $retarr;
-
- }
-
- }
-
- class ADORecordSet_netezza extends ADORecordSet_postgres64
- {
- var $databaseType = "netezza";
- var $canSeek = true;
-
- function ADORecordSet_netezza($queryID,$mode=false)
- {
- if ($mode === false) {
- global $ADODB_FETCH_MODE;
- $mode = $ADODB_FETCH_MODE;
- }
- switch ($mode)
- {
- case ADODB_FETCH_NUM: $this->fetchMode = PGSQL_NUM; break;
- case ADODB_FETCH_ASSOC:$this->fetchMode = PGSQL_ASSOC; break;
-
- case ADODB_FETCH_DEFAULT:
- case ADODB_FETCH_BOTH:
- default: $this->fetchMode = PGSQL_BOTH; break;
- }
- $this->adodbFetchMode = $mode;
- $this->ADORecordSet($queryID);
- }
-
-
- function _initrs()
- {
- global $ADODB_COUNTRECS;
- $this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($this->_queryID):-1;
- $this->_numOfFields = @pg_numfields($this->_queryID);
- }
- }
- ?>
|