Skip to content

Malformed array, unexpected '' when execuing a query to select function metadata #253

Description

@j-bennet

Minimal repro case (installed psycopg==3.0.10):

import psycopg

query = """
SELECT n.nspname schema_name,
p.proname func_name,
p.proargnames,
COALESCE(proallargtypes::regtype[], proargtypes::regtype[])::text[],
p.proargmodes,
prorettype::regtype::text return_type,
p.prokind = 'a' is_aggregate,
p.prokind = 'w' is_window,
p.proretset is_set_returning,
d.deptype = 'e' is_extension,
pg_get_expr(proargdefaults, 0) AS arg_defaults
FROM pg_catalog.pg_proc p
INNER JOIN pg_catalog.pg_namespace n
ON n.oid = p.pronamespace
LEFT JOIN pg_depend d ON d.objid = p.oid and d.deptype = 'e'
WHERE p.prorettype::regtype != 'trigger'::regtype
ORDER BY 1, 2
"""

if __name__ == "__main__":
    conn = psycopg.connect(
        user='postgres',
        host='localhost',
        password='',
        port=5432,
        dbname='test',
    )
    conn.autocommit = True

    with conn.cursor() as cur:
        cur.execute(query)
        for row in cur:
            print(row)

Exception:

/Users/irinatruong/.pyenv/versions/pgcli/bin/python "/Users/irinatruong/Library/Application Support/JetBrains/PyCharm2021.3/scratches/scratch.py"
Traceback (most recent call last):
  File "/Users/irinatruong/Library/Application Support/JetBrains/PyCharm2021.3/scratches/scratch.py", line 35, in <module>
    for row in cur:
  File "/Users/irinatruong/.pyenv/versions/pgcli/lib/python3.9/site-packages/psycopg/cursor.py", line 641, in __iter__
    row = load(self._pos)
  File "/Users/irinatruong/.pyenv/versions/pgcli/lib/python3.9/site-packages/psycopg/cursor.py", line 638, in load
    return self._tx.load_row(pos, self._make_row)
  File "/Users/irinatruong/.pyenv/versions/pgcli/lib/python3.9/site-packages/psycopg/_transform.py", line 242, in load_row
    record[col] = self._row_loaders[col](val)
  File "/Users/irinatruong/.pyenv/versions/pgcli/lib/python3.9/site-packages/psycopg/types/array.py", line 347, in load
    raise e.DataError(f"malformed array, unexpected '{wat}'")
psycopg.DataError: malformed array, unexpected ''

Process finished with exit code 1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions