message: DESCRIBE: avoid using BoundConstraints - use Constraints instead
diff: #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp"
  #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp"
  #include "duckdb/parser/qualified_name.hpp"
  -#include "duckdb/planner/constraints/bound_not_null_constraint.hpp"
  -#include "duckdb/planner/constraints/bound_unique_constraint.hpp"
  +#include "duckdb/parser/constraints/not_null_constraint.hpp"
  +#include "duckdb/parser/constraints/unique_constraint.hpp"
  #include "duckdb/planner/expression/bound_parameter_expression.hpp"
  #include "duckdb/planner/binder.hpp"
  @@ -68,20 +68,26 @@ static void CheckConstraints(TableCatalogEntry *table, const ColumnDefinition &c
  out_pk = false;
  // check all constraints
  // FIXME: this is pretty inefficient, it probably doesn't matter
  - for (auto &constraint : table->GetBoundConstraints()) {
  + for (auto &constraint : table->GetConstraints()) {
  switch (constraint->type) {
  case ConstraintType::NOT_NULL: {
  - auto &not_null = (BoundNotNullConstraint &)*constraint;
  - if (not_null.index == column.Physical()) {
  + auto &not_null = (NotNullConstraint &)*constraint;
  + if (not_null.index == column.Logical()) {
  out_not_null = true;
  }
  break;
  }
  case ConstraintType::UNIQUE: {
  - auto &unique = (BoundUniqueConstraint &)*constraint;
  - if (unique.is_primary_key && unique.key_set.find(column.Logical()) != unique.key_set.end()) {
  + auto &unique = (UniqueConstraint &)*constraint;
  +
  + if (unique.is_primary_key) {
  + if (unique.index == column.Logical()) {
  + out_pk = true;
  + }
  + if (std::find(unique.columns.begin(), unique.columns.end(), column.GetName()) != unique.columns.end()) {
  out_pk = true;
  }
  + }
  break;
  }
  default:
  