diff options
| author | Damien Regad <dregad@mantisbt.org> | 2021-08-16 01:38:36 +0200 |
|---|---|---|
| committer | Damien Regad <dregad@mantisbt.org> | 2021-08-16 01:38:36 +0200 |
| commit | a6733f61b0165b366c8d2c70d9af82edc3881951 (patch) | |
| tree | 0c1d0654fc89f5aa817f64834f64e2f48ea2a6af /datadict | |
| parent | af9234a525c3255af051a330164486d73be4c63a (diff) | |
| download | adodb-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.php | 17 | ||||
| -rw-r--r-- | datadict/datadict-db2.inc.php | 9 | ||||
| -rw-r--r-- | datadict/datadict-firebird.inc.php | 10 | ||||
| -rw-r--r-- | datadict/datadict-generic.inc.php | 12 | ||||
| -rw-r--r-- | datadict/datadict-ibase.inc.php | 11 | ||||
| -rw-r--r-- | datadict/datadict-informix.inc.php | 9 | ||||
| -rw-r--r-- | datadict/datadict-mssql.inc.php | 17 | ||||
| -rw-r--r-- | datadict/datadict-mssqlnative.inc.php | 18 | ||||
| -rw-r--r-- | datadict/datadict-mysql.inc.php | 31 | ||||
| -rw-r--r-- | datadict/datadict-oci8.inc.php | 17 | ||||
| -rw-r--r-- | datadict/datadict-postgres.inc.php | 24 | ||||
| -rw-r--r-- | datadict/datadict-sapdb.inc.php | 17 | ||||
| -rw-r--r-- | datadict/datadict-sqlite.inc.php | 12 | ||||
| -rw-r--r-- | datadict/datadict-sybase.inc.php | 18 |
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': |
