text: #pragma once
  
  #include <DB/Databases/DatabaseMemory.h>
  
  
  namespace DB
  {
  
  /** Default engine of databases.
    * It stores tables list in filesystem using list of .sql files,
    *  that contain declaration of table represented by SQL ATTACH TABLE query.
    */
  class DatabaseOrdinary : public DatabaseMemory
  {
  protected:
  	const String path;
  
  public:
  	DatabaseOrdinary(const String & name_, const String & path_);
  
  	String getEngineName() const override { return "Ordinary"; }
  
  	void loadTables(Context & context, ThreadPool * thread_pool, bool has_force_restore_data_flag) override;
  
  	void createTable(const String & table_name, const StoragePtr & table, const ASTPtr & query, const String & engine) override;
  	void removeTable(const String & table_name) override;
  
  	void renameTable(const Context & context, const String & table_name, IDatabase & to_database, const String & to_table_name) override;
  
  	time_t getTableMetadataModificationTime(const String & table_name) override;
  
  	ASTPtr getCreateQuery(const String & table_name) const override;
  
  	void shutdown() override;
  	void drop() override;
  
  	void alterTable(
  		const Context & context,
  		const String & name,
  		const NamesAndTypesList & columns,
  		const NamesAndTypesList & materialized_columns,
  		const NamesAndTypesList & alias_columns,
  		const ColumnDefaults & column_defaults,
  		const ASTModifier & engine_modifier) override;
  };
  
  }
  