コード例 #1
0
ファイル: UDB.c プロジェクト: IceAssassin/skipdbv2
void UDB_at_put_(UDB *self, PID_TYPE pid, Datum d)
{
	if (UDB_isInTransaction(self))
	{
		UDB_append_withPid_(self, d, pid);
	}
}
コード例 #2
0
ファイル: UDB.c プロジェクト: IceAssassin/skipdbv2
PID_TYPE UDB_put_(UDB *self, Datum d) // returns pid 
{
	if (UDB_isInTransaction(self))
	{
		PID_TYPE pid = UDBIndex_allocPid(self->index);
		UDB_append_withPid_(self, d, pid);
		return pid;
	}
	
	return 0;
}
コード例 #3
0
ファイル: UDB.c プロジェクト: 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);
	}
}