<entry><type>text</type></entry>
<entry>
Format a string. This function is similar to the C function
- <function>sprintf</>; but only the following conversions
+ <function>sprintf</>; but only the following conversion specifications
are recognized: <literal>%s</literal> interpolates the corresponding
argument as a string; <literal>%I</literal> escapes its argument as
an SQL identifier; <literal>%L</literal> escapes its argument as an
if (Anum_owner <= 0)
ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
- (errmsg("must be superuser to SET SCHEMA of %s",
+ (errmsg("must be superuser to set schema of %s",
getObjectDescriptionOids(classId, objid)))));
/* Otherwise, must be owner of the existing object */
if (readlink(fullpath, linkpath, sizeof(linkpath) - 1) == -1)
{
ereport(WARNING,
- (errmsg("unable to read symbolic link %s: %m", fullpath)));
+ (errmsg("could not read symbolic link \"%s\": %m", fullpath)));
continue;
}
dir = AllocateDir("pg_tblspc");
if (!dir)
ereport(ERROR,
- (errmsg("unable to open directory pg_tblspc: %m")));
+ (errmsg("could not open directory \"pg_tblspc\": %m")));
perform_base_backup(&opt, dir);
default:
ereport(FATAL,
(errcode(ERRCODE_PROTOCOL_VIOLATION),
- errmsg("invalid standby message type %d",
+ errmsg("invalid standby message type \"%c\"",
firstchar)));
}
}
default:
ereport(COMMERROR,
(errcode(ERRCODE_PROTOCOL_VIOLATION),
- errmsg("unexpected message type %c", msgtype)));
+ errmsg("unexpected message type \"%c\"", msgtype)));
proc_exit(0);
}
}
if (arg > PG_NARGS() - 1)
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("too few arguments for format conversion")));
+ errmsg("too few arguments for format")));
/*
* At this point, we should see the main conversion specifier. Whether
default:
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("unrecognized conversion specifier: %c",
+ errmsg("unrecognized conversion specifier \"%c\"",
*cp)));
}
}
-- should fail
select format('Hello %s %s', 'World');
-ERROR: too few arguments for format conversion
+ERROR: too few arguments for format
select format('Hello %s');
-ERROR: too few arguments for format conversion
+ERROR: too few arguments for format
select format('Hello %x', 20);
-ERROR: unrecognized conversion specifier: x
+ERROR: unrecognized conversion specifier "x"
-- check literal and sql identifiers
select format('INSERT INTO %I VALUES(%L,%L)', 'mytab', 10, 'Hello');
format
-- should fail
select format('%1$s %4$s', 1, 2, 3);
-ERROR: too few arguments for format conversion
+ERROR: too few arguments for format
select format('%1$s %13$s', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
-ERROR: too few arguments for format conversion
+ERROR: too few arguments for format
select format('%1s', 1);
ERROR: unterminated conversion specifier
select format('%1$', 1);
ERROR: unterminated conversion specifier
select format('%1$1', 1);
-ERROR: unrecognized conversion specifier: 1
+ERROR: unrecognized conversion specifier "1"
--checkk mix of positional and ordered placeholders
select format('Hello %s %1$s %s', 'World', 'Hello again');
format