@@ -220,37 +220,37 @@ func readGroupTableDefaultPrivileges(tx *sql.Tx, d *schema.ResourceData, entityI
220
220
if entityIsUser {
221
221
query = `
222
222
SELECT
223
- decode(charindex('r',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as select,
224
- decode(charindex('w',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as update,
225
- decode(charindex('a',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as insert,
226
- decode(charindex('d',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as delete,
227
- decode(charindex('D',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as drop,
228
- decode(charindex('x',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as references,
229
- decode(charindex('R',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as rule,
230
- decode(charindex('t',split_part(split_part(regexp_replace(array_to_string(defaclacl, '|'), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as trigger
223
+ decode(charindex('r',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as select,
224
+ decode(charindex('w',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as update,
225
+ decode(charindex('a',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as insert,
226
+ decode(charindex('d',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as delete,
227
+ decode(charindex('D',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as drop,
228
+ decode(charindex('x',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as references,
229
+ decode(charindex('R',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as rule,
230
+ decode(charindex('t',split_part(split_part(regexp_replace(replace( array_to_string(defaclacl, '|'), '"', ' '), 'group '||u.usename), u.usename||'=', 2) ,'/',1)),0,0,1) as trigger
231
231
FROM pg_user u, pg_default_acl acl
232
232
WHERE
233
233
acl.defaclnamespace = $1
234
- AND regexp_replace(array_to_string(acl.defaclacl, '|'), 'group '||u.usename) LIKE '%' || u.usename || '=%'
234
+ AND regexp_replace(replace( array_to_string(acl.defaclacl, '|'), '"', ' '), 'group '||u.usename) LIKE '%' || u.usename || '=%'
235
235
AND u.usesysid = $2
236
236
AND acl.defaclobjtype = $3
237
237
AND acl.defacluser = $4
238
238
`
239
239
} else {
240
240
query = `
241
241
SELECT
242
- decode(charindex('r',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as select,
243
- decode(charindex('w',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as update,
244
- decode(charindex('a',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as insert,
245
- decode(charindex('d',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as delete,
246
- decode(charindex('D',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as drop,
247
- decode(charindex('x',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as references,
248
- decode(charindex('R',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as rule,
249
- decode(charindex('t',split_part(split_part(array_to_string(defaclacl, '|'),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as trigger
242
+ decode(charindex('r',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as select,
243
+ decode(charindex('w',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as update,
244
+ decode(charindex('a',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as insert,
245
+ decode(charindex('d',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as delete,
246
+ decode(charindex('D',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as drop,
247
+ decode(charindex('x',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as references,
248
+ decode(charindex('R',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as rule,
249
+ decode(charindex('t',split_part(split_part(replace( array_to_string(defaclacl, '|'), '"', ' '),'group ' || gr.groname,2 ) ,'/',1)),0,0,1) as trigger
250
250
FROM pg_group gr, pg_default_acl acl
251
251
WHERE
252
252
acl.defaclnamespace = $1
253
- AND array_to_string(acl.defaclacl, '|') LIKE '%' || 'group ' || gr.groname || '=%'
253
+ AND replace( array_to_string(acl.defaclacl, '|'), '"', ' ') LIKE '%' || 'group ' || gr.groname || '=%'
254
254
AND gr.grosysid = $2
255
255
AND acl.defaclobjtype = $3
256
256
AND acl.defacluser = $4
0 commit comments