Example #1
0
void API::CreateIndex(SQLCreateIndex& statement)
{
	cout << "Creating Index: " << statement.get_index_name() << endl;
	if (current_db_.length() == 0) throw NoDatabaseSelectedException();
	
	Database *db = catalog_m_->GetDB(current_db_);
	if (db->GetTable(statement.get_tb_name()) == NULL) throw TableNotExistException();
	if (db->CheckIfIndexExists(statement.get_index_name()) ) throw IndexAlreadyExistsException();

	IndexManager *im = new IndexManager(catalog_m_, buffer_m_, current_db_);
	im->CreateIndex(statement);
	delete im;
}