Skip to content

igwn-ligolw 2.0.0 incompatible with libsqlite 3.49 (conda-forge)

The latest builds of libsqlite 3.49 cause failures in this project due to the way that string literals are quoted:

$ make -C test ligolw_sqlite_test
make: Entering directory '/home/duncan/git/git.ligo.org/computing/software/igwn-ligolw/test'
=== start ligolw_sqlite_test ===>
sh ligolw_sqlite_test.sh && { echo "Pass" ; true ; } || { echo "Fail" ; false ; }

ligolw_sqlite test 1:  detect missing input
--------------------------------------------------------------------
removed 'ligolw_sqlite_test.sqlite'
'ligolw_sqlite_test.sqlite': no such file

ligolw_sqlite test 1:  success
ligolw_sqlite detected missing input and did not create an empty database

ligolw_sqlite test 2:  merge .xml.gz files and compare to ligolw_add
--------------------------------------------------------------------
1/2:reading 'ligolw_sqlite_test_input.xml.gz' ...
2/2:reading 'ligolw_sqlite_test_input.xml.gz' ...
reassigning row IDs: 100%|██████████████████████████████████████████████| 2/2 [00:00<00:00, 11.50it/s]
merging elements ...
writing 'ligolw_sqlite_test_ref.xml' ...
1/2: reading '/home/duncan/git/git.ligo.org/computing/software/igwn-ligolw/test/ligolw_sqlite_test_input.xml.gz' ...
Traceback (most recent call last):
  File "/home/duncan/opt/conda/envs/test/bin/igwn_ligolw_sqlite", line 196, in <module>
    ligolw_sqlite.insert_from_url(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        url,
        ^^^^
    ...<2 lines>...
        verbose=options.verbose,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/duncan/opt/conda/envs/test/lib/python3.13/site-packages/igwn_ligolw/utils/ligolw_sqlite.py", line 110, in insert_from_url
    idmapper.update_ids(xmldoc, verbose=verbose)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/duncan/opt/conda/envs/test/lib/python3.13/site-packages/igwn_ligolw/dbtables.py", line 492, in update_ids
    tbl.applyKeyMapping()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/home/duncan/opt/conda/envs/test/lib/python3.13/site-packages/igwn_ligolw/dbtables.py", line 966, in applyKeyMapping
    self.cursor.execute(
    ~~~~~~~~~~~~~~~~~~~^
        "UPDATE %s SET %s WHERE ROWID >= %d"
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        % (self.Name, assignments, self.remap_first_rowid)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
sqlite3.OperationalError: no such column: "process" - should this be a string literal in single-quotes?
warning: failed to load external entity "ligolw_sqlite_test_output.xml"
Fail
make: *** [Makefile:72: ligolw_sqlite_test] Error 1
make: Leaving directory '/home/duncan/git/git.ligo.org/computing/software/igwn-ligolw/test'

To reproduce:

conda create -n test igwn-ligolw=2.0.0 libsqlite=3.49 python-lal
conda activate test
make -C test ligolw_sqlite_test