diff options
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r-- | src/backend/utils/adt/varchar.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index a7b6abdaeb1..f3a2df7b94d 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.27 1998/02/10 16:03:46 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.28 1998/02/24 15:19:44 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -16,6 +16,10 @@ #include "postgres.h" #include "utils/builtins.h" +#ifdef CYR_RECODE +char *convertstr(char *,int,int); +#endif + /* * CHAR() and VARCHAR() types are part of the ANSI SQL standard. CHAR() * is for blank-padded string whose length is specified in CREATE TABLE. @@ -84,6 +88,11 @@ bpcharin(char *s, int dummy, int16 atttypmod) if (*r == '\0') break; } + +#ifdef CYR_RECODE + convertstr(result + VARHDRSZ,len,0); +#endif + /* blank pad the string if necessary */ for (; i < len; i++) { @@ -110,6 +119,11 @@ bpcharout(char *s) result = (char *) palloc(len + 1); StrNCpy(result, VARDATA(s), len+1); /* these are blank-padded */ } + +#ifdef CYR_RECODE + convertstr(result,len,1); +#endif + return (result); } @@ -143,6 +157,10 @@ varcharin(char *s, int dummy, int16 atttypmod) VARSIZE(result) = len; strncpy(VARDATA(result), s, len - VARHDRSZ); +#ifdef CYR_RECODE + convertstr(result + VARHDRSZ,len,0); +#endif + return (result); } @@ -164,6 +182,11 @@ varcharout(char *s) result = (char *) palloc(len + 1); StrNCpy(result, VARDATA(s), len+1); } + +#ifdef CYR_RECODE + convertstr(result,len,1); +#endif + return (result); } |