diff options
Diffstat (limited to 'src/backend/utils/adt')
-rw-r--r-- | src/backend/utils/adt/varchar.c | 25 | ||||
-rw-r--r-- | src/backend/utils/adt/varlena.c | 12 |
2 files changed, 35 insertions, 2 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); } diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 1fc611286c5..8d334a2ffd9 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.29 1998/01/07 18:46:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.30 1998/02/24 15:19:45 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -157,6 +157,11 @@ textin(char *inputText) VARSIZE(result) = len; memmove(VARDATA(result), inputText, len - VARHDRSZ); + +#ifdef CYR_RECODE + convertstr(VARDATA(result),len-VARHDRSZ,0); +#endif + return (result); } @@ -180,6 +185,11 @@ textout(text *vlena) result = (char *) palloc(len + 1); memmove(result, VARDATA(vlena), len); result[len] = '\0'; + +#ifdef CYR_RECODE + convertstr(result,len,1); +#endif + return (result); } |