Commit 43464b62 by TERAOKA Yoshinori

fix get_db_info

using pg_roles instead of pg_user
if database owner is a role (not user) then it can not select form pg_user table.
parent 7e849ac7
...@@ -130,10 +130,10 @@ def get_encoding_id(cursor, encoding): ...@@ -130,10 +130,10 @@ def get_encoding_id(cursor, encoding):
def get_db_info(cursor, db): def get_db_info(cursor, db):
query = """ query = """
SELECT usename AS owner, SELECT rolname AS owner,
pg_encoding_to_char(encoding) AS encoding, encoding AS encoding_id, pg_encoding_to_char(encoding) AS encoding, encoding AS encoding_id,
datcollate AS lc_collate, datctype AS lc_ctype datcollate AS lc_collate, datctype AS lc_ctype
FROM pg_database JOIN pg_user ON pg_user.usesysid = pg_database.datdba FROM pg_database JOIN pg_roles ON pg_roles.oid = pg_database.datdba
WHERE datname = %(db)s WHERE datname = %(db)s
""" """
cursor.execute(query, {'db':db}) cursor.execute(query, {'db':db})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment