Change internal string representation of BitString node to include a
authorPeter Eisentraut
Tue, 31 Oct 2000 13:59:53 +0000 (13:59 +0000)
committerPeter Eisentraut
Tue, 31 Oct 2000 13:59:53 +0000 (13:59 +0000)
leading 'b', as it appears to be more convenient this way for the input
and node functions.

src/backend/nodes/outfuncs.c
src/backend/nodes/read.c
src/backend/parser/scan.l

index 2e8ecaca65253c910cd0869bee2c6717f6a263ff..58ab68968898127845d892a15cdf1699a9edf965 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.130 2000/10/31 10:22:10 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.131 2000/10/31 13:59:52 petere Exp $
  *
  * NOTES
  *   Every (plan) node in POSTGRES has an associated "out" routine which
@@ -1353,7 +1353,8 @@ _outValue(StringInfo str, Value *value)
            appendStringInfo(str, "\" ");
            break;
        case T_BitString:
-           appendStringInfo(str, " B%s ", value->val.str);
+           /* internal representation already has leading 'b' */
+           appendStringInfo(str, " %s ", value->val.str);
            break;
        default:
            elog(NOTICE, "_outValue: don't know how to print type %d ",
index a6401a238faed7133f1565e8ee2f825c29e71aa2..a9eb837851d17331dd4a13b41c996cc2862a6d4f 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.24 2000/10/31 10:22:10 petere Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.25 2000/10/31 13:59:52 petere Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -236,7 +236,7 @@ nodeTokenType(char *token, int length)
        retval = AT_SYMBOL;
    else if (*token == '\"' && length > 1 && token[length - 1] == '\"')
        retval = T_String;
-   else if (*token == 'B')
+   else if (*token == 'b')
        retval = T_BitString;
    else
        retval = ATOM_TOKEN;
@@ -351,7 +351,7 @@ nodeRead(bool read_car_only)
        case T_BitString:
        {
            char * val = palloc(tok_len);
-           /* skip leading 'B'*/
+           /* skip leading 'b'*/
            strncpy(val, token + 1, tok_len - 1);
            val[tok_len - 1] = '\0';
            this_value = (Node *) makeBitString(val);
index 083bd70b0264e77b869e52cd01162e489c687a00..18eb3c2ca0aef82a7a5289b69e540765b1204628 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.80 2000/10/31 10:22:11 petere Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.81 2000/10/31 13:59:53 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -282,10 +282,11 @@ other         .
 {xbitstart}        {
                    BEGIN(xbit);
                    startlit();
+                   addlit("b", 1);
                }
 {xbitstop}   {
                    BEGIN(INITIAL);
-                   if (literalbuf[strspn(literalbuf, "01")] != '\0')
+                   if (literalbuf[strspn(literalbuf + 1, "01") + 1] != '\0')
                        elog(ERROR, "invalid bit string input: '%s'",
                             literalbuf);
                    yylval.str = literalbuf;