]> granicus.if.org Git - postgresql/commitdiff
Update int28out and out8out and _in_ functions to handle trailing zeros
authorBruce Momjian <bruce@momjian.us>
Mon, 10 Jan 2000 15:41:34 +0000 (15:41 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 10 Jan 2000 15:41:34 +0000 (15:41 +0000)
properly.

src/backend/utils/adt/int.c
src/backend/utils/adt/oid.c
src/interfaces/ecpg/lib/Makefile.in
src/interfaces/ecpg/preproc/Makefile
src/interfaces/libpgeasy/Makefile.in
src/interfaces/libpgtcl/Makefile.in
src/interfaces/libpq++/Makefile.in
src/interfaces/libpq/Makefile.in
src/interfaces/odbc/Version.mk
src/tools/RELEASE_CHANGES

index e5cc55516389830386c3bf10fa22afbe24fc12c0..6c3c64c993ee1f9585d5098380c1f2e018fbff90 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.29 2000/01/10 05:23:47 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.30 2000/01/10 15:41:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,6 +29,7 @@
  * fix me when we figure out what we want to do about ANSIfication...
  */
 
+#include <ctype.h>
 #include "postgres.h"
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
@@ -90,10 +91,15 @@ int28in(char *intString)
        {
                if (sscanf(intString, "%hd", &result[slot]) != 1)
                        break;
-               do
+               while (*intString && isspace(*intString))
+                       intString++;
+               while (*intString && !isspace(*intString))
                        intString++;
-               while (*intString && *intString != ' ')
        }
+       while (*intString && isspace(*intString))
+               intString++;
+       if (*intString)
+               elog(ERROR,"int28 value has too many values");
        while (slot < INDEX_MAX_KEYS)
                result[slot++] = 0;
 
@@ -104,31 +110,36 @@ int28in(char *intString)
  *             int28out                - converts internal form to "num num ..."
  */
 char *
-int28out(int16 *shs)
+int28out(int16 *int2Array)
 {
-       int                     num;
-       int16      *sp;
+       int                     num, maxnum;
        char       *rp;
        char       *result;
 
-       if (shs == NULL)
+       if (int2Array == NULL)
        {
                result = (char *) palloc(2);
                result[0] = '-';
                result[1] = '\0';
                return result;
        }
-       rp = result = (char *) palloc(INDEX_MAX_KEYS * 7);
-                                                       /* assumes sign, 5 digits, ' ' */
-       sp = shs;
-       for (num = INDEX_MAX_KEYS; num != 0; num--)
+
+       /* find last non-zero value in vector */
+       for (maxnum = INDEX_MAX_KEYS-1; maxnum >= 0; maxnum--)
+               if (int2Array[maxnum] != 0)
+                       break;
+
+       /* assumes sign, 5 digits, ' ' */
+       rp = result = (char *) palloc(maxnum * 7 + 1);
+       for (num = 0; num <= maxnum; num++)
        {
-               itoa(*sp++, rp);
+               if (num != 0)
+                       *rp++ = ' ';
+               ltoa(int2Array[num], rp);
                while (*++rp != '\0')
                        ;
-               *rp++ = ' ';
        }
-       *--rp = '\0';
+       *rp = '\0';
        return result;
 }
 
index 4ffd02028104211b902aa6d4a58d8690f32eee61..989f4a602d9208936c195627728a8edb9df3d121 100644 (file)
@@ -7,12 +7,13 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.30 2000/01/10 05:23:47 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.31 2000/01/10 15:41:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 
+#include <ctype.h>
 #include "postgres.h"
 #include "utils/builtins.h"
 
@@ -41,10 +42,15 @@ oid8in(char *oidString)
        {
                if (sscanf(oidString, "%u", &result[slot]) != 1)
                        break;
-               do
+               while (*oidString && isspace(*oidString))
+                       oidString++;
+               while (*oidString && !isspace(*oidString))
                        oidString++;
-               while (*oidString && *oidString != ' ')
        }
+       while (*oidString && isspace(*oidString))
+               oidString++;
+       if (*oidString)
+               elog(ERROR,"oid8 value has too many values");
        while (slot < INDEX_MAX_KEYS)
                result[slot++] = 0;
 
@@ -57,8 +63,7 @@ oid8in(char *oidString)
 char *
 oid8out(Oid *oidArray)
 {
-       int                     num;
-       Oid                *sp;
+       int                     num, maxnum;
        char       *rp;
        char       *result;
 
@@ -70,17 +75,22 @@ oid8out(Oid *oidArray)
                return result;
        }
 
+       /* find last non-zero value in vector */
+       for (maxnum = INDEX_MAX_KEYS-1; maxnum >= 0; maxnum--)
+               if (oidArray[maxnum] != 0)
+                       break;
+
        /* assumes sign, 10 digits, ' ' */
-       rp = result = (char *) palloc(INDEX_MAX_KEYS * 12);
-       sp = oidArray;
-       for (num = INDEX_MAX_KEYS; num != 0; num--)
+       rp = result = (char *) palloc(maxnum * 12 + 1);
+       for (num = 0; num <= maxnum; num++)
        {
-               ltoa(*sp++, rp);
+               if (num != 0)
+                       *rp++ = ' ';
+               ltoa(oidArray[num], rp);
                while (*++rp != '\0')
                        ;
-               *rp++ = ' ';
        }
-       *--rp = '\0';
+       *rp = '\0';
        return result;
 }
 
index 2c74b31b04acaab5f28b3edf2186c0af845ae2db..49f019659d3379cb39a9c8bc5aee286710065b8e 100644 (file)
@@ -6,13 +6,13 @@
 # Copyright (c) 1994, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.54 1999/12/16 06:53:10 meskes Exp $
+#    $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.55 2000/01/10 15:41:27 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 NAME= ecpg
 SO_MAJOR_VERSION= 3
-SO_MINOR_VERSION= 0.9
+SO_MINOR_VERSION= 1.0
 
 SRCDIR= @top_srcdir@
 include $(SRCDIR)/Makefile.global
index 4c07c57655866e6fabaf0a29155210b0603c267b..7d70b0f8cd79f4c166a6fbf0960d6e3df33dccfa 100644 (file)
@@ -2,7 +2,7 @@ SRCDIR= ../../..
 include $(SRCDIR)/Makefile.global
 
 MAJOR_VERSION=2
-MINOR_VERSION=6
+MINOR_VERSION=7
 PATCHLEVEL=14
 
 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
index 0988e3eb73da9778f1eeeb6602c199f0e51f51e9..46adbd683de59f7099bbc7a5fd6087f035187fe7 100644 (file)
@@ -4,13 +4,13 @@
 #    Makefile for pgeasy library
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/interfaces/libpgeasy/Attic/Makefile.in,v 1.4 1999/12/16 01:25:16 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/interfaces/libpgeasy/Attic/Makefile.in,v 1.5 2000/01/10 15:41:28 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 NAME= pgeasy
 SO_MAJOR_VERSION= 2
-SO_MINOR_VERSION= 0
+SO_MINOR_VERSION= 1
 
 SRCDIR= @top_srcdir@
 include $(SRCDIR)/Makefile.global
index 5516f9dc17d8ab9d4aab07417336435f3618886a..3b5f15b85a1039dca114a728c8e3de500588ff94 100644 (file)
@@ -6,13 +6,13 @@
 # Copyright (c) 1994, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/Makefile.in,v 1.37 1999/12/16 01:25:17 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/Makefile.in,v 1.38 2000/01/10 15:41:29 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 NAME= pgtcl
 SO_MAJOR_VERSION= 2
-SO_MINOR_VERSION= 0
+SO_MINOR_VERSION= 1
 
 SRCDIR= @top_srcdir@
 include $(SRCDIR)/Makefile.global
index e9d3aa5d1f5b8ef37215ae48936056f98b6dad44..b6f57dc8cf365a26ce323829e4f237ee6141715e 100644 (file)
@@ -6,13 +6,13 @@
 # Copyright (c) 1994, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/Makefile.in,v 1.19 1999/12/16 01:25:20 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/Makefile.in,v 1.20 2000/01/10 15:41:31 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 NAME= pq++
 SO_MAJOR_VERSION= 3
-SO_MINOR_VERSION= 0
+SO_MINOR_VERSION= 1
 
 SRCDIR= @top_srcdir@
 include $(SRCDIR)/Makefile.global
index 1d94ab826fdbd0180bf26ada7c3c700810e33d7a..1276f550a22f42dac0aaa81db8d8f8afc5304db8 100644 (file)
@@ -6,13 +6,13 @@
 # Copyright (c) 1994, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/interfaces/libpq/Attic/Makefile.in,v 1.50 1999/12/16 01:25:19 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/interfaces/libpq/Attic/Makefile.in,v 1.51 2000/01/10 15:41:30 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
 NAME= pq
 SO_MAJOR_VERSION= 2
-SO_MINOR_VERSION= 0
+SO_MINOR_VERSION= 1
 
 SRCDIR= @top_srcdir@
 include $(SRCDIR)/Makefile.global
index c927772c0bbcd7791a6249b3752b0921bd056991..02f41ab98c34844ffcf03b3578310397299368a6 100644 (file)
@@ -1,5 +1,5 @@
-VERSION = 0.25
+VERSION = 0.26
 EXTVER  = .0
 
 SO_MAJOR_VERSION = 0
-SO_MINOR_VERSION = 25
+SO_MINOR_VERSION = 26
index ce97b005e218dfb3b8613a5ef50642e639a4c5a5..27e67c0fc7e790b36faefed4385f93090e6d2812 100644 (file)
@@ -17,3 +17,4 @@ update documentation
        psql help in psqlHelp.c
        man pages
        sgml docs
+update VERSION numbers of interfaces