Thread: Name type in postgres

Name type in postgres

From
mohsen soodkhah mohammadi
Date:
hello.
I want do understand that did can we have name without null-terminator?
in src/backend/util/adt/name.c in nameout() function is:
Name        s = PG_GETARG_NAME(0);
PG_RETURN_CSTRING(pstrdup(NameStr(*s)));
what do the pstrdup() function?
do this function create string from name with null-terminate?

Re: Name type in postgres

From
Tom Lane
Date:
mohsen soodkhah mohammadi <mohsensoodkhah@gmail.com> writes:
> I want do understand that did can we have name without null-terminator?

No.  Possibly that was the original intention, but for many years the
system has enforced that Name contains at least one trailing null byte, ie
the maximum usable length of identifiers is NAMEDATALEN-1.  So the code
you quote is valid.
        regards, tom lane