@@ -327,6 +327,41 @@ EXECUTE prepared(1.0);
327327----------+-------
328328(0 rows)
329329
330+ -- Allow anonymizing JOINs
331+ SELECT COUNT(*) FROM test_validation AS c
332+ INNER JOIN test_purchases ON c.id = cid;
333+ count
334+ -------
335+ 0
336+ (1 row)
337+
338+ SELECT COUNT(*) FROM test_validation AS t1
339+ INNER JOIN test_validation AS t2 ON t1.name = t2.name AND t1.city = t2.city;
340+ count
341+ -------
342+ 0
343+ (1 row)
344+
345+ SELECT COUNT(c.city), COUNT(p.name) FROM test_validation AS c
346+ LEFT JOIN test_purchases ON c.id = cid
347+ LEFT JOIN test_products AS p ON pid = p.id;
348+ count | count
349+ -------+-------
350+ 0 | 0
351+ (1 row)
352+
353+ SELECT COUNT(*) FROM test_validation NATURAL JOIN test_patients;
354+ count
355+ -------
356+ 0
357+ (1 row)
358+
359+ SELECT COUNT(*) FROM test_validation JOIN test_patients USING (name);
360+ count
361+ -------
362+ 0
363+ (1 row)
364+
330365----------------------------------------------------------------
331366-- Unsupported queries
332367----------------------------------------------------------------
@@ -477,25 +512,20 @@ SELECT GREATEST(discount, 20) FROM test_validation;
477512ERROR: [PG_DIFFIX] Unsupported generalization expression.
478513SELECT LEAST(discount, 20) FROM test_validation;
479514ERROR: [PG_DIFFIX] Unsupported generalization expression.
480- -- Get rejected because of JOINs
481- SELECT COUNT(*), COUNT(DISTINCT id), COUNT(DISTINCT cid) FROM test_validation
482- INNER JOIN test_purchases tp ON id = cid;
483- ERROR: [PG_DIFFIX] Feature 'JOINs in anonymizing queries' is not currently supported.
484- SELECT COUNT(c.city), COUNT(p.name) FROM test_validation c
485- LEFT JOIN test_purchases ON c.id = cid
486- LEFT JOIN test_products p ON pid = p.id;
487- ERROR: [PG_DIFFIX] Feature 'JOINs in anonymizing queries' is not currently supported.
488- SELECT city, COUNT(price) FROM test_validation, test_products GROUP BY 1;
489- ERROR: [PG_DIFFIX] Feature 'JOINs in anonymizing queries' is not currently supported.
490- SELECT city, COUNT(price) FROM test_products, test_validation GROUP BY 1;
491- ERROR: [PG_DIFFIX] Feature 'JOINs in anonymizing queries' is not currently supported.
492- SELECT city, COUNT(price) FROM test_products CROSS JOIN test_validation GROUP BY 1;
493- ERROR: [PG_DIFFIX] Feature 'JOINs in anonymizing queries' is not currently supported.
515+ -- Get rejected because of invalid JOINs
516+ SELECT COUNT(*) FROM test_validation JOIN test_purchases ON id != cid;
517+ ERROR: [PG_DIFFIX] Only equalities are allowed in pre-anonymization filters.
518+ SELECT COUNT(*) FROM test_validation JOIN test_purchases ON id = cid OR cid = id;
519+ ERROR: [PG_DIFFIX] Only equalities are allowed in pre-anonymization filters.
520+ SELECT COUNT(*) FROM test_validation JOIN test_purchases ON true;
521+ ERROR: [PG_DIFFIX] Only equalities are allowed in pre-anonymization filters.
522+ SELECT COUNT(*) FROM test_validation, test_purchases;
523+ ERROR: [PG_DIFFIX] Feature 'CROSS JOIN in anonymizing queries' is not currently supported.
494524-- Get rejected because of invalid WHERE clauses
495525SELECT COUNT(*) FROM test_validation WHERE city <> 'London';
496- ERROR: [PG_DIFFIX] Only equalities between generalization expressions and constants are allowed as pre-anonymization filters.
526+ ERROR: [PG_DIFFIX] Only equalities are allowed in pre-anonymization filters.
497527SELECT COUNT(*) FROM test_validation WHERE city = 'London' OR discount = 10;
498- ERROR: [PG_DIFFIX] Only equalities between generalization expressions and constants are allowed as pre-anonymization filters.
528+ ERROR: [PG_DIFFIX] Only equalities are allowed in pre-anonymization filters.
499529SELECT COUNT(*) FROM test_validation WHERE diffix.round_by(id, 5) = 0;
500530ERROR: [PG_DIFFIX] AID columns can't be referenced by pre-anonymization filters.
501531LINE 1: ...UNT(*) FROM test_validation WHERE diffix.round_by(id, 5) = 0...
@@ -563,9 +593,9 @@ SELECT * FROM pg_stat_activity LIMIT 10;
563593ERROR: permission denied for schema pg_catalog
564594-- Get rejected because of inheritance
565595SELECT x, y FROM subclass;
566- ERROR: [PG_DIFFIX] Feature 'Inheritance in anonymizing queries. ' is not currently supported.
596+ ERROR: [PG_DIFFIX] Feature 'Inheritance in anonymizing queries' is not currently supported.
567597SELECT x FROM superclass;
568- ERROR: [PG_DIFFIX] Feature 'Inheritance in anonymizing queries. ' is not currently supported.
598+ ERROR: [PG_DIFFIX] Feature 'Inheritance in anonymizing queries' is not currently supported.
569599-- Get rejected because attempt to use system columns
570600SELECT ctid FROM test_validation;
571601ERROR: [PG_DIFFIX] System columns are not allowed in this context.
0 commit comments