]> granicus.if.org Git - postgresql/commitdiff
Change internal string representation of BitString node to include a
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 31 Oct 2000 13:59:53 +0000 (13:59 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
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);
                                }
 <xbit>{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;