I am trying to import Adobe Lightroom keywords into darktable and would like to do that by inserting rows in data.tags and library.tagged_images tables (I don’t want to mess with xmp sidecar files).
This seems to be straightforward but I am not sure I understand the purpose of the column tagged_images.position and even less why it is calculated as follow (according to src.common/tags.c):
SELECT (IFNULL(MAX(position),0) & 0xFFFFFFFF00000000) + (1 << 32)"
" FROM main.tagged_images
Anyone could shed light on that?
For reference, here is the query I am using to extract the image/keyword from Lightroom:
SELECT
upper(root_folder.name || '/' || folder.pathFromRoot || file.baseName || '.' || file.extension) as file_name,
keyword_ref.name as keyword
from
AgLibraryFile AS file
inner JOIN AgLibraryFolder AS folder
ON folder.id_local = file.folder
inner JOIN AgLibraryRootFolder AS root_folder
ON root_folder.id_local = folder.rootFolder
inner JOIN Adobe_images AS image
ON file.id_local = image.rootFile
inner JOIN AgLibraryKeywordImage AS keyword
ON keyword.image = image.id_local
inner JOIN AgLibraryKeyword AS keyword_ref
ON keyword_ref.id_local = keyword.tag