From e7ed54e08264a05a416dca6e16e97bef5c5ef1fb Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 8 Dec 2010 16:39:37 +0200 Subject: dbstruct: use new acl parser --- python/skytools/dbstruct.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'python/skytools/dbstruct.py') diff --git a/python/skytools/dbstruct.py b/python/skytools/dbstruct.py index 4c27b840..202b8058 100644 --- a/python/skytools/dbstruct.py +++ b/python/skytools/dbstruct.py @@ -4,7 +4,9 @@ import re from skytools.sqltools import fq_name_parts, get_table_oid -from skytools.quoting import quote_ident, quote_fqident, quote_literal, unquote_fqident +from skytools.quoting import quote_ident, quote_fqident, quote_literal +from skytools.quoting import unquote_ident, unquote_fqident +from skytools.parsing import parse_pgarray, parse_acl __all__ = ['TableStruct', 'SeqStruct', 'T_TABLE', 'T_CONSTRAINT', 'T_INDEX', 'T_TRIGGER', @@ -291,13 +293,12 @@ class TGrant(TElem): """Parse ACL to tuple of (user, acl, who)""" if relacl is None: return [] - if len(relacl) > 0 and relacl[0] == '{' and relacl[-1] == '}': - relacl = relacl[1:-1] tup_list = [] - for f in relacl.split(','): - user, tmp = f.strip('"').split('=') - acl, who = tmp.split('/') - tup_list.append((user, acl, who)) + for sacl in parse_pgarray(relacl): + acl = parse_acl(sacl) + if not acl: + continue + tup_list.append(acl) return tup_list def __init__(self, table_name, row, new_name = None): -- cgit v1.2.3