diff options
| author | Mark Newnham <mark@newnhams.com> | 2026-02-18 19:25:23 -0700 |
|---|---|---|
| committer | Mark Newnham <mark@newnhams.com> | 2026-02-18 19:25:23 -0700 |
| commit | e4de62d35b0f140c832e0e6ebda5a5d194af1340 (patch) | |
| tree | 2eea5c91359ff35ad0c918ed45c6ab8c858a28ec | |
| parent | a085a30dffc6917a6bf4a80a1b85dceb897b7bc0 (diff) | |
| download | adodb-e4de62d35b0f140c832e0e6ebda5a5d194af1340.tar.gz adodb-e4de62d35b0f140c832e0e6ebda5a5d194af1340.tar.bz2 adodb-e4de62d35b0f140c832e0e6ebda5a5d194af1340.zip | |
Validates table name in MetaIndexes to allow for correct return values
| -rw-r--r-- | drivers/adodb-mssqlnative.inc.php | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/drivers/adodb-mssqlnative.inc.php b/drivers/adodb-mssqlnative.inc.php index c98c34a4..82a4dacd 100644 --- a/drivers/adodb-mssqlnative.inc.php +++ b/drivers/adodb-mssqlnative.inc.php @@ -726,8 +726,26 @@ class ADODB_mssqlnative extends ADOConnection { } + /** + * List indexes on a table as an array + * + * @param string $table table name to query + * @param bool $primary true to only show primary keys. Not actually used for most databases + * @param string $owner Discarded for this driver + * + * @return array of indexes on current table + */ function MetaIndexes($table,$primary=false, $owner = false) { + + global $ADODB_FETCH_MODE; + + $metaTables = $this->metaTables('T',$owner,$table); + + if (!$metaTables) { + return false; + } + $table = $this->qstr($table); $sql = "SELECT i.name AS ind_name, C.name AS col_name, USER_NAME(O.uid) AS Owner, c.colid, k.Keyno, @@ -739,7 +757,7 @@ class ADODB_mssqlnative extends ADOConnection { WHERE LEFT(i.name, 8) <> '_WA_Sys_' AND o.status >= 0 AND O.Name LIKE $table ORDER BY O.name, I.Name, K.keyno"; - global $ADODB_FETCH_MODE; + $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->fetchMode !== FALSE) { @@ -758,11 +776,18 @@ class ADODB_mssqlnative extends ADOConnection { $indexes = array(); while ($row = $rs->FetchRow()) { - if (!$primary && $row[5]) continue; + if (!$primary && $row[5]) { + continue; + } $indexes[$row[0]]['unique'] = $row[6]; $indexes[$row[0]]['columns'][] = $row[1]; } + + if (count($indexes) == 0) { + return false; + } + return $indexes; } @@ -887,6 +912,7 @@ class ADODB_mssqlnative extends ADOConnection { } return $ret; } + function MetaColumns($table, $upper=true, $schema=false){ /* |
