On Mon, 2010-02-22 at 13:52 +0000, Martyn Russell wrote:
> Hi all,
> 
> Philip recently worked on the ontology-cope-for-master branch to add 
> support for real time ontology updates (usually by 3rd party apps that 
> are installed for example). This is the review of that branch:
> 
>    http://git.gnome.org/browse/tracker/log/?h=ontology-cope-for-master
> 
> Warning, pedandic comments follow :)

:-)

> --
> 
> 1. Can we avoid using "Priv" and use "Private" for TrackerOntologyPriv 
> et al, we use "Private" everywhere else. If we don't in some other place 
> then that place is wrong too.


Fixed

> 2. tracker_ontology_get_last_modified() returns a time_t but you cast to 
> a gint64 before returning the value, shouldn't we cast to the return 
> type OR change the return type?


Fixed, no casting was needed at all here

> 3. Just a note, in get_ontology_from_file() you do this:
> 
> + TrackerTurtleReader *reader;
> + GError              *error = NULL;
> + GHashTable          *ontology_uris;
> + TrackerOntology     *ret = NULL;
> 
> Variable alignments are not necessary any more.

Okay

> 4. You reference the ontology then unreference it in the next statement 
> in get_ontology_from_file():
> 
> + g_hash_table_insert (ontology_uris,
> +                      g_strdup (subject),
> +                      g_object_ref (ontology));
> +
> + g_object_unref (ontology);
> 
> Why not save the extra CPU cycles and pass ontology without ref/unref there?

Fixed

> 5. Just a question really, but I wonder if we should have some debugging 
> in get_ontology_from_file() so we know what file we are parsing and what 
> we are doing during that phase?

No, this is done for each ontology file at startup, yet the file isn't
processed (notice the break): it's only to get the nao:lastModified date
for comparison later. 

> 6. In get_ontology_from_file() I notice we return a referenced 
> TrackerOntology, it would probably be more efficient to return the 
> pointer in the hash table instead to save the additional ref/unref.

ok (fine for me)

> 7. In get_ontologies() it is faster to sort the list AFTER prepending 
> the items than each time:
> 
> + sorted = g_list_insert_sorted (sorted,
> +                                g_strdup (conf_file),
> +                                (GCompareFunc) strcmp);
> 
> Probably not noticeable here though and I notice it is just moved code 
> that was there already anyway :)

Yes, I prefer not to change this code because it alters existing code
while this code moving was done for reusing said code. Such a change
(sorting after prepending) wouldn't have anything to do with the feature
being implemented here.

> 8. We don't generally use \t in debugging because the indentation is too 
> much, 2 spaces is normally what's used, also, please use a parameter per 
> line, it is clearer to see what is going on when you have a bunch of 
> string manipulation going on.
> 
> + g_debug ("%sAltering database for class '%s' property '%s': single 
> value (%s)",
> +          in_alter ? "" : "\t", service_name, field_name,
> +          in_alter ? "alter" : "create");

Fixed

> 
> 9. Does this mean we only support NEW ontologies, not UPDATES?
> 
> + /* TODO: copy with tracker_property_get_is_new together with a
> + * tracker_property_get_multiple_values (ALTER TABLE situation) */

This comment is removed in a later commit

> 10. Don't use tracker_ namespace for internal functions, coding style:
> 
> + static gint
> + tracker_data_update_get_new_service_id (void)

This change was reverted in a later commit, and thus not related to the
branch as a whole.

> There are others in that file too of course, but they should be fixed 
> another time.

> --
> 
> Really good work here Philip, this is not an easy bit of work to review 
> or implement so kudos to you for doing this!


No problem :)


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be

_______________________________________________
tracker-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to