Example #1
0
File: UDB.c Project: argv0/skipdb
void UDB_removeAt_(UDB *self, PID_TYPE pid)
{
	if (UDB_isInTransaction(self))
	{
		UDBRecord *record = UDB_recordAtPid_(self, pid);
		
		if (!record)
		{
			printf("UDB error: missing record with pid %" PID_FORMAT " for remove\n", pid);
			record = UDB_recordAtPid_(self, pid);
			return;
		}
		
		UDBRecords_removeRecord_(self->records, record);
		UDBIndex_setPos_forPid_(self->index, 0, pid);
	}
}
Example #2
0
Datum UDB_at_(UDB *self, PID_TYPE pid)
{
	Datum d;
	UDBRecord *record = UDB_recordAtPid_(self, pid);
	
	if (!record)
	{
		d.size = 0;
		d.data = NULL;
		//printf("missing record with pid %i\n", pid);
		return d;
	}
	
	return UDBRecord_readDatum(record);
}