*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.31 1998/05/09 22:42:07 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.32 1998/05/29 13:33:24 thomas Exp $
*
*-------------------------------------------------------------------------
*/
bpchar_char(char *s)
{
return ((int32) *VARDATA(s));
-} /* char_bpchar() */
-
+} /* bpchar_char() */
/* char_bpchar()
* Convert char to bpchar(1).
} /* char_bpchar() */
+/* bpchar_name()
+ * Converts a bpchar() type to a NameData type.
+ */
+NameData *
+bpchar_name(char *s)
+{
+ NameData *result;
+ int len;
+
+ if (s == NULL)
+ return (NULL);
+
+ len = VARSIZE(s) - VARHDRSZ;
+ if (len > NAMEDATALEN) len = NAMEDATALEN;
+
+ while (len > 0) {
+ if (*(VARDATA(s)+len-1) != ' ') break;
+ len--;
+ }
+
+#ifdef STRINGDEBUG
+printf("bpchar- convert string length %d (%d) ->%d\n",
+ VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+#endif
+
+ result = (NameData *) palloc(NAMEDATALEN);
+ StrNCpy(result->data, VARDATA(s), NAMEDATALEN);
+
+ /* now null pad to full length... */
+ while (len < NAMEDATALEN) {
+ *(result->data + len) = '\0';
+ len++;
+ }
+
+ return (result);
+} /* bpchar_name() */
+
+/* name_bpchar()
+ * Converts a NameData type to a bpchar type.
+ */
+char *
+name_bpchar(NameData *s)
+{
+ char *result;
+ int len;
+
+ if (s == NULL)
+ return (NULL);
+
+ len = strlen(s->data);
+
+#ifdef STRINGDEBUG
+printf("bpchar- convert string length %d (%d) ->%d\n",
+ VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+#endif
+
+ result = (char *) palloc(VARHDRSZ + len);
+ strncpy(VARDATA(result), s->data, len);
+ VARSIZE(result) = len + VARHDRSZ;
+
+ return (result);
+} /* name_bpchar() */
+
+
/*****************************************************************************
* varchar - varchar() *
*****************************************************************************/
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.34 1998/05/09 22:42:07 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.35 1998/05/29 13:33:58 thomas Exp $
*
*-------------------------------------------------------------------------
*/
return (res);
}
+
+
+/* text_name()
+ * Converts a text() type to a NameData type.
+ */
+NameData *
+text_name(text *s)
+{
+ NameData *result;
+ int len;
+
+ if (s == NULL)
+ return (NULL);
+
+ len = VARSIZE(s) - VARHDRSZ;
+ if (len > NAMEDATALEN) len = NAMEDATALEN;
+
+#ifdef STRINGDEBUG
+printf("text- convert string length %d (%d) ->%d\n",
+ VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+#endif
+
+ result = palloc(NAMEDATALEN);
+ StrNCpy(result->data, VARDATA(s), NAMEDATALEN);
+
+ /* now null pad to full length... */
+ while (len < NAMEDATALEN) {
+ *(result->data + len) = '\0';
+ len++;
+ }
+
+ return (result);
+} /* text_name() */
+
+/* name_text()
+ * Converts a NameData type to a text type.
+ */
+text *
+name_text(NameData *s)
+{
+ text *result;
+ int len;
+
+ if (s == NULL)
+ return (NULL);
+
+ len = strlen(s->data);
+
+#ifdef STRINGDEBUG
+printf("text- convert string length %d (%d) ->%d\n",
+ VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+#endif
+
+ result = palloc(VARHDRSZ + len);
+ strncpy(VARDATA(result), s->data, len);
+ VARSIZE(result) = len + VARHDRSZ;
+
+ return (result);
+} /* name_text() */