django-daiquiri / daiquiri

A framework for the publication of scientific databases
https://escience.aip.de/daiquiri
Apache License 2.0
26 stars 8 forks source link

BUG: Datatype mismatch for tap_schema.columns.principal #123

Closed kimakan closed 1 year ago

kimakan commented 1 year ago

Error: The query of the tap_schema.columns via TAP results in the following response

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/pyvo/dal/tap.py", line 246, in run_sync
    return self.create_query(
  File "/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/pyvo/dal/tap.py", line 942, in execute
    return TAPResults(self.execute_votable(), url=self.queryurl, session=self._session)
  File "/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/pyvo/dal/query.py", line 245, in execute_votable
    raise DALFormatError(e, self.queryurl)
pyvo.dal.exceptions.DALFormatError: ValueError: None:41:28: ValueError: invalid literal for int() with base 10: 'false' (in row 0, col 'principal')

The datatype of the column principal in the TAP metadata doesn't match the datatype of the same column in the DB table (int vs bool).

Solution: In best case, it would suffice to change the datatype from unsignedByte to boolean (or bool ? ) https://github.com/django-daiquiri/daiquiri/blob/64888b1df709635e779a213028c367d75922135f/daiquiri/tap/constants.py#L252-L261