cvs: pear /MDB2/MDB2/Driver/Manager ibase.php
| From: | Lukas Smith | 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;
}