Thread: Patches for Postgresql on Linux/Alpha!

Patches for Postgresql on Linux/Alpha!

From
Ryan Kirkpatrick
Date:
    Ok, they are finally here.... This is an initial release to just
the pgsql lists. If no one sees any problems with the below announcement
or patches, I will then forward them on to the rest of the world (save for
the RH pgsql packager, as I do not have his email address). Also, as
others see fit, maybe the patches should be put on the FTP site, and maybe
a small annoucement somewhere on the web site, so people can find the
patches, even if they missed them on the mailing lists.

-------------

    Attached are patches to fix about 99% of the problems that exist
with PostgreSQL on Alpha's running Linux. They have not been heavily
tested, but from what testing has been done, they appear to fix a number
of nagging problems in the Alpha port of PostgreSQL.
    These patches are against the 6.5.1 release tarball as available
from ftp.postgresql.org. When applied, the resulting binaries pass all
regression tests save for two:

    geometry: Minor off by one error in the last decimal place. Can be
        safely ignored provided you don't need extreme accuracy.
    rules: Minor quirk in that PostgreSQL on Alpha has a different
        default sorting order than the platform original used to
        generate the expected regression results. Can be safely ignored.

Unaligned traps are still present in a moderate amount with PostgreSQL on
Linux/Alpha. To give one a feeling of the number, 28 were generated from a
run of the regression tests. These are being worked on and should be
resolved in the future.

    Therefore, everyone with an Alpha running Linux and interested in
running an excellent SQL database, download the 6.5.1 source for
PostgreSQL, apply the patches, compile it, and pound on it. Send
reactions, evaluations, problems to either me, the Debian Alpha list,
Red Hat Alpha list, or even the PostgreSQL ports list and I will see them.

    Because the extensive changes these patches make to the main
PostgreSQL source tree, they are being and will be provided seperately for
the 6.5.x releases. It is planned to roll them into the main distribution
source tree for the 6.6 release that is down the road a couple of months.

    Lastly, these patches are also available from my web site (see
address in sig), where I will also be posting any future updates.

    PS. Uncle George (often spotted on the RedHat axp-list) is the one
to thank for the bulk of these patches. The rest is a combined mix of
fixes by both Bruce Momjian and myself.

----------------------------------------------------------------------------
|   "For to me to live is Christ, and to die is gain."                     |
|                                            --- Philippians 1:21 (KJV)    |
----------------------------------------------------------------------------
|  Ryan Kirkpatrick  |  Boulder, Colorado  | rkirkpat@nag.cs.colorado.edu  |
----------------------------------------------------------------------------
|               http://www-ugrad.cs.colorado.edu/~rkirkpat/                |
----------------------------------------------------------------------------


Attachment

Re: [HACKERS] Patches for Postgresql on Linux/Alpha!

From
Tom Lane
Date:
Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu> writes:
>     Ok, they are finally here.... This is an initial release to just
> the pgsql lists. If no one sees any problems with the below announcement
> or patches, I will then forward them on to the rest of the world (save for
> the RH pgsql packager, as I do not have his email address). Also, as
> others see fit, maybe the patches should be put on the FTP site, and maybe
> a small annoucement somewhere on the web site, so people can find the
> patches, even if they missed them on the mailing lists.

OK, after a *real* quick once-over, it certainly seems that 99% of the
bulk is changes for the fmgr interface problem (although it looks like
int32s were changed to Datum also?  Is that really needed on Alpha?)

I see a few hacks on time_t that I am worried about; those will almost
certainly cause problems for other architectures if not ifdef'd.

As I commented before, I would like to think about a different solution
to the fmgr problem for 6.6, so I'd like to hold off committing any of
these fmgr changes into the current tree until we have a consensus on
what the best approach is.  But we could commit them into the 6.5 branch
after sufficient testing.  That would be nice for PPC folks as well, as
I'll bet these changes would let them run with more than -O0 ...

            regards, tom lane

Re: [HACKERS] Patches for Postgresql on Linux/Alpha!

From
Tatsuo Ishii
Date:
> As I commented before, I would like to think about a different solution
> to the fmgr problem for 6.6, so I'd like to hold off committing any of
> these fmgr changes into the current tree until we have a consensus on
> what the best approach is.  But we could commit them into the 6.5 branch
> after sufficient testing.  That would be nice for PPC folks as well, as
> I'll bet these changes would let them run with more than -O0 ...

