cvs: pear /MDB2/MDB2/Driver/Manager ibase.php

From: Date: Fri, 14 Oct 2005 16:32:04 +0000
Subject: cvs: pear /MDB2/MDB2/Driver/Manager ibase.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-35535@lists.php.net to get a copy of this message
lsmith Fri Oct 14 12:32:04 2005 EDT Modified files: /pear/MDB2/MDB2/Driver/Manager ibase.php Log: - split index and contraint handling http://cvs.php.net/diff.php/pear/MDB2/MDB2/Driver/Manager/ibase.php?r1=1.48&r2=1.49&ty=u Index: pear/MDB2/MDB2/Driver/Manager/ibase.php diff -u pear/MDB2/MDB2/Driver/Manager/ibase.php:1.48 pear/MDB2/MDB2/Driver/Manager/ibase.php:1.49 --- pear/MDB2/MDB2/Driver/Manager/ibase.php:1.48 Thu Oct 13 10:23:36 2005 +++ pear/MDB2/MDB2/Driver/Manager/ibase.php Fri Oct 14 12:32:03 2005 @@ -42,7 +42,7 @@ // | Author: Lorenzo Alberton <l.alberton@quipo.it> | // +----------------------------------------------------------------------+ // -// $Id: ibase.php,v 1.48 2005/10/13 14:23:36 lsmith Exp $ +// $Id: ibase.php,v 1.49 2005/10/14 16:32:03 lsmith Exp $ require_once 'MDB2/Driver/Manager/Common.php'; @@ -588,28 +588,24 @@ if (PEAR::isError($db)) { return $db; } - if (array_key_exists('primary', $definition) && $definition['primary']) { - $query = "ALTER TABLE $table ADD CONSTRAINT $name PRIMARY KEY ("; - } else { - $query = 'CREATE'; - if (array_key_exists('unique', $definition) && $definition['unique']) { - $query.= ' UNIQUE'; - } - $query_sort = ''; - foreach ($definition['fields'] as $field) { - if (!strcmp($query_sort, '') && isset($field['sorting'])) { - switch ($field['sorting']) { - case 'ascending': - $query_sort = ' ASC'; - break; - case 'descending': - $query_sort = ' DESC'; - break; - } + $query = 'CREATE'; + if (array_key_exists('unique', $definition) && $definition['unique']) { + $query.= ' UNIQUE'; + } + $query_sort = ''; + foreach ($definition['fields'] as $field) { + if (!strcmp($query_sort, '') && isset($field['sorting'])) { + switch ($field['sorting']) { + case 'ascending': + $query_sort = ' ASC'; + break; + case 'descending': + $query_sort = ' DESC'; + break; } } - $query .= $query_sort. " INDEX $name ON $table ("; } + $query .= $query_sort. " INDEX $name ON $table ("; $query .= implode(', ', array_keys($definition['fields'])) . ')'; return $db->query($query); } @@ -631,7 +627,37 @@ return $db; } $table = strtoupper($table); - $result = $db->queryCol("SELECT RDB\$INDEX_NAME FROM RDB\$INDICES WHERE RDB\$RELATION_NAME='$table'"); + $query = "SELECT RDB\$INDEX_NAME FROM RDB\$INDICES WHERE RDB\$RELATION_NAME='$table'" + $result = $db->queryCol($query); + if (PEAR::isError($result)) { + return $result; + } + if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) { + $result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result); + } + return $result; + } + + // }}} + // {{{ listTableConstraints() + + /** + * list all sonstraints in a table + * + * @param string $table name of table that should be used in method + * @return mixed data array on success, a MDB2 error on failure + * @access public + */ + function listTableConstraints($table) + { + $db =& $this->getDBInstance(); + if (PEAR::isError($db)) { + return $db; + } + $table = strtoupper($table); + /* todo: is this correct? */ + $query = "SELECT RDB\$INDEX_NAME FROM RDB\$CONSTAINTS WHERE RDB\$RELATION_NAME='$table'"; + $result = $db->queryCol($query); if (PEAR::isError($result)) { return $result; }

« previous php.pear.cvs (#35535) next »