File "/home/pcoccoli/github/firepit/firepit/sqlstorage.py", line 419, in assign
self.assign_query(viewname, query)
File "/home/pcoccoli/github/firepit/firepit/sqlstorage.py", line 799, in assign_query
cursor = self._create_view(viewname, stmt, sco_type, deps=deps)
File "/home/pcoccoli/github/firepit/firepit/pgstorage.py", line 333, in _create_view
self._execute(f'DROP VIEW IF EXISTS "{viewname}"', cursor)
File "/home/pcoccoli/github/firepit/firepit/sqlstorage.py", line 152, in _execute
cursor.execute(statement)
File "/home/pcoccoli/.pyenv/versions/3.9.2/envs/p392/lib/python3.9/site-packages/psycopg2_binary-2.8.6-py3.9-linux-x86_64.egg/psycopg2/extras.py", line 251, in execute
return super(RealDictCursor, self).execute(query, vars)
psycopg2.errors.DependentObjectsStillExist: cannot drop view conns because other objects depend on it
DETAIL: view ts_conns depends on view conns
HINT: Use DROP ... CASCADE to drop the dependent objects too.
Does not happen on sqlite3.
Can reproduce with this Kestrel script:
# Create var
conns = GET network-traffic
FROM file:///home/pcoccoli/Data/THL/dns_tunneling.json
WHERE [network-traffic:dst_port = 53 AND network-traffic:dst_ref.value NOT ISSUBSET '192.168.1.0/24']
# Create dependent var
ts_conns = TIMESTAMPED(conns)
# Now try to recreate original var
conns = SORT conns BY src_port
Found while testing Kestrel with PostgreSQL:
Does not happen on sqlite3.
Can reproduce with this Kestrel script: