function MetaForeignKeys($table, $owner=false, $upper=false)
	{
		global $ADODB_FETCH_MODE;

		$save = $ADODB_FETCH_MODE;
		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
		$table = $this->qstr(strtoupper($table));
		if (!$owner) {
			$owner = $this->user;
			$tabp = 'user_';
		} else
			$tabp = 'all_';

		$owner = ' and owner='.$this->qstr(strtoupper($owner));

		$sql =
"select constraint_name,r_owner,r_constraint_name
	from {$tabp}constraints
	where constraint_type = 'R' and table_name = $table $owner";

		$constraints = $this->GetArray($sql);
		$arr = false;
		foreach($constraints as $constr) {
			$cons = $this->qstr($constr[0]);
			$rowner = $this->qstr($constr[1]);
			$rcons = $this->qstr($constr[2]);
			$cols = $this->GetArray("select column_name from {$tabp}cons_columns where constraint_name=$cons $owner order by position");
			$tabcol = $this->GetArray("select table_name,column_name from {$tabp}cons_columns where owner=$rowner and constraint_name=$rcons order by position");

			if ($cols && $tabcol)
				for ($i=0, $max=sizeof($cols); $i < $max; $i++) {
					$arr[$tabcol[$i][0]] = $cols[$i][0].'='.$tabcol[$i][1];
				}
		}
		$ADODB_FETCH_MODE = $save;

		return $arr;
	}
function MetaForeignKeys($table, $owner=false, $upper=false)
	{
		global $ADODB_FETCH_MODE;

		$save = $ADODB_FETCH_MODE;
		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
		$table = $this->qstr(strtoupper($table));
		if (!$owner) {
			$owner = $this->user;
			$tabp = 'user_';
		} else
			$tabp = 'all_';

		$owner = ' and owner='.$this->qstr(strtoupper($owner));

		$sql =
"select constraint_name,r_owner,r_constraint_name
	from {$tabp}constraints
	where constraint_type = 'R' and table_name = $table $owner";

		$constraints = $this->GetArray($sql);
		$arr = false;
		foreach($constraints as $constr) {
			$cons = $this->qstr($constr[0]);
			$rowner = $this->qstr($constr[1]);
			$rcons = $this->qstr($constr[2]);
			$cols = $this->GetArray("select column_name from {$tabp}cons_columns where constraint_name=$cons $owner order by position");
			$tabcol = $this->GetArray("select table_name,column_name from {$tabp}cons_columns where owner=$rowner and constraint_name=$rcons order by position");

			if ($cols && $tabcol)
				for ($i=0, $max=sizeof($cols); $i < $max; $i++) {
					$arr[$tabcol[$i][0]] = $cols[$i][0].'='.$tabcol[$i][1];
				}
		}
		$ADODB_FETCH_MODE = $save;

		return $arr;
	}
function MetaForeignKeys ( $ table , $ owner = false , $ upper = false ) { global $ ADODB_FETCH_MODE ; $ save = $ ADODB_FETCH_MODE ; $ ADODB_FETCH_MODE = ADODB_FETCH_NUM ; $ table = $ this -> qstr ( strtoupper ( $ table ) ) ; if ( ! $ owner ) { $ owner = $ this -> user ; $ tabp = 'user_' ; } else $ tabp = 'all_' ; $ owner = ' and owner=' . $ this -> qstr ( strtoupper ( $ owner ) ) ; $ sql = "select constraint_name,r_owner,r_constraint_name
	from {$tabp}constraints
	where constraint_type = 'R' and table_name = $table $owner" ; $ constraints = $ this -> GetArray ( $ sql ) ; $ arr = false ; foreach ( $ constraints as $ constr ) { $ cons = $ this -> qstr ( $ constr [ 0 ] ) ; $ rowner = $ this -> qstr ( $ constr [ 1 ] ) ; $ rcons = $ this -> qstr ( $ constr [ 2 ] ) ; $ cols = $ this -> GetArray ( "select column_name from {$tabp}cons_columns where constraint_name=$cons $owner order by position" ) ; $ tabcol = $ this -> GetArray ( "select table_name,column_name from {$tabp}cons_columns where owner=$rowner and constraint_name=$rcons order by position" ) ; if ( $ cols && $ tabcol ) for ( $ i = 0 , $ max = sizeof ( $ cols ) ; $ i < $ max ; $ i ++ ) { $ arr [ $ tabcol [ $ i ] [ 0 ] ] = $ cols [ $ i ] [ 0 ] . '=' . $ tabcol [ $ i ] [ 1 ] ; } } $ ADODB_FETCH_MODE = $ save ; return $ arr ; }
returns assoc array where keys are tables, and values are foreign keys

@param	str		$table
@param	str		$owner	[optional][default=NULL]
@param	bool	$upper	[optional][discarded]
@return	mixed[]			Array of foreign key information

@link http://gis.mit.edu/classes/11.521/sqlnotes/referential_integrity.html
returns assoc array where keys are tables and values are foreign keys