summaryrefslogtreecommitdiff
path: root/datadict
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2021-08-16 01:38:36 +0200
committerDamien Regad <dregad@mantisbt.org>2021-08-16 01:38:36 +0200
commita6733f61b0165b366c8d2c70d9af82edc3881951 (patch)
tree0c1d0654fc89f5aa817f64834f64e2f48ea2a6af /datadict
parentaf9234a525c3255af051a330164486d73be4c63a (diff)
downloadadodb-a6733f61b0165b366c8d2c70d9af82edc3881951.tar.gz
adodb-a6733f61b0165b366c8d2c70d9af82edc3881951.tar.bz2
adodb-a6733f61b0165b366c8d2c70d9af82edc3881951.zip
Fix incorrect resolution of merge conflicts
Partial revert of e9dcce3df24912ad869d0193f0b419f2309101fc.
Diffstat (limited to 'datadict')
-rw-r--r--datadict/datadict-access.inc.php17
-rw-r--r--datadict/datadict-db2.inc.php9
-rw-r--r--datadict/datadict-firebird.inc.php10
-rw-r--r--datadict/datadict-generic.inc.php12
-rw-r--r--datadict/datadict-ibase.inc.php11
-rw-r--r--datadict/datadict-informix.inc.php9
-rw-r--r--datadict/datadict-mssql.inc.php17
-rw-r--r--datadict/datadict-mssqlnative.inc.php18
-rw-r--r--datadict/datadict-mysql.inc.php31
-rw-r--r--datadict/datadict-oci8.inc.php17
-rw-r--r--datadict/datadict-postgres.inc.php24
-rw-r--r--datadict/datadict-sapdb.inc.php17
-rw-r--r--datadict/datadict-sqlite.inc.php12
-rw-r--r--datadict/datadict-sybase.inc.php18
14 files changed, 201 insertions, 21 deletions
diff --git a/datadict/datadict-access.inc.php b/datadict/datadict-access.inc.php
index 7a7d4cbb..3667acae 100644
--- a/datadict/datadict-access.inc.php
+++ b/datadict/datadict-access.inc.php
@@ -30,6 +30,15 @@ class ADODB2_access extends ADODB_DataDict {
function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'TEXT';
case 'XL':
@@ -44,15 +53,15 @@ class ADODB2_access extends ADODB_DataDict {
case 'D': return 'DATETIME';
case 'T': return 'DATETIME';
- case 'L': return 'BYTE';
- case 'I': return 'INTEGER';
+ case 'L': return 'BYTE';
+ case 'I': return 'INTEGER';
case 'I1': return 'BYTE';
case 'I2': return 'SMALLINT';
case 'I4': return 'INTEGER';
case 'I8': return 'INTEGER';
- case 'F': return 'DOUBLE';
- case 'N': return 'NUMERIC';
+ case 'F': return 'DOUBLE';
+ case 'N': return 'NUMERIC';
default:
return $meta;
}
diff --git a/datadict/datadict-db2.inc.php b/datadict/datadict-db2.inc.php
index c5dda09f..9ac106bb 100644
--- a/datadict/datadict-db2.inc.php
+++ b/datadict/datadict-db2.inc.php
@@ -34,6 +34,15 @@ class ADODB2_db2 extends ADODB_DataDict {
function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';
case 'XL': return 'CLOB';
diff --git a/datadict/datadict-firebird.inc.php b/datadict/datadict-firebird.inc.php
index 0020a0ae..ba80699d 100644
--- a/datadict/datadict-firebird.inc.php
+++ b/datadict/datadict-firebird.inc.php
@@ -34,6 +34,16 @@ class ADODB2_firebird extends ADODB_DataDict {
function ActualType($meta)
{
+
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';
case 'XL':
diff --git a/datadict/datadict-generic.inc.php b/datadict/datadict-generic.inc.php
index c9c8dee8..0a462b8f 100644
--- a/datadict/datadict-generic.inc.php
+++ b/datadict/datadict-generic.inc.php
@@ -28,8 +28,18 @@ class ADODB2_generic extends ADODB_DataDict {
var $seqField = false;
- function ActualType($meta)
+ function ActualType($meta)
{
+
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';
case 'XL':
diff --git a/datadict/datadict-ibase.inc.php b/datadict/datadict-ibase.inc.php
index 5f58880f..d0da9597 100644
--- a/datadict/datadict-ibase.inc.php
+++ b/datadict/datadict-ibase.inc.php
@@ -28,8 +28,17 @@ class ADODB2_ibase extends ADODB_DataDict {
var $seqField = false;
- function ActualType($meta)
+ function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';
case 'XL':
diff --git a/datadict/datadict-informix.inc.php b/datadict/datadict-informix.inc.php
index acb5ba74..9e151633 100644
--- a/datadict/datadict-informix.inc.php
+++ b/datadict/datadict-informix.inc.php
@@ -30,6 +30,15 @@ class ADODB2_informix extends ADODB_DataDict {
function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';// 255
case 'XL':
diff --git a/datadict/datadict-mssql.inc.php b/datadict/datadict-mssql.inc.php
index 1bcb27da..17df9e39 100644
--- a/datadict/datadict-mssql.inc.php
+++ b/datadict/datadict-mssql.inc.php
@@ -68,9 +68,14 @@ class ADODB2_mssql extends ADODB_DataDict {
$t = $fieldobj->type;
$len = $fieldobj->max_length;
}
+
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
$len = -1; // mysql max_length is not accurate
- switch (strtoupper($t)) {
+ switch ($t) {
case 'R':
case 'INT':
case 'INTEGER': return 'I';
@@ -87,6 +92,16 @@ class ADODB2_mssql extends ADODB_DataDict {
function ActualType($meta)
{
+
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch(strtoupper($meta)) {
case 'C': return 'VARCHAR';
diff --git a/datadict/datadict-mssqlnative.inc.php b/datadict/datadict-mssqlnative.inc.php
index b53dcd97..59228cbe 100644
--- a/datadict/datadict-mssqlnative.inc.php
+++ b/datadict/datadict-mssqlnative.inc.php
@@ -71,7 +71,13 @@ class ADODB2_mssqlnative extends ADODB_DataDict {
$fieldobj = $t;
$t = $fieldobj->type;
}
-
+
+
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
+
$_typeConversion = array(
-155 => 'D',
93 => 'D',
@@ -115,7 +121,15 @@ class ADODB2_mssqlnative extends ADODB_DataDict {
function ActualType($meta)
{
$DATE_TYPE = 'DATETIME';
-
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch(strtoupper($meta)) {
case 'C': return 'VARCHAR';
diff --git a/datadict/datadict-mysql.inc.php b/datadict/datadict-mysql.inc.php
index a1ee950a..9efbba1f 100644
--- a/datadict/datadict-mysql.inc.php
+++ b/datadict/datadict-mysql.inc.php
@@ -33,7 +33,7 @@ class ADODB2_mysql extends ADODB_DataDict {
public $blobAllowsNotNull = true;
- function MetaType($t,$len=-1,$fieldobj=false)
+ function metaType($t,$len=-1,$fieldobj=false)
{
if (is_object($t)) {
@@ -44,7 +44,14 @@ class ADODB2_mysql extends ADODB_DataDict {
$is_serial = is_object($fieldobj) && $fieldobj->primary_key && $fieldobj->auto_increment;
$len = -1; // mysql max_length is not accurate
- switch (strtoupper($t)) {
+
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
+
+ switch ($t) {
+
case 'STRING':
case 'CHAR':
case 'VARCHAR':
@@ -84,13 +91,27 @@ class ADODB2_mysql extends ADODB_DataDict {
case 'SMALLINT': return $is_serial ? 'R' : 'I2';
case 'MEDIUMINT': return $is_serial ? 'R' : 'I4';
case 'BIGINT': return $is_serial ? 'R' : 'I8';
- default: return ADODB_DEFAULT_METATYPE;
+ default:
+
+ return ADODB_DEFAULT_METATYPE;
}
}
function ActualType($meta)
{
- switch(strtoupper($meta)) {
+
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
+ switch($meta)
+ {
+
case 'C': return 'VARCHAR';
case 'XL':return 'LONGTEXT';
case 'X': return 'TEXT';
@@ -114,7 +135,9 @@ class ADODB2_mysql extends ADODB_DataDict {
case 'F': return 'DOUBLE';
case 'N': return 'NUMERIC';
+
default:
+
return $meta;
}
}
diff --git a/datadict/datadict-oci8.inc.php b/datadict/datadict-oci8.inc.php
index 9a239095..6d2cd244 100644
--- a/datadict/datadict-oci8.inc.php
+++ b/datadict/datadict-oci8.inc.php
@@ -50,7 +50,13 @@ class ADODB2_oci8 extends ADODB_DataDict {
$t = $fieldobj->type;
$len = $fieldobj->max_length;
}
- switch (strtoupper($t)) {
+
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
+
+ switch ($t) {
case 'VARCHAR':
case 'VARCHAR2':
case 'CHAR':
@@ -92,6 +98,15 @@ class ADODB2_oci8 extends ADODB_DataDict {
function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';
case 'X': return $this->typeX;
diff --git a/datadict/datadict-postgres.inc.php b/datadict/datadict-postgres.inc.php
index 17627c44..94cfec2e 100644
--- a/datadict/datadict-postgres.inc.php
+++ b/datadict/datadict-postgres.inc.php
@@ -42,16 +42,23 @@ class ADODB2_postgres extends ADODB_DataDict
$t = $fieldobj->type;
$len = $fieldobj->max_length;
}
+
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
+
$is_serial = is_object($fieldobj) && !empty($fieldobj->primary_key) && !empty($fieldobj->unique) &&
!empty($fieldobj->has_default) && substr($fieldobj->default_value,0,8) == 'nextval(';
- switch (strtoupper($t)) {
+ switch ($t) {
+
case 'INTERVAL':
case 'CHAR':
case 'CHARACTER':
case 'VARCHAR':
case 'NAME':
- case 'BPCHAR':
+ case 'BPCHAR':
if ($len <= $this->blobSize) return 'C';
case 'TEXT':
@@ -99,8 +106,17 @@ class ADODB2_postgres extends ADODB_DataDict
}
}
- function actualType($meta)
+ function actualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch ($meta) {
case 'C': return 'VARCHAR';
case 'XL':
@@ -152,7 +168,7 @@ class ADODB2_postgres extends ADODB_DataDict
if (preg_match('/^([^ ]+) .*DEFAULT (\'[^\']+\'|\"[^\"]+\"|[^ ]+)/',$v,$matches)) {
list(,$colname,$default) = $matches;
$sql[] = $alter . str_replace('DEFAULT '.$default,'',$v);
- $sql[] = 'UPDATE '.$tabname.' SET '.$colname.'='.$default;
+ $sql[] = 'UPDATE '.$tabname.' SET '.$colname.'='.$default.' WHERE '.$colname.' IS NULL ';
$sql[] = 'ALTER TABLE '.$tabname.' ALTER COLUMN '.$colname.' SET DEFAULT ' . $default;
} else {
$sql[] = $alter . $v;
diff --git a/datadict/datadict-sapdb.inc.php b/datadict/datadict-sapdb.inc.php
index 20c16aa6..25f91c93 100644
--- a/datadict/datadict-sapdb.inc.php
+++ b/datadict/datadict-sapdb.inc.php
@@ -28,8 +28,17 @@ class ADODB2_sapdb extends ADODB_DataDict {
var $seqField = false;
var $renameColumn = 'RENAME COLUMN %s.%s TO %s';
- function ActualType($meta)
+ function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch($meta) {
case 'C': return 'VARCHAR';
case 'XL':
@@ -65,6 +74,12 @@ class ADODB2_sapdb extends ADODB_DataDict {
$t = $fieldobj->type;
$len = $fieldobj->max_length;
}
+
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
+
static $maxdb_type2adodb = array(
'VARCHAR' => 'C',
'CHARACTER' => 'C',
diff --git a/datadict/datadict-sqlite.inc.php b/datadict/datadict-sqlite.inc.php
index 942927f8..d190cb99 100644
--- a/datadict/datadict-sqlite.inc.php
+++ b/datadict/datadict-sqlite.inc.php
@@ -32,9 +32,19 @@ class ADODB2_sqlite extends ADODB_DataDict {
public $blobAllowsDefaultValue = true;
public $blobAllowsNotNull = true;
-
+
function ActualType($meta)
{
+
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch(strtoupper($meta)) {
case 'C': return 'VARCHAR'; // TEXT , TEXT affinity
case 'XL':return 'LONGTEXT'; // TEXT , TEXT affinity
diff --git a/datadict/datadict-sybase.inc.php b/datadict/datadict-sybase.inc.php
index e565f8e2..ff018315 100644
--- a/datadict/datadict-sybase.inc.php
+++ b/datadict/datadict-sybase.inc.php
@@ -35,8 +35,15 @@ class ADODB2_sybase extends ADODB_DataDict {
$len = $fieldobj->max_length;
}
+ $t = strtoupper($t);
+
+ if (array_key_exists($t,$this->connection->customActualTypes))
+ return $this->connection->customActualTypes[$t];
+
$len = -1; // mysql max_length is not accurate
- switch (strtoupper($t)) {
+
+ switch ($t) {
+
case 'INT':
case 'INTEGER': return 'I';
@@ -53,6 +60,15 @@ class ADODB2_sybase extends ADODB_DataDict {
function ActualType($meta)
{
+ $meta = strtoupper($meta);
+
+ /*
+ * Add support for custom meta types. We do this
+ * first, that allows us to override existing types
+ */
+ if (isset($this->connection->customMetaTypes[$meta]))
+ return $this->connection->customMetaTypes[$meta]['actual'];
+
switch(strtoupper($meta)) {
case 'C': return 'VARCHAR';
case 'XL':