The second time we extract and try to reuse the name addrs1 an exception is raised:
Traceback (most recent call last):
File "/home/pcoccoli/.pyenv/versions/gh36/bin/firepit", line 33, in <module>
sys.exit(load_entry_point('firepit', 'console_scripts', 'firepit')())
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/typer/main.py", line 214, in __call__
return get_command(self)(*args, **kwargs)
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/typer/main.py", line 497, in wrapper
return callback(**use_params) # type: ignore
File "/home/pcoccoli/github/firepit/firepit/cli.py", line 60, in extract
db.extract(name, sco_type, query_id, pattern)
File "/home/pcoccoli/github/firepit/firepit/sqlstorage.py", line 370, in extract
self._extract(viewname, sco_type, sco_type, pattern, query_id)
File "/home/pcoccoli/github/firepit/firepit/sqlstorage.py", line 187, in _extract
cursor = self._create_view(viewname, select, deps=[tablename], cursor=cursor)
File "/home/pcoccoli/github/firepit/firepit/pgstorage.py", line 116, in _create_view
self._execute(f'DROP VIEW IF EXISTS "{viewname}";', cursor)
File "/home/pcoccoli/github/firepit/firepit/sqlstorage.py", line 80, in _execute
cursor.execute(statement)
File "/home/pcoccoli/.pyenv/versions/3.6.8/envs/gh36/lib/python3.6/site-packages/psycopg2/extras.py", line 251, in execute
return super(RealDictCursor, self).execute(query, vars)
psycopg2.errors.DependentObjectsStillExist: cannot drop view addrs1 because other objects depend on it
DETAIL: view addrs2 depends on view addrs1
HINT: Use DROP ... CASCADE to drop the dependent objects too.
One way to recreate:
The second time we
extract
and try to reuse the nameaddrs1
an exception is raised: