mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
Tweak detail and hint messages to be consistent with project policy
Detail and hint messages should be full sentences and should end with a period, but some of the messages newly-introduced in v15 did not follow that. Author: Justin Pryzby Reviewed-by: Álvaro Herrera Discussion: https://postgr.es/m/20220719120948.GF12702@telsasoft.com Backpatch-through: 15
This commit is contained in:
parent
ecc84b916f
commit
12c254c99f
@ -111,7 +111,7 @@ check_archive_directory(char **newval, void **extra, GucSource source)
|
|||||||
*/
|
*/
|
||||||
if (strlen(*newval) + 64 + 2 >= MAXPGPATH)
|
if (strlen(*newval) + 64 + 2 >= MAXPGPATH)
|
||||||
{
|
{
|
||||||
GUC_check_errdetail("archive directory too long");
|
GUC_check_errdetail("Archive directory too long.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ check_archive_directory(char **newval, void **extra, GucSource source)
|
|||||||
*/
|
*/
|
||||||
if (stat(*newval, &st) != 0 || !S_ISDIR(st.st_mode))
|
if (stat(*newval, &st) != 0 || !S_ISDIR(st.st_mode))
|
||||||
{
|
{
|
||||||
GUC_check_errdetail("specified archive directory does not exist");
|
GUC_check_errdetail("Specified archive directory does not exist.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9590,7 +9590,7 @@ HINT: Target server's authentication method must be changed or password_require
|
|||||||
-- Unpriv user cannot make the mapping passwordless
|
-- Unpriv user cannot make the mapping passwordless
|
||||||
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false');
|
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false');
|
||||||
ERROR: password_required=false is superuser-only
|
ERROR: password_required=false is superuser-only
|
||||||
HINT: User mappings with the password_required option set to false may only be created or modified by the superuser
|
HINT: User mappings with the password_required option set to false may only be created or modified by the superuser.
|
||||||
SELECT 1 FROM ft1_nopw LIMIT 1;
|
SELECT 1 FROM ft1_nopw LIMIT 1;
|
||||||
ERROR: password is required
|
ERROR: password is required
|
||||||
DETAIL: Non-superuser cannot connect if the server does not request a password.
|
DETAIL: Non-superuser cannot connect if the server does not request a password.
|
||||||
@ -9611,10 +9611,10 @@ SELECT 1 FROM ft1_nopw LIMIT 1;
|
|||||||
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (SET password_required 'true');
|
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (SET password_required 'true');
|
||||||
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslcert 'foo.crt');
|
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslcert 'foo.crt');
|
||||||
ERROR: sslcert and sslkey are superuser-only
|
ERROR: sslcert and sslkey are superuser-only
|
||||||
HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser
|
HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser.
|
||||||
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslkey 'foo.key');
|
ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslkey 'foo.key');
|
||||||
ERROR: sslcert and sslkey are superuser-only
|
ERROR: sslcert and sslkey are superuser-only
|
||||||
HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser
|
HINT: User mappings with the sslcert or sslkey options set may only be created or modified by the superuser.
|
||||||
-- We're done with the role named after a specific user and need to check the
|
-- We're done with the role named after a specific user and need to check the
|
||||||
-- changes to the public mapping.
|
-- changes to the public mapping.
|
||||||
DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;
|
DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;
|
||||||
|
@ -193,7 +193,7 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
errmsg("password_required=false is superuser-only"),
|
errmsg("password_required=false is superuser-only"),
|
||||||
errhint("User mappings with the password_required option set to false may only be created or modified by the superuser")));
|
errhint("User mappings with the password_required option set to false may only be created or modified by the superuser.")));
|
||||||
}
|
}
|
||||||
else if (strcmp(def->defname, "sslcert") == 0 ||
|
else if (strcmp(def->defname, "sslcert") == 0 ||
|
||||||
strcmp(def->defname, "sslkey") == 0)
|
strcmp(def->defname, "sslkey") == 0)
|
||||||
@ -203,7 +203,7 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
errmsg("sslcert and sslkey are superuser-only"),
|
errmsg("sslcert and sslkey are superuser-only"),
|
||||||
errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser")));
|
errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser.")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -743,7 +743,7 @@ CheckPubRelationColumnList(List *tables, const char *queryString,
|
|||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("cannot use publication column list for relation \"%s\"",
|
errmsg("cannot use publication column list for relation \"%s\"",
|
||||||
RelationGetRelationName(pri->relation)),
|
RelationGetRelationName(pri->relation)),
|
||||||
errdetail("column list cannot be used for a partitioned table when %s is false.",
|
errdetail("Column list cannot be used for a partitioned table when %s is false.",
|
||||||
"publish_via_partition_root")));
|
"publish_via_partition_root")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17790,7 +17790,7 @@ ATExecAttachPartition(List **wqueue, Relation rel, PartitionCmd *cmd,
|
|||||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
errmsg("trigger \"%s\" prevents table \"%s\" from becoming a partition",
|
errmsg("trigger \"%s\" prevents table \"%s\" from becoming a partition",
|
||||||
trigger_name, RelationGetRelationName(attachrel)),
|
trigger_name, RelationGetRelationName(attachrel)),
|
||||||
errdetail("ROW triggers with transition tables are not supported on partitions")));
|
errdetail("ROW triggers with transition tables are not supported on partitions.")));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check that the new partition's bound is valid and does not overlap any
|
* Check that the new partition's bound is valid and does not overlap any
|
||||||
|
@ -3447,7 +3447,7 @@ checkJsonOutputFormat(ParseState *pstate, const JsonFormat *format,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
errmsg("unsupported JSON encoding"),
|
errmsg("unsupported JSON encoding"),
|
||||||
errhint("only UTF8 JSON encoding is supported"),
|
errhint("Only UTF8 JSON encoding is supported."),
|
||||||
parser_errposition(pstate, format->location)));
|
parser_errposition(pstate, format->location)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4580,7 +4580,7 @@ transformJsonSerializeExpr(ParseState *pstate, JsonSerializeExpr *expr)
|
|||||||
errmsg("cannot use RETURNING type %s in %s",
|
errmsg("cannot use RETURNING type %s in %s",
|
||||||
format_type_be(returning->typid),
|
format_type_be(returning->typid),
|
||||||
"JSON_SERIALIZE()"),
|
"JSON_SERIALIZE()"),
|
||||||
errhint("Try returning a string type or bytea")));
|
errhint("Try returning a string type or bytea.")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -141,7 +141,7 @@ registerJsonTableColumn(JsonTableContext *cxt, char *colname)
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_DUPLICATE_ALIAS),
|
(errcode(ERRCODE_DUPLICATE_ALIAS),
|
||||||
errmsg("duplicate JSON_TABLE column name: %s", colname),
|
errmsg("duplicate JSON_TABLE column name: %s", colname),
|
||||||
errhint("JSON_TABLE column names must be distinct from one another")));
|
errhint("JSON_TABLE column names must be distinct from one another.")));
|
||||||
|
|
||||||
cxt->pathNames = lappend(cxt->pathNames, colname);
|
cxt->pathNames = lappend(cxt->pathNames, colname);
|
||||||
}
|
}
|
||||||
@ -258,7 +258,7 @@ validateJsonTableChildPlan(ParseState *pstate, JsonTablePlan *plan,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("invalid JSON_TABLE plan"),
|
errmsg("invalid JSON_TABLE plan"),
|
||||||
errdetail("plan node for nested path %s was not found in plan", jtc->pathname),
|
errdetail("Plan node for nested path %s was not found in plan.", jtc->pathname),
|
||||||
parser_errposition(pstate, jtc->location)));
|
parser_errposition(pstate, jtc->location)));
|
||||||
|
|
||||||
nchildren++;
|
nchildren++;
|
||||||
@ -269,7 +269,7 @@ validateJsonTableChildPlan(ParseState *pstate, JsonTablePlan *plan,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("invalid JSON_TABLE plan"),
|
errmsg("invalid JSON_TABLE plan"),
|
||||||
errdetail("plan node contains some extra or duplicate sibling nodes"),
|
errdetail("Plan node contains some extra or duplicate sibling nodes."),
|
||||||
parser_errposition(pstate, plan ? plan->location : -1)));
|
parser_errposition(pstate, plan ? plan->location : -1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ transformJsonTableChildPlan(JsonTableContext *cxt, JsonTablePlan *plan,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("invalid JSON_TABLE plan"),
|
errmsg("invalid JSON_TABLE plan"),
|
||||||
errdetail("path name was %s not found in nested columns list",
|
errdetail("Path name was %s not found in nested columns list.",
|
||||||
plan->pathname),
|
plan->pathname),
|
||||||
parser_errposition(cxt->pstate, plan->location)));
|
parser_errposition(cxt->pstate, plan->location)));
|
||||||
|
|
||||||
@ -586,7 +586,7 @@ transformJsonTableColumns(JsonTableContext *cxt, JsonTablePlan *plan,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("invalid JSON_TABLE plan"),
|
errmsg("invalid JSON_TABLE plan"),
|
||||||
errdetail("expected INNER or OUTER JSON_TABLE plan node"),
|
errdetail("Expected INNER or OUTER JSON_TABLE plan node."),
|
||||||
parser_errposition(cxt->pstate, plan->location)));
|
parser_errposition(cxt->pstate, plan->location)));
|
||||||
|
|
||||||
parentPlan = plan->plan1;
|
parentPlan = plan->plan1;
|
||||||
@ -605,7 +605,7 @@ transformJsonTableColumns(JsonTableContext *cxt, JsonTablePlan *plan,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("invalid JSON_TABLE plan"),
|
errmsg("invalid JSON_TABLE plan"),
|
||||||
errdetail("path name mismatch: expected %s but %s is given",
|
errdetail("Path name mismatch: expected %s but %s is given.",
|
||||||
*pathName, parentPlan->pathname),
|
*pathName, parentPlan->pathname),
|
||||||
parser_errposition(cxt->pstate, plan->location)));
|
parser_errposition(cxt->pstate, plan->location)));
|
||||||
|
|
||||||
|
@ -2973,8 +2973,8 @@ JsonPathQuery(Datum jb, JsonPath *jp, JsonWrapper wrapper, bool *empty,
|
|||||||
(errcode(ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM),
|
(errcode(ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM),
|
||||||
errmsg("JSON path expression in JSON_QUERY should return "
|
errmsg("JSON path expression in JSON_QUERY should return "
|
||||||
"singleton item without wrapper"),
|
"singleton item without wrapper"),
|
||||||
errhint("use WITH WRAPPER clause to wrap SQL/JSON item "
|
errhint("Use WITH WRAPPER clause to wrap SQL/JSON item "
|
||||||
"sequence into array")));
|
"sequence into array.")));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (first)
|
if (first)
|
||||||
|
@ -526,7 +526,7 @@ makeItemLikeRegex(JsonPathParseItem *expr, JsonPathString *pattern,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("invalid input syntax for type %s", "jsonpath"),
|
errmsg("invalid input syntax for type %s", "jsonpath"),
|
||||||
errdetail("unrecognized flag character \"%.*s\" in LIKE_REGEX predicate",
|
errdetail("Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate.",
|
||||||
pg_mblen(flags->val + i), flags->val + i)));
|
pg_mblen(flags->val + i), flags->val + i)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -12551,7 +12551,7 @@ check_client_connection_check_interval(int *newval, void **extra, GucSource sour
|
|||||||
{
|
{
|
||||||
if (!WaitEventSetCanReportClosed() && *newval != 0)
|
if (!WaitEventSetCanReportClosed() && *newval != 0)
|
||||||
{
|
{
|
||||||
GUC_check_errdetail("client_connection_check_interval must be set to 0 on this platform");
|
GUC_check_errdetail("client_connection_check_interval must be set to 0 on this platform.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -716,7 +716,7 @@ SELECT JSON_QUERY(jsonb '[]', '$[*]' ERROR ON ERROR);
|
|||||||
|
|
||||||
SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' ERROR ON ERROR);
|
SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' ERROR ON ERROR);
|
||||||
ERROR: JSON path expression in JSON_QUERY should return singleton item without wrapper
|
ERROR: JSON path expression in JSON_QUERY should return singleton item without wrapper
|
||||||
HINT: use WITH WRAPPER clause to wrap SQL/JSON item sequence into array
|
HINT: Use WITH WRAPPER clause to wrap SQL/JSON item sequence into array.
|
||||||
SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' DEFAULT '"empty"' ON ERROR);
|
SELECT JSON_QUERY(jsonb '[1,2]', '$[*]' DEFAULT '"empty"' ON ERROR);
|
||||||
json_query
|
json_query
|
||||||
------------
|
------------
|
||||||
@ -1378,7 +1378,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
)
|
)
|
||||||
) jt;
|
) jt;
|
||||||
ERROR: duplicate JSON_TABLE column name: a
|
ERROR: duplicate JSON_TABLE column name: a
|
||||||
HINT: JSON_TABLE column names must be distinct from one another
|
HINT: JSON_TABLE column names must be distinct from one another.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb '[]', '$' AS a
|
jsonb '[]', '$' AS a
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1390,7 +1390,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
)
|
)
|
||||||
) jt;
|
) jt;
|
||||||
ERROR: duplicate JSON_TABLE column name: a
|
ERROR: duplicate JSON_TABLE column name: a
|
||||||
HINT: JSON_TABLE column names must be distinct from one another
|
HINT: JSON_TABLE column names must be distinct from one another.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb '[]', '$'
|
jsonb '[]', '$'
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1402,7 +1402,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
)
|
)
|
||||||
) jt;
|
) jt;
|
||||||
ERROR: duplicate JSON_TABLE column name: b
|
ERROR: duplicate JSON_TABLE column name: b
|
||||||
HINT: JSON_TABLE column names must be distinct from one another
|
HINT: JSON_TABLE column names must be distinct from one another.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb '[]', '$'
|
jsonb '[]', '$'
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1420,7 +1420,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
)
|
)
|
||||||
) jt;
|
) jt;
|
||||||
ERROR: duplicate JSON_TABLE column name: a
|
ERROR: duplicate JSON_TABLE column name: a
|
||||||
HINT: JSON_TABLE column names must be distinct from one another
|
HINT: JSON_TABLE column names must be distinct from one another.
|
||||||
-- JSON_TABLE: plan validation
|
-- JSON_TABLE: plan validation
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
@ -1438,7 +1438,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 12: PLAN (p1)
|
LINE 12: PLAN (p1)
|
||||||
^
|
^
|
||||||
DETAIL: path name mismatch: expected p0 but p1 is given
|
DETAIL: Path name mismatch: expected p0 but p1 is given.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1455,7 +1455,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 4: NESTED PATH '$' AS p1 COLUMNS (
|
LINE 4: NESTED PATH '$' AS p1 COLUMNS (
|
||||||
^
|
^
|
||||||
DETAIL: plan node for nested path p1 was not found in plan
|
DETAIL: Plan node for nested path p1 was not found in plan.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1472,7 +1472,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 4: NESTED PATH '$' AS p1 COLUMNS (
|
LINE 4: NESTED PATH '$' AS p1 COLUMNS (
|
||||||
^
|
^
|
||||||
DETAIL: plan node for nested path p1 was not found in plan
|
DETAIL: Plan node for nested path p1 was not found in plan.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1489,7 +1489,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 12: PLAN (p0 UNION p1 UNION p11)
|
LINE 12: PLAN (p0 UNION p1 UNION p11)
|
||||||
^
|
^
|
||||||
DETAIL: expected INNER or OUTER JSON_TABLE plan node
|
DETAIL: Expected INNER or OUTER JSON_TABLE plan node.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1506,7 +1506,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 8: NESTED PATH '$' AS p2 COLUMNS (
|
LINE 8: NESTED PATH '$' AS p2 COLUMNS (
|
||||||
^
|
^
|
||||||
DETAIL: plan node for nested path p2 was not found in plan
|
DETAIL: Plan node for nested path p2 was not found in plan.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1523,7 +1523,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 5: NESTED PATH '$' AS p11 COLUMNS ( foo int ),
|
LINE 5: NESTED PATH '$' AS p11 COLUMNS ( foo int ),
|
||||||
^
|
^
|
||||||
DETAIL: plan node for nested path p11 was not found in plan
|
DETAIL: Plan node for nested path p11 was not found in plan.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1540,7 +1540,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 12: PLAN (p0 OUTER ((p1 UNION p11) CROSS p2))
|
LINE 12: PLAN (p0 OUTER ((p1 UNION p11) CROSS p2))
|
||||||
^
|
^
|
||||||
DETAIL: plan node contains some extra or duplicate sibling nodes
|
DETAIL: Plan node contains some extra or duplicate sibling nodes.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1557,7 +1557,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 6: NESTED PATH '$' AS p12 COLUMNS ( bar int )
|
LINE 6: NESTED PATH '$' AS p12 COLUMNS ( bar int )
|
||||||
^
|
^
|
||||||
DETAIL: plan node for nested path p12 was not found in plan
|
DETAIL: Plan node for nested path p12 was not found in plan.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', '$[*]' AS p0
|
jsonb 'null', '$[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
@ -1574,7 +1574,7 @@ SELECT * FROM JSON_TABLE(
|
|||||||
ERROR: invalid JSON_TABLE plan
|
ERROR: invalid JSON_TABLE plan
|
||||||
LINE 9: NESTED PATH '$' AS p21 COLUMNS ( baz int )
|
LINE 9: NESTED PATH '$' AS p21 COLUMNS ( baz int )
|
||||||
^
|
^
|
||||||
DETAIL: plan node for nested path p21 was not found in plan
|
DETAIL: Plan node for nested path p21 was not found in plan.
|
||||||
SELECT * FROM JSON_TABLE(
|
SELECT * FROM JSON_TABLE(
|
||||||
jsonb 'null', 'strict $[*]' AS p0
|
jsonb 'null', 'strict $[*]' AS p0
|
||||||
COLUMNS (
|
COLUMNS (
|
||||||
|
@ -477,7 +477,7 @@ select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
|
|||||||
ERROR: invalid input syntax for type jsonpath
|
ERROR: invalid input syntax for type jsonpath
|
||||||
LINE 1: select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
|
LINE 1: select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
|
||||||
^
|
^
|
||||||
DETAIL: unrecognized flag character "a" in LIKE_REGEX predicate
|
DETAIL: Unrecognized flag character "a" in LIKE_REGEX predicate.
|
||||||
select '$ < 1'::jsonpath;
|
select '$ < 1'::jsonpath;
|
||||||
jsonpath
|
jsonpath
|
||||||
----------
|
----------
|
||||||
|
@ -940,7 +940,7 @@ ALTER PUBLICATION testpub6 SET (PUBLISH_VIA_PARTITION_ROOT=0);
|
|||||||
-- fail - cannot use column list for partitioned table
|
-- fail - cannot use column list for partitioned table
|
||||||
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk (a);
|
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk (a);
|
||||||
ERROR: cannot use publication column list for relation "rf_tbl_abcd_part_pk"
|
ERROR: cannot use publication column list for relation "rf_tbl_abcd_part_pk"
|
||||||
DETAIL: column list cannot be used for a partitioned table when publish_via_partition_root is false.
|
DETAIL: Column list cannot be used for a partitioned table when publish_via_partition_root is false.
|
||||||
-- ok - can use column list for partition
|
-- ok - can use column list for partition
|
||||||
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk_1 (a);
|
ALTER PUBLICATION testpub6 SET TABLE rf_tbl_abcd_part_pk_1 (a);
|
||||||
-- ok - "a" is a PK col
|
-- ok - "a" is a PK col
|
||||||
|
@ -317,7 +317,7 @@ SELECT pg_typeof(JSON_SERIALIZE(NULL));
|
|||||||
-- only string types or bytea allowed
|
-- only string types or bytea allowed
|
||||||
SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb);
|
SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb);
|
||||||
ERROR: cannot use RETURNING type jsonb in JSON_SERIALIZE()
|
ERROR: cannot use RETURNING type jsonb in JSON_SERIALIZE()
|
||||||
HINT: Try returning a string type or bytea
|
HINT: Try returning a string type or bytea.
|
||||||
EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SERIALIZE('{}');
|
EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SERIALIZE('{}');
|
||||||
QUERY PLAN
|
QUERY PLAN
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
@ -403,12 +403,12 @@ SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF16);
|
|||||||
ERROR: unsupported JSON encoding
|
ERROR: unsupported JSON encoding
|
||||||
LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF1...
|
LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF1...
|
||||||
^
|
^
|
||||||
HINT: only UTF8 JSON encoding is supported
|
HINT: Only UTF8 JSON encoding is supported.
|
||||||
SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF32);
|
SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF32);
|
||||||
ERROR: unsupported JSON encoding
|
ERROR: unsupported JSON encoding
|
||||||
LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF3...
|
LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF3...
|
||||||
^
|
^
|
||||||
HINT: only UTF8 JSON encoding is supported
|
HINT: Only UTF8 JSON encoding is supported.
|
||||||
SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
|
SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
|
||||||
ERROR: cannot use non-string types with explicit FORMAT JSON clause
|
ERROR: cannot use non-string types with explicit FORMAT JSON clause
|
||||||
LINE 1: SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
|
LINE 1: SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
|
||||||
@ -691,12 +691,12 @@ SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16);
|
|||||||
ERROR: unsupported JSON encoding
|
ERROR: unsupported JSON encoding
|
||||||
LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16...
|
LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16...
|
||||||
^
|
^
|
||||||
HINT: only UTF8 JSON encoding is supported
|
HINT: Only UTF8 JSON encoding is supported.
|
||||||
SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32);
|
SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32);
|
||||||
ERROR: unsupported JSON encoding
|
ERROR: unsupported JSON encoding
|
||||||
LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32...
|
LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32...
|
||||||
^
|
^
|
||||||
HINT: only UTF8 JSON encoding is supported
|
HINT: Only UTF8 JSON encoding is supported.
|
||||||
SELECT JSON_ARRAY('aaa', 111, true, array[1,2,3], NULL, json '{"a": [1]}', jsonb '["a",3]');
|
SELECT JSON_ARRAY('aaa', 111, true, array[1,2,3], NULL, json '{"a": [1]}', jsonb '["a",3]');
|
||||||
json_array
|
json_array
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
|
@ -2951,7 +2951,7 @@ create trigger child_row_trig
|
|||||||
-- but now we're not allowed to reattach it
|
-- but now we're not allowed to reattach it
|
||||||
alter table parent attach partition child for values in ('AAA');
|
alter table parent attach partition child for values in ('AAA');
|
||||||
ERROR: trigger "child_row_trig" prevents table "child" from becoming a partition
|
ERROR: trigger "child_row_trig" prevents table "child" from becoming a partition
|
||||||
DETAIL: ROW triggers with transition tables are not supported on partitions
|
DETAIL: ROW triggers with transition tables are not supported on partitions.
|
||||||
-- drop the trigger, and now we're allowed to attach it again
|
-- drop the trigger, and now we're allowed to attach it again
|
||||||
drop trigger child_row_trig on child;
|
drop trigger child_row_trig on child;
|
||||||
alter table parent attach partition child for values in ('AAA');
|
alter table parent attach partition child for values in ('AAA');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user