2014-03-18, 15:21
Can anyone provide a bit of background information on how the "path" table in Textures13.db is used and maintained?
It appears to be the first point of reference when displaying artwork that may already be cached, yet the table only appears to contain artwork for the top level folders and not individual items (eg. movies) within folders.
Is the intended purpose of the "path" table to speed up directory listings when in Files view, to avoid drilling into each folder to determine the relevant fanart/thumbnail?
In which case I can only find one point in the code where rows are deleted from the path table (calling CTextureDatabase::ClearTextureForPath, specifically removing "thumb" artwork yet I have "poster", "fanart" and "banner" artwork in my path table (in addition to "thumb"), which suggests these other artwork types will never be removed.
So it seems that a number of rows are added to the path table, but only the "thumb" rows are ever removed. Is this intentional, and if so, why?
And while it is possible to remove rows from the texture table, would removing a row from the texture table that is pointed to by a row in the path table ever cause a problem?
I'm just wondering if it's possible for the path table to ever become out of sync, as there seem to be a few gaps (certainly with my knowledge, possibly in the code) which might be a problem if the path table is the first point of reference and could lead to artwork not appearing which might otherwise be available.
How and when should rows be deleted from the path table - should rows be removed from the path table whenever the corresponding row in the texture table is deleted (this could be accomplished with a modification to the existing delete trigger, "delete from path where path.texture = old.url")?
Maybe one for @jmarshall...
It appears to be the first point of reference when displaying artwork that may already be cached, yet the table only appears to contain artwork for the top level folders and not individual items (eg. movies) within folders.
Is the intended purpose of the "path" table to speed up directory listings when in Files view, to avoid drilling into each folder to determine the relevant fanart/thumbnail?
In which case I can only find one point in the code where rows are deleted from the path table (calling CTextureDatabase::ClearTextureForPath, specifically removing "thumb" artwork yet I have "poster", "fanart" and "banner" artwork in my path table (in addition to "thumb"), which suggests these other artwork types will never be removed.
So it seems that a number of rows are added to the path table, but only the "thumb" rows are ever removed. Is this intentional, and if so, why?
And while it is possible to remove rows from the texture table, would removing a row from the texture table that is pointed to by a row in the path table ever cause a problem?
I'm just wondering if it's possible for the path table to ever become out of sync, as there seem to be a few gaps (certainly with my knowledge, possibly in the code) which might be a problem if the path table is the first point of reference and could lead to artwork not appearing which might otherwise be available.
How and when should rows be deleted from the path table - should rows be removed from the path table whenever the corresponding row in the texture table is deleted (this could be accomplished with a modification to the existing delete trigger, "delete from path where path.texture = old.url")?
Maybe one for @jmarshall...