Changeset 5111
- Timestamp:
- 10/21/08 08:58:04 (9 months ago)
- Location:
- branches/1.0
- Files:
-
- 2 modified
-
lib/Doctrine/Import/Oracle.php (modified) (2 diffs)
-
tests/Import/OracleTestCase.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/1.0/lib/Doctrine/Import/Oracle.php
r4252 r5111 121 121 public function listTableColumns($table) 122 122 { 123 $table = strtoupper($table);124 123 $sql = "SELECT column_name, data_type, data_length, nullable, data_default, data_scale, data_precision FROM all_tab_columns" 125 . " WHERE table_name = '" . $table . "' ORDER BY column_ name";124 . " WHERE table_name = '" . $table . "' ORDER BY column_id"; 126 125 127 126 $result = $this->conn->fetchAssoc($sql); … … 169 168 return array_map(array($this->conn->formatter, 'fixIndexName'), $indexes); 170 169 } 171 170 171 /** 172 * list table relations 173 */ 174 public function listTableRelations($table) 175 { 176 $relations = array(); 177 $sql = 'SELECT ac.table_name AS referenced_table_name, lcc.column_name AS local_column_name, rcc.column_name AS referenced_column_name ' 178 . 'FROM all_constraints ac ' 179 . 'JOIN all_cons_columns lcc ON ac.r_constraint_name = lcc.constraint_name ' 180 . 'JOIN all_cons_columns rcc ON ac.constraint_name = rcc.constraint_name ' 181 . "WHERE ac.constraint_type = 'R'" 182 . "AND ac.r_constraint_name IN (SELECT constraint_name FROM all_constraints WHERE constraint_type IN ('P', 'U') AND table_name ='$table')"; 183 184 $results = $this->conn->fetchAssoc($sql); 185 foreach ($results as $result) 186 { 187 $result = array_change_key_case($result, CASE_LOWER); 188 $relations[] = array('table' => $result['referenced_table_name'], 189 'local' => $result['column_name'], 190 'foreign' => $result['referenced_column_name']); 191 } 192 return $relations; 193 } 172 194 /** 173 195 * lists tables -
branches/1.0/tests/Import/OracleTestCase.php
r3884 r5111 45 45 $this->import->listTableColumns('table'); 46 46 47 $q = "SELECT column_name, data_type, data_length, nullable, data_default, data_scale, data_precision FROM all_tab_columns WHERE table_name = ' TABLE' ORDER BY column_name";47 $q = "SELECT column_name, data_type, data_length, nullable, data_default, data_scale, data_precision FROM all_tab_columns WHERE table_name = 'table' ORDER BY column_id"; 48 48 49 49 $this->assertEqual($this->adapter->pop(), $q);