message: Added a Copy method and variables for renamed entries.
diff: #include "duckdb/common/common.hpp"
  #include "duckdb/common/enums/catalog_type.hpp"
  #include "duckdb/common/exception.hpp"
  +#include <memory>
  namespace duckdb {
  struct AlterInfo;
  @@ -22,15 +23,17 @@ class ClientContext;
  class CatalogEntry {
  public:
  CatalogEntry(CatalogType type, Catalog *catalog, string name)
  - : type(type), catalog(catalog), set(nullptr), name(name), deleted(false), temporary(false), parent(nullptr) {
  + : type(type), catalog(catalog), set(nullptr), name(name), deleted(false), renamed(false), temporary(false), parent(nullptr) {
  }
  -
  virtual ~CatalogEntry();
  virtual unique_ptr<CatalogEntry> AlterEntry(ClientContext &context, AlterInfo *info) {
  throw CatalogException("Unsupported alter type for catalog entry!");
  }
  + virtual unique_ptr<CatalogEntry> Copy(ClientContext &context) {
  + throw CatalogException("Unsupported copy type for catalog entry!");
  + }
  //! The type of this catalog entry
  CatalogType type;
  //! Reference to the catalog this entry belongs to
  @@ -41,12 +44,17 @@ public:
  string name;
  //! Whether or not the object is deleted
  bool deleted;
  + //! Whether or not the object is renamed
  + bool renamed;
  + //! The new name for this entry, specially purposed for TABLE RENAME
  + string new_name;
  //! Whether or not the object is temporary and should not be added to the WAL
  bool temporary;
  //! Timestamp at which the catalog entry was created
  transaction_t timestamp;
  //! Child entry
  unique_ptr<CatalogEntry> child;
  +// std::shared_ptr<CatalogEntry> child;
  //! Parent entry (the node that owns this node)
  CatalogEntry *parent;
  };
  