message: fix create type with a custom type
diff: @@ -512,6 +512,18 @@ BoundStatement Binder::Bind(CreateStatement &stmt) {
  }
  result.plan->AddChild(move(query));
  + } else if (create_type_info.type.id() == LogicalTypeId::USER) {
  + // two cases:
  + // 1: create a type with a non-existant type as source, catalog.GetType(...) will throw exception.
  + // 2: create a type alias with a custom type.
  + // eg. CREATE TYPE a AS INT; CREATE TYPE b AS a;
  + // We set b to be an alias for the underlying type of a
  + auto &catalog = Catalog::GetCatalog(context);
  + auto inner_type = catalog.GetType(context, "", UserType::GetTypeName(create_type_info.type));
  + // clear to nullptr, we don't need this
  + LogicalType::SetCatalog(inner_type, nullptr);
  + inner_type.SetAlias(create_type_info.name);
  + create_type_info.type = inner_type;
  }
  break;
  }
  