private function getCols(\blaze\ds\meta\ColumnMetaData $column) { $stmt = null; $rs = null; $constType = null; $constraint = null; try { $con = $column->getTable()->getSchema()->getDatabaseMetaData()->getConnection(); $stmt = $con->prepareStatement('SELECT * FROM information_schema.TABLE_CONSTRAINTS JOIN information_schema.KEY_COLUMN_USAGE ON KEY_COLUMN_USAGE.TABLE_SCHEMA = TABLE_CONSTRAINTS.TABLE_SCHEMA AND KEY_COLUMN_USAGE.TABLE_NAME = TABLE_CONSTRAINTS.TABLE_NAME AND KEY_COLUMN_USAGE.CONSTRAINT_NAME = TABLE_CONSTRAINTS.CONSTRAINT_NAME WHERE KEY_COLUMN_USAGE.TABLE_SCHEMA = ? AND KEY_COLUMN_USAGE.TABLE_NAME = ? AND KEY_COLUMN_USAGE.CONSTRAINT_NAME = ?'); $stmt->setString(0, $column->getTable()->getSchema()->getSchemaName()); $stmt->setString(1, $column->getTable()->getTableName()); $stmt->setString(2, $constraintName); $stmt->execute(); // $rs = $stmt->getResultSet(); // $rsmd = $stmt->getMetaData(); // // while($rs->next()) // $tblConst[$rs->getString('CONSTRAINT_NAME')->toString()] = $rs->getString('CONSTRAINT_TYPE'); // // if($stmt != null) // $stmt->close(); // if($rs != null) // $rs->close(); // // $stmt = $this->table->getSchema()->getDatabaseMetaData()->getConnection()->prepareStatement('SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND COLUMN_NAME = ?'); // $stmt->setString(0, $this->table->getSchema()->getSchemaName()); // $stmt->setString(1, $this->table->getTableName()); // $stmt->setString(2, $this->columnName); // $stmt->execute(); // $rs = $stmt->getResultSet(); // // while($rs->next()){ // switch($tblConst[$rs->getString('CONSTRAINT_NAME')->toString()]){ // case 'PRIMARY KEY': // $constraint = new ConstraintMetaDataImpl($this, $rs->getString('CONSTRAINT_NAME'), 'PRIMARY KEY'); // break; // case 'FOREIGN KEY': // $refSch = $this->table // ->getSchema() // ->getDatabaseMetaData() // ->getSchema($rs->getString('REFERENCED_TABLE_SCHEMA')); // // if($refSch == null) // break; // // $refCol = $refSch->getTable($rs->getString('REFERENCED_TABLE_NAME')) // ->getColumn($rs->getString('REFERENCED_COLUMN_NAME')); // $constraint = new ForeignKeyMetaDataImpl($this, $refCol, $rs->getString('CONSTRAINT_NAME')); // break; // case 'UNIQUE': // $constraint = new ConstraintMetaDataImpl($this, $rs->getString('CONSTRAINT_NAME'), 'UNIQUE KEY'); // break; // default: // $constraint = new ConstraintMetaDataImpl($this, $rs->getString('CONSTRAINT_NAME'), 'UNKNOWN'); // break; // } // } } catch (\blaze\ds\DataSourceException $e) { throw $e; } if ($stmt != null) { $stmt->close(); } if ($rs != null) { $rs->close(); } }