I simply don't understand how we can be getting any meaningful test
coverage out of those cases.  I mean, if we want to check every bit of
syntax that could lead to a syntax error, we could probably come up
with a near-infinite number of test cases:

I think that it would be enough to check for expected keywords/identifier/stuff whether the syntax error reported make sense. Basically the parser reports the first found inconsistency.

 1. CREAT TABLE foo (x int);
 2. CREATE TABL foo (x int);
 3. CREATER TABLE foo (x int); -- same as 1
 4. CREATE TABLES foo (x int); -- same as 2
 5. CREATE CREATE TABLE foo (x int); -- hmmm.
 6. CREATE TABLE foo [x int);
 7. CREATE TABLE foo (x int];
 8. CREATE TABLE foo [x int]; -- same as 6 & 7
 9. CREATE TABLE (x int);
 A. CREATE foo (x int); -- same as 2

This level of testing can be more or less linear in the number of token.

--
Fabien.


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to