Yes. I would love to see your solution!

BTW, What about HP-UX? Are they having similar problems with -O2?
---
Tatsuo Ishii

Re: [HACKERS] Patches for Postgresql on Linux/Alpha!

From
Tom Lane
Date:
Tatsuo Ishii <t-ishii@sra.co.jp> writes:
>> As I commented before, I would like to think about a different solution
>> to the fmgr problem for 6.6,

> Yes. I would love to see your solution!

I posted some preliminary ideas to the hackers list on 6/14/99 (see
message titled "Cleaning up function interface").  I think the fmgr
interface is in need of thorough redesign.  Aside from the portability
bugs that we are currently getting our noses rubbed in, it cannot handle
NULL function arguments or results properly.

Something I didn't talk about in my earlier message, but am getting
more interested in doing: I would like to see if we can't make float4
a pass-by-value type, and float8 and int8 as well when on a platform
where Datum is 8 bytes wide.  64-bit platforms are going to become
the norm over the next few years, and Postgres shouldn't be forever
tied to palloc() overhead for passing and returning datatypes that
don't need it on newer platforms.  I think that with suitably chosen
macros for accessing and returning function arguments/results, it
would be possible for the bulk of the source code not to be aware of
whether a particular C datatype is pass by value or pass by reference
in the fmgr interface.

In short, I think there are enough reasons for redoing the fmgr
interface from scratch that we ought to just bite the bullet and do it,
tedious though it will be.

The only real argument against it is that it'd break existing user code
in loadable libraries; people with user-defined functions written in C
would have to revise 'em.  That's certainly a bad negative, but I think
the positives outweigh it.  That existing user code will need to
change anyway to be ported to one of the platforms where parameter-
passing problems exist :-(

> BTW, What about HP-UX? Are they having similar problems with -O2?

On the newer 64-bit machines, I wouldn't be at all surprised.  But
Mike Schout just reported regression tests passing on his 64-bit box,
so maybe we're still OK there.  For now anyway...

            regards, tom lane

Re: [HACKERS] Patches for Postgresql on Linux/Alpha!

From
Ryan Kirkpatrick
Date:
On Fri, 30 Jul 1999, Tom Lane wrote:

> OK, after a *real* quick once-over, it certainly seems that 99% of the
> bulk is changes for the fmgr interface problem (although it looks like
> int32s were changed to Datum also?  Is that really needed on Alpha?)
>
> I see a few hacks on time_t that I am worried about; those will almost
> certainly cause problems for other architectures if not ifdef'd.

    I have hardly looked at the patch in detail at all, so I can't
respond to your specific observation at this time. I just wanted something
that made at least alpha work out the door first, and then go back and
review the patch in detail to add #ifdef (__alpha__) as needed.

> As I commented before, I would like to think about a different solution
> to the fmgr problem for 6.6, so I'd like to hold off committing any of
> these fmgr changes into the current tree until we have a consensus on
> what the best approach is.  But we could commit them into the 6.5 branch
> after sufficient testing.  That would be nice for PPC folks as well, as
> I'll bet these changes would let them run with more than -O0 ...

    I never asked for these patches to be put in the pgsql source tree
in anyway. This is just so people who want to run 6.5.1 on Linux/Alpha
will be able to, with a relatively clean and well working binary. The
patches for the pgsql source tree will be trickling in over the next few
months as I evaluate the alpha patches in detail.

----------------------------------------------------------------------------
|   "For to me to live is Christ, and to die is gain."                     |
|                                            --- Philippians 1:21 (KJV)    |
----------------------------------------------------------------------------
|  Ryan Kirkpatrick  |  Boulder, Colorado  | rkirkpat@nag.cs.colorado.edu  |
----------------------------------------------------------------------------
|               http://www-ugrad.cs.colorado.edu/~rkirkpat/                |
----------------------------------------------------------------------------


Re: Patches for Postgresql on Linux/Alpha!

From
Thomas Lockhart
Date:
> ... I will then forward them on to the rest of the world (save for
> the RH pgsql packager, as I do not have his email address).

That would be Lamar and myself, until we have validated it for the RPM
build. We'll take it from there...

                      - Thomas


--
Thomas Lockhart                lockhart@alumni.caltech.edu
South Pasadena, California