Example #1
0
//Υποπεριπτωση της εκτελεσης WHERE οπου το attr2 χαρακτηριστικο υποδεικνυει ονομα στηλης
t_rc SSQLM::whereAttrCase(REM_RecordFileHandle &rfh, queue<REM_RecordID> &ridQ, struct relAttr RAttr1, t_compOp compOp, struct relAttr RAttr2)
{
	t_rc rc;
	REM_RecordFileScan rfs;

	//Ανοιξε scan για τις δυο στηλες
	rc = rfs.OpenRecordScan(rfh, RAttr1.type, RAttr1.attr_Length, RAttr1.offset, NO_OP, NULL);
	if(rc != OK) return rc;
	REM_RecordHandle rh;
	//Για καθε γραμμη στον πινακα
	//Παρε τον χειριστη
	while(rfs.GetNextRecord(rh)==OK)
	{
		//Παρε τα δεδομενα της καθε στηλης απο τους χειριστες
		char* data;
		rc = rh.GetData(data);
		if(rc!=OK) return rc;
		
		//Ελεγξε αν ικανοποιουν τις συνθηκες και αν ναι βαλτα στην ουρα
		if(makeComp(data + RAttr1.offset,RAttr1,compOp,data + RAttr2.offset,true))
		{
			REM_RecordID rid;
			rh.GetRecordID(rid);
			ridQ.push(rid);
		}
	}
	rc = rfs.CloseRecordScan();
	return rc;
}
Example #2
0
int main() {
    Component*  compList;
    Net**       net;
    Placed*     placed;
    compList = malloc(NUM_COMP * sizeof(Component));
    net  = malloc(NUM_NETS * sizeof(Net*));
    placed = malloc(NUM_COMP * sizeof(Placed));

    int* ordering = malloc(NUM_COMP * sizeof(int));
    int  pinCount = makeComp(compList, net, NUM_COMP, NUM_NETS, time(NULL));
    shuffleOrdering(ordering, NUM_COMP, net, NUM_NETS);

    placeParts(compList, net, placed, ordering, NUM_COMP, NUM_NETS);

    printf("test\n");
    return 0;
}