AILab-FOI / akdb

An experimental relational DBMS developed by students @ Faculty of Organization and Informatics, University of Zagreb
6 stars 23 forks source link

Index.c + Bitmap.c- test #46

Open mschatten opened 7 years ago

mschatten commented 7 years ago

5) Index.c Trenutno treba dodati test za ovu datoteku u main datoteku kako bi je bilo u odabiru za testove pa da se dalje može vidjeti ako nešto dobro ne radi. --> Dodati test

Bitmap.c Funkcija int Ak_write_block je samo zakomentirana te trenutno nema implementaciju Funkcija void Ak_print_Header_Test bi trebala biti prenamijenjena u obicnu a ne test funkciju ili implementirana u testni dio.

tpertinac commented 7 years ago

Moj!

mschatten commented 6 years ago

TEST 16 - BITMAP test pada kod metode za kreiranje index tablice AK_create_Index_Table

problem se javlja kod startAddress = AK_initialize_new_index_segment(indexName,AK_get_table_id(tblName),indexed_attr_position, t_header); moguće je da se pogrješka događa u metodi AK_get_table_id(tblName) gdje se vraća negativna vrijednost

Poboljšanje osim ispravljanja svih pogrešaka smatram da bi bilo potrebno počistiti kod radi bolje preglednosti i lakšeg razumjevanja, također bi bilo dobro dodati još komentara kako bi se ubuduće moglo brže razumjeti što koji dio koda zapravo radi. Neke metode su preko 400 linija koda, na dosta mjesta je i kod koji se ponavlja te nekoliko metoda ima gomilu petlji i if uvjeta jednih unutar drugih što bi trebalo detaljnije proučiti i vidjeti dali je moguće taj problem rješiti drugačije.

mschatten commented 4 years ago

Bitmap.c

AK_create_Index_Table funkcija - potrebno je refaktorirati kod i razdvojiti navedenu funkciju na manje dijelove te detaljnije razmotriti komentare koji indiciraju na error

Ak_create_Index funkcija - komentirana linija koda, potrebno je otkriti zašto je komentirana te ispraviti eventualne pogreške

AK_get_Attribute funkcija - nedostaje opis jednog parametra funkcije u komentaru

Ak_write_block funkcija - provjeriti je li navedena funkcija potrebna i ukoliko nije obrisati ju, suprotno potrebno je funkciju ispravno implementirati

AK_add_to_bitmap_index funkcjia - u komentaru funkcije postoji parametar kojeg funkcija NE prima, potrebno je proučiti funkciju i vidjeti je li komentar (opis) funkcije pogrešan ili je funkcija pogrešno implementirana

AK_delete_bitmap_index funkcija - možda fali provjera prije brisanja, postoji li index s danim imenom

Ak_bitmap_test funkcija - potrebno je refaktorirati funkciju

Index.c

temeljem dokumentacije ne postoje testovi, potrebno ih je napisati

postoje include-ovi koji bi se trebali nalaziti u index.h file-u

AK_get_index_tuple funkcija - svaki return unutar funkcije je NULL; potrebno je proučiti funkciju i refaktorirati ju

AK_print_index_table funkcija - potrebno je proučiti funkciju i rastaviti ju ukoliko je moguće

mschatten commented 4 years ago

Potrebno je implementirati funkciju Ak_write_block. Test za ovu datoteku ne postoji. Funkcije su normalnijih veličina, tj. broja linija koda, samim time su i čitljivije. Jedino bi se funkcija void AK_create_Index_Table možda mogla implementirati malo efikasnije zbog velikog broja ugnježđivanja if-ova i petlji.

Funkcija int Ak_write_block nije implementirana. Cijelo kod joj je zakomentiran, a funkcija void Ak_print_Header_Test trebala bi biti prenamijenjena u običnu, a ne test funkciju ili implementirana u testni dio.

mschatten commented 3 years ago

Bitmap.c

AK_create_Index_Table  Pretraživanje tablice za atributima koji se trebaju indeksirati  Prijedlozi poboljšanja  Ponavljanje blokova koda -> stvaranje novih funkcija s implementiranim blokovima i pozivanje njih  Obavljanje više zadataka -> rastavljanje funkcije tako da svaka funkcija ima jedan zadatak (spomenuto)  Nerazumljiv kod -> više komentara  Ugniježđene petlje -> smanjiti broj ugniježđenih petlji  Komentar spominje pogrešku -> vidjeti što je pogreška (spomenuto)  Potrebno podijeliti funkciju na više dijelova

AK_create_Index  Kreiranje indeksa nad atributima  Prijedlozi poboljšanja  Nerazumljiv kod -> više komentiranja  Ponavljanje blokova koda -> stvaranje novih funkcija s implementiranim blokovima i pozivanje njih

AK_get_attribute  Vraćanje adrese traženog atributa  Prijedlozi poboljšanja  Nerazumljiv kod -> više komentiranja

AK_get_attribute  Pronalazak indeksa pomoću proslijeđenog naziva tablice i atributa  Prijedlozi poboljšanja  Isti naziv kao i prethodna funkcija -> promijena naziva

AK_update  Ažuriranje vrijednosti indeksa  Prijedlozi poboljšanja  Obavljanje više zadataka -> rastavljanje funkcije tako da svaka funkcija ima jedan zadatak  Ugniježđene petlje -> smanjiti broj ugniježđenih petlji

AK_add_to_bitmap_index  Treba raditi: ažuriranje indeksa  Zapravo radi: briše indeks ako u njemu nema manje redova nego u tablici za koju je napravljen  Prijedlozi poboljšanja  Shvatiti što funkcija treba raditi (spomenuto)

AK_bitmap_test - test  Pri pokretanju se ruši program -> PROBLEM  Prijedlog poboljšanja  Potrebno je ispraviti grešku -> vidjeti u kojoj od funkcija je problem i ispraviti ga

Ak_write_block  Funkcija koja se spominje u headeru a u potpunosti je u komentaru  Prijedlog poboljšanja  Vidjeti zašto je u komentaru i je li potrebno (spomenuto)

index.c

AK_InitializelistAd  Služi za inicijaliziranje liste  Prijedlog poboljšanja  Funkcija se sastoji od jedne linije koda -> pogledati je li zbilja potrebna

AK_get_index_tuple  Vraća vrijednost određene ćelije u tablici  Prijedlog poboljšanja  Izdvojiti dio koda u zasebnu funkciju

AK_print_index_table  Ispisivanje sadržaja tablice  Prijedlog poboljšanja  Predugačka funkcija -> podijeliti na više dijelova (primjerice jedna funkcija za ispisivanje headera, jedna za vrijednosti itd.) (spomenuto)

AK_index_test() - test  Nemoguće pokrenuti kao ostale testove jer nije test nego funkcija  Prijedlog poboljšanja  Pretvoriti u test kako bi ga se moglo testirati kao i ostale (spomenuto)