summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMark Newnham <mark@newnhams.com>2026-02-14 22:15:34 -0700
committerMark Newnham <mark@newnhams.com>2026-02-14 22:15:34 -0700
commit0233f675713a1c694155729770e85a3eded0b965 (patch)
treeacfb1ac9bbd2038034ab78458b0a79e8ea1d9e9c /drivers
parent96e380ecd5d680e8a3e2c2addd3095cf706cb8c3 (diff)
downloadadodb-0233f675713a1c694155729770e85a3eded0b965.tar.gz
adodb-0233f675713a1c694155729770e85a3eded0b965.tar.bz2
adodb-0233f675713a1c694155729770e85a3eded0b965.zip
Adds support for schema owner and the associative and numericIndex flags
Diffstat (limited to 'drivers')
-rw-r--r--drivers/adodb-db2.inc.php47
1 files changed, 37 insertions, 10 deletions
diff --git a/drivers/adodb-db2.inc.php b/drivers/adodb-db2.inc.php
index d8033b67..4ecfdb1c 100644
--- a/drivers/adodb-db2.inc.php
+++ b/drivers/adodb-db2.inc.php
@@ -852,7 +852,7 @@ class ADODB_db2 extends ADOConnection {
$schema = '';
$this->_findschema($table,$schema);
- $metaTables = $this->metaTables('T','',$table);
+ $metaTables = $this->metaTables('T', $owner, $table);
if ($metaTables == false) {
return false;
@@ -881,6 +881,9 @@ class ADODB_db2 extends ADOConnection {
foreach ($results as $r)
{
+ $r = array_change_key_case($r, CASE_UPPER);
+
+
/*
[CONSTNAME] => SQL250829011849680
@@ -900,22 +903,46 @@ class ADODB_db2 extends ADOConnection {
[DEFINER] => DB2INST1
)
*/
- $referenceTable = trim($r['REFTABNAME']);
- if (!array_key_exists($referenceTable,$foreignKeys)) {
+ $casing = $upper ? CASE_UPPER : CASE_LOWER;
+
+ $referenceTable = trim($r['REFTABNAME']);
+
+ if ($casing == CASE_UPPER) {
+ $referenceTable = strtoupper($referenceTable);
+ } else {
+ $referenceTable = strtolower($referenceTable);
+ }
+
+ if (!array_key_exists($referenceTable, $foreignKeys)) {
$foreignKeys[$referenceTable] = array();
}
- $pkColnames = array_filter(preg_split('/ +/', $r['PK_COLNAMES']));
+
+ $pkColnames = array_filter(preg_split('/ +/', $r['PK_COLNAMES']) );
$fkColnames = array_filter(preg_split('/ +/', $r['FK_COLNAMES']));
- foreach ($pkColnames as $i=>$pkColname) {
+ foreach ($pkColnames as $i => $pkColname) {
$pkColname = trim($pkColname);
$fkColname = trim($fkColnames[$i]);
- if ($baseFetchMode == ADODB_FETCH_ASSOC) {
- $foreignKeys[$referenceTable][$pkColname] = $fkColname;
+
+ if ($casing == CASE_UPPER) {
+ $pkColname = strtoupper($pkColname);
+ $fkColname = strtoupper($fkColname);
+ } else {
+ $pkColname = strtolower($pkColname);
+ $fkColname = strtolower($fkColname);
+ }
+
+ if ($baseFetchMode == ADODB_FETCH_ASSOC || $associative) {
+ $foreignKeys[$referenceTable][$fkColname] = $pkColname;
+
} else {
- $foreignKeys[$referenceTable][] = sprintf('%s=%s',$pkColname,$fkColname);
+ $foreignKeys[$referenceTable][] = sprintf(
+ '%s=%s',
+ $fkColname,
+ $pkColname
+ );
}
}
@@ -2037,10 +2064,10 @@ See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/db2/htm/db2
switch($ADODB_ASSOC_CASE)
{
case ADODB_ASSOC_CASE_LOWER:
- $value = strtolower($value);
+ $value = strtolower($value ?? '');
break;
case ADODB_ASSOC_CASE_UPPER:
- $value = strtoupper($value);
+ $value = strtoupper($value ?? '');
break;
}
return $value;