Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I propose that we change the syntax to be
>
> WITH OIDS
> | WITHOUT OIDS
> | WITH (definition)
> | /*EMPTY*/
>
> and say that if you want to specify both OIDS and another option you
> have to write "oids" or "oids=false" in the definition list.
Yeah, it sounds good. However, the syntax "oids=false" is not available
for a limitation of the current parser; it can recognize only numerics or
strings as a value. So oids=0/1 or oids='false'/'true' are ok, but
false/true literals are syntax error.
# CREATE TABLE test1 (i int) WITH (oids=0);
CREATE TABLE
# CREATE TABLE test2 (i int) WITH (oids=false);
ERROR: syntax error at or near "false"
LINE 1: CREATE TABLE test2 (i int) WITH (oids=false); ^
# CREATE TABLE test3 (i int) with (oids='false');
ERROR: oids requires a boolean value (*) We can resolve this by adding a T_String handler to defGetBoolean().
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center