Re: 20th anniversary of PostgreSQL ? - Mailing list pgsql-advocacy

From Bruce Momjian
Subject Re: 20th anniversary of PostgreSQL ?
Date
Msg-id 20150408193942.GC22803@momjian.us
Whole thread Raw
In response to Re: 20th anniversary of PostgreSQL ?  (Magnus Hagander <magnus@hagander.net>)
List pgsql-advocacy
On Wed, Apr  8, 2015 at 09:31:15PM +0200, Magnus Hagander wrote:
> On Wed, Apr 8, 2015 at 9:28 PM, Bruce Momjian <bruce@momjian.us> wrote:
>
>     On Wed, Apr  8, 2015 at 09:45:05AM +0200, Magnus Hagander wrote:
>     > On Wed, Apr 8, 2015 at 9:38 AM, julyanto SUTANDANG <julyanto@equnix.co.id
>     >
>     > wrote:
>     >
>     >     I thought that were no Postgres 1.0 since Postgres is continuing
>     Ingres,
>     >     then Postgres95.
>     >     Postgres started from version 6.0 to give credit of the past
>     development 
>     >
>     >
>     > PostgreSQL started from version 6.0.
>     > Postgres95 started from version 1.0 (though we can pretend it was 5.0)
>     > POSTGRES had at least versions 4.x. 4.2 was the last release.
>
>     Actually, I think Postgres95 had "5.X" in its $PGDATA/PG_VERSION, which
>     forced us to start PostgreSQL at 6.0, in case any applications were
>     looking there for version information.
>
>
> Oh really? That's even more confusing than I thought, and I thought it was
> pretty bad :)  

Yes.  When they numbered Postgres95 as 1.0, they changed PG_VERSION from
4.X to 5.X, not to 1.X, as you would have assumed.  Here is proof from
Postgres95 1.01's miscadmin.h:

    /*****************************************************************************
     *  magic.h     - definitions of the indexes of the magic numbers    *
     *****************************************************************************/

    #define PG_RELEASE  5
    #define PG_VERSION  1
    #define PG_VERFILE  "PG_VERSION"

and this function to create the PG_VERSION file:

    /*
     *  SetPgVersion    - writes the version to a database directory
     */
    void
    SetPgVersion(char *path)
    {
        int fd;
        char    version[4], buf[MAXPGPATH+1];

        PathSetVersionFilePath(path, buf);

        if ((fd = open(buf, O_WRONLY|O_CREAT|O_EXCL, 0666)) < 0)
        elog(FATAL, "SetPgVersion: %s: %m", buf);

        version[0] = '0' + PG_RELEASE;
        version[1] = '.';
        version[2] = '0' + PG_VERSION;
        version[3] = '\n';
        if (write(fd, version, 4) != 4)
        elog(WARN, "SetPgVersion: %s: %m", buf);

        close(fd);
    }

so the Postgres95 1.01 PG_VERSION file contained 5.1.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +


pgsql-advocacy by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: 20th anniversary of PostgreSQL ?
Next
From: gabrielle
Date:
Subject: Re: OSCON 2015 Booth/BoF