Rahul Iyer created MADLIB-1204:
----------------------------------
Summary: madpack: SQL result parsing is fragile
Key: MADLIB-1204
URL: https://issues.apache.org/jira/browse/MADLIB-1204
Project: Apache MADlib
Issue Type: Bug
Components: Madpack
Reporter: Rahul Iyer
For a reinstall operation, {{madpack}} looks at any possible affected objects
that will dropped using below query:
{code}
affected_objects = _internal_run_query("""
SELECT
n1.nspname AS schema,
relname AS relation,
attname AS column,
typname AS type
FROM
pg_attribute a,
pg_class c,
pg_type t,
pg_namespace n,
pg_namespace n1
WHERE
n.nspname = '%s'
AND t.typnamespace = n.oid
AND a.atttypid = t.oid
AND c.oid = a.attrelid
AND c.relnamespace = n1.oid
AND c.relkind = 'r'
ORDER BY
n1.nspname, relname, attname, typname""" % schema.lower(), True)
{code}
The results of this query is parsed line-by-line in the function {{run_query}}.
For my database, a clean reinstall gives following result for above query
{code}
schema | relation | column | type
--------+----------+--------+------
(0 rows)
{code}
This is parsed as
{code}
[{'schema': '(0 rows)'}]
{code} by the function, which is clearly incorrect and leads to an error in
subsequent lines:
{code}
File ".../madpack/madpack.py", line 1366, in <module>
main(sys.argv[1:])
File ".../madpack/madpack.py", line 1136, in main
ao['column'] + ' : ' + ao['type'], True)
KeyError: 'relation'
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)