Esempio n. 1
0
void 
GiST::Open(const char *filename)
{
	if(IsOpen()) return;
	store=CreateStore();
	store->Open(filename);
	if(!store->IsOpen()) return;
	isOpen=1;
}
Esempio n. 2
0
void 
GiST::Create(const char *filename)
{
	GiSTpage page;

	if(IsOpen()) return;
	store=CreateStore();
	store->Create(filename);
	if(!store->IsOpen()) return;
	page=store->Allocate();

	GiSTnode *node=NewNode(this);
	node->Path().MakeRoot();
	WriteNode(node);
	delete node;
	isOpen=1;
}
Esempio n. 3
0
void MXTree::Open(const char *filename)
{
	if (IsOpen()) {
		return;
	}
	store = CreateStore();
	store->Open(filename);
	if (!store->IsOpen()) {
		return;
	}
	isOpen = 1;

	char *buf = new char[store->PageSize()];
	memset(buf, 0, store->PageSize());
	store->Read(GiSTRootPage, buf);
	memcpy(&rootPage, buf, sizeof(int));
	delete[] buf;
}
Esempio n. 4
0
void MXTree::Create(const char *filename)
{
	if (IsOpen()) {
		return;
	}
	store = CreateStore();
	store->Create(filename);
	if (!store->IsOpen()) { 
		return;
	}
	store->Allocate();  // reserved for root pointer
	rootPage = store->Allocate();
	assert(rootPage == 1);
	GiSTnode *node = NewNode(this);
	node->Path().MakeRoot();
	WriteNode(node);
	delete node;
	isOpen = 1;
}
Esempio n. 5
0
void 
GiST::Create (const char *filename)
{
	if (IsOpen()) {
		return;
	}
	store = CreateStore();
	store->Create(filename);
	if (!store->IsOpen()) {  // create failed!
		return;
	}
	store->Allocate();  // added by myself, reserved for root
	store->Allocate();
	GiSTnode *node = NewNode(this);
	node->Path().MakeRoot();
	WriteNode (node);
	delete node;
	isOpen = 1;
}