@ -177,10 +177,10 @@ static Node *makeStringConst(char *str, int location);
static Node *makeStringConstCast(char *str, int location, TypeName *typename);
static Node *makeIntConst(int val, int location);
static Node *makeFloatConst(char *str, int location);
static Node *makeBoolAConst(bool state, int location);
static Node *makeBitStringConst(char *str, int location);
static Node *makeNullAConst(int location);
static Node *makeAConst(Node *v, int location);
static Node *makeBoolAConst(bool state, int location);
static RoleSpec *makeRoleSpec(RoleSpecType type, int location);
static void check_qualified_name(List *names, core_yyscan_t yyscanner);
static List *check_func_name(List *names, core_yyscan_t yyscanner);
@ -1133,7 +1133,7 @@ AlterOptRoleElem:
}
| INHERIT
{
$$ = makeDefElem("inherit", (Node *)makeInteger (true), @1);
$$ = makeDefElem("inherit", (Node *)makeBoolean (true), @1);
}
| CONNECTION LIMIT SignedIconst
{
@ -1156,36 +1156,36 @@ AlterOptRoleElem:
* size of the main parser.
*/
if (strcmp($1, "superuser") == 0)
$$ = makeDefElem("superuser", (Node *)makeInteger (true), @1);
$$ = makeDefElem("superuser", (Node *)makeBoolean (true), @1);
else if (strcmp($1, "nosuperuser") == 0)
$$ = makeDefElem("superuser", (Node *)makeInteger (false), @1);
$$ = makeDefElem("superuser", (Node *)makeBoolean (false), @1);
else if (strcmp($1, "createrole") == 0)
$$ = makeDefElem("createrole", (Node *)makeInteger (true), @1);
$$ = makeDefElem("createrole", (Node *)makeBoolean (true), @1);
else if (strcmp($1, "nocreaterole") == 0)
$$ = makeDefElem("createrole", (Node *)makeInteger (false), @1);
$$ = makeDefElem("createrole", (Node *)makeBoolean (false), @1);
else if (strcmp($1, "replication") == 0)
$$ = makeDefElem("isreplication", (Node *)makeInteger (true), @1);
$$ = makeDefElem("isreplication", (Node *)makeBoolean (true), @1);
else if (strcmp($1, "noreplication") == 0)
$$ = makeDefElem("isreplication", (Node *)makeInteger (false), @1);
$$ = makeDefElem("isreplication", (Node *)makeBoolean (false), @1);
else if (strcmp($1, "createdb") == 0)
$$ = makeDefElem("createdb", (Node *)makeInteger (true), @1);
$$ = makeDefElem("createdb", (Node *)makeBoolean (true), @1);
else if (strcmp($1, "nocreatedb") == 0)
$$ = makeDefElem("createdb", (Node *)makeInteger (false), @1);
$$ = makeDefElem("createdb", (Node *)makeBoolean (false), @1);
else if (strcmp($1, "login") == 0)
$$ = makeDefElem("canlogin", (Node *)makeInteger (true), @1);
$$ = makeDefElem("canlogin", (Node *)makeBoolean (true), @1);
else if (strcmp($1, "nologin") == 0)
$$ = makeDefElem("canlogin", (Node *)makeInteger (false), @1);
$$ = makeDefElem("canlogin", (Node *)makeBoolean (false), @1);
else if (strcmp($1, "bypassrls") == 0)
$$ = makeDefElem("bypassrls", (Node *)makeInteger (true), @1);
$$ = makeDefElem("bypassrls", (Node *)makeBoolean (true), @1);
else if (strcmp($1, "nobypassrls") == 0)
$$ = makeDefElem("bypassrls", (Node *)makeInteger (false), @1);
$$ = makeDefElem("bypassrls", (Node *)makeBoolean (false), @1);
else if (strcmp($1, "noinherit") == 0)
{
/*
* Note that INHERIT is a keyword, so it's handled by main parser, but
* NOINHERIT is handled here.
*/
$$ = makeDefElem("inherit", (Node *)makeInteger (false), @1);
$$ = makeDefElem("inherit", (Node *)makeBoolean (false), @1);
}
else
ereport(ERROR,
@ -3175,7 +3175,7 @@ copy_opt_item:
}
| FREEZE
{
$$ = makeDefElem("freeze", (Node *)makeInteger (true), @1);
$$ = makeDefElem("freeze", (Node *)makeBoolean (true), @1);
}
| DELIMITER opt_as Sconst
{
@ -3191,7 +3191,7 @@ copy_opt_item:
}
| HEADER_P
{
$$ = makeDefElem("header", (Node *)makeInteger (true), @1);
$$ = makeDefElem("header", (Node *)makeBoolean (true), @1);
}
| QUOTE opt_as Sconst
{
@ -4499,11 +4499,11 @@ SeqOptElem: AS SimpleTypename
}
| CYCLE
{
$$ = makeDefElem("cycle", (Node *)makeInteger (true), @1);
$$ = makeDefElem("cycle", (Node *)makeBoolean (true), @1);
}
| NO CYCLE
{
$$ = makeDefElem("cycle", (Node *)makeInteger (false), @1);
$$ = makeDefElem("cycle", (Node *)makeBoolean (false), @1);
}
| INCREMENT opt_by NumericOnly
{
@ -4739,7 +4739,7 @@ create_extension_opt_item:
}
| CASCADE
{
$$ = makeDefElem("cascade", (Node *)makeInteger (true), @1);
$$ = makeDefElem("cascade", (Node *)makeBoolean (true), @1);
}
;
@ -7934,15 +7934,15 @@ createfunc_opt_list:
common_func_opt_item:
CALLED ON NULL_P INPUT_P
{
$$ = makeDefElem("strict", (Node *)makeInteger (false), @1);
$$ = makeDefElem("strict", (Node *)makeBoolean (false), @1);
}
| RETURNS NULL_P ON NULL_P INPUT_P
{
$$ = makeDefElem("strict", (Node *)makeInteger (true), @1);
$$ = makeDefElem("strict", (Node *)makeBoolean (true), @1);
}
| STRICT_P
{
$$ = makeDefElem("strict", (Node *)makeInteger (true), @1);
$$ = makeDefElem("strict", (Node *)makeBoolean (true), @1);
}
| IMMUTABLE
{
@ -7958,27 +7958,27 @@ common_func_opt_item:
}
| EXTERNAL SECURITY DEFINER
{
$$ = makeDefElem("security", (Node *)makeInteger (true), @1);
$$ = makeDefElem("security", (Node *)makeBoolean (true), @1);
}
| EXTERNAL SECURITY INVOKER
{
$$ = makeDefElem("security", (Node *)makeInteger (false), @1);
$$ = makeDefElem("security", (Node *)makeBoolean (false), @1);
}
| SECURITY DEFINER
{
$$ = makeDefElem("security", (Node *)makeInteger (true), @1);
$$ = makeDefElem("security", (Node *)makeBoolean (true), @1);
}
| SECURITY INVOKER
{
$$ = makeDefElem("security", (Node *)makeInteger (false), @1);
$$ = makeDefElem("security", (Node *)makeBoolean (false), @1);
}
| LEAKPROOF
{
$$ = makeDefElem("leakproof", (Node *)makeInteger (true), @1);
$$ = makeDefElem("leakproof", (Node *)makeBoolean (true), @1);
}
| NOT LEAKPROOF
{
$$ = makeDefElem("leakproof", (Node *)makeInteger (false), @1);
$$ = makeDefElem("leakproof", (Node *)makeBoolean (false), @1);
}
| COST NumericOnly
{
@ -8018,7 +8018,7 @@ createfunc_opt_item:
}
| WINDOW
{
$$ = makeDefElem("window", (Node *)makeInteger (true), @1);
$$ = makeDefElem("window", (Node *)makeBoolean (true), @1);
}
| common_func_opt_item
{
@ -9941,7 +9941,7 @@ AlterSubscriptionStmt:
n->kind = ALTER_SUBSCRIPTION_ENABLED;
n->subname = $3;
n->options = list_make1(makeDefElem("enabled",
(Node *)makeInteger (true), @1));
(Node *)makeBoolean (true), @1));
$$ = (Node *)n;
}
| ALTER SUBSCRIPTION name DISABLE_P
@ -9951,7 +9951,7 @@ AlterSubscriptionStmt:
n->kind = ALTER_SUBSCRIPTION_ENABLED;
n->subname = $3;
n->options = list_make1(makeDefElem("enabled",
(Node *)makeInteger (false), @1));
(Node *)makeBoolean (false), @1));
$$ = (Node *)n;
}
;
@ -12874,7 +12874,7 @@ xmltable_column_el:
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname),
parser_errposition(defel->location)));
fc->is_not_null = int Val(defel->arg);
fc->is_not_null = bool Val(defel->arg);
nullability_seen = true;
}
else
@ -12914,9 +12914,9 @@ xmltable_column_option_el:
| DEFAULT b_expr
{ $$ = makeDefElem("default", $2, @1); }
| NOT NULL_P
{ $$ = makeDefElem("is_not_null", (Node *) makeInteger (true), @1); }
{ $$ = makeDefElem("is_not_null", (Node *) makeBoolean (true), @1); }
| NULL_P
{ $$ = makeDefElem("is_not_null", (Node *) makeInteger (false), @1); }
{ $$ = makeDefElem("is_not_null", (Node *) makeBoolean (false), @1); }
;
xml_namespace_list:
@ -16705,6 +16705,18 @@ makeFloatConst(char *str, int location)
return (Node *)n;
}
static Node *
makeBoolAConst(bool state, int location)
{
A_Const *n = makeNode(A_Const);
n->val.boolval.type = T_Boolean;
n->val.boolval.boolval = state;
n->location = location;
return (Node *)n;
}
static Node *
makeBitStringConst(char *str, int location)
{
@ -16743,26 +16755,15 @@ makeAConst(Node *v, int location)
n = makeIntConst(castNode(Integer, v)->ival, location);
break;
case T_String:
default:
n = makeStringConst(castNode(String, v)->sval, location);
break;
/* currently not used */
Assert(false);
n = NULL;
}
return n;
}
/* makeBoolAConst()
* Create an A_Const string node and put it inside a boolean cast.
*/
static Node *
makeBoolAConst(bool state, int location)
{
return makeStringConstCast((state ? "t" : "f"),
location,
SystemTypeName("bool"));
}
/* makeRoleSpec
* Create a RoleSpec with the given type
*/