Обсуждение: Open 6.4 items

Поиск
Список
Период
Сортировка

Open 6.4 items

От
Bruce Momjian
Дата:
Additions
------------------
test new cidr/IP address type(Tom Helbekkmo)
complete rewrite system changes(Jan)
notify fixes(Tom)

Serious Items
------------
change pg args for platforms that don't support argv changes
    (setproctitle()?, sendmail hack?)
have psql dump out rules text with new function
man pages/sgml synchronization
generate html/postscript documentation
generate postmaster pid file and remove flock/fcntl lock code
CREATE TABLE test (x text, s serial) fails if no database creation permission
regression test all platforms
make sure all changes are documented properly

Minor items
-----------
cnf-ify still can exhaust memory, make SET KSQO more generic
permissions on indexes:  what do they do?  should it be prevented?
multi-verion concurrency control - work-in-progress for 6.5
improve reporting of syntax errors by showing location of error in query
use index with constants on functions
allow chaining of pages to allow >8k tuples
allow multiple generic operators in expressions without the use of parentheses
document/trigger/rule so changes to pg_shadow create pg_pwd
large objects orphanage
improve group handling
no min/max for oid type
improve PRIMARY KEY handling

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026


Re: [HACKERS] Open 6.4 items

От
Tatsuo Ishii
Дата:
I'm working on the multi-byte support for win32 env. with help from
Hiroshi Inoue who appears in the discussion on some win32 issues.
In one or two days, I will post new patches that should make
the multi-byte support usable on win32.
Note that only Japanese(Shift-JIS) will be supported in the first
version.

I hope this is not too late for the 6.4 release.
--
Tatsuo Ishii
t-ishii@sra.co.jp

Re: [HACKERS] Open 6.4 items

От
"Marc G. Fournier"
Дата:
On Sat, 3 Oct 1998, Bruce Momjian wrote:

> Additions

    Rename as 'release stopper'...

> ------------------
> test new cidr/IP address type(Tom Helbekkmo)
> complete rewrite system changes(Jan)
> notify fixes(Tom)

    These have obviously become show stoppers, since they are now half
implemented, and have to be completed before release.  Do we have ETAs on
this stuff?   As things stand right now, we are looking at November 1st
for a release date on v6.4...a month late, but not much worse then other
releases :)  Unfortunately, because of the lateness for some of this, we
haven't done a solid freeze yet, which means that the testing cycle is
going to be a little bit shorter then we like :(

    At this time, I'd like to say that the source tree is now
*absolutely* frozen...no more "just one more thing"...the above three
issues will still need work, as they haven't been fully tested, nor do I
believe them to be fully implemented...but, as a result, they can still be
considered to be "bugs", and, as such, code changes can still be
made/submitted to fix those bugs...

> Serious Items
> ------------
> change pg args for platforms that don't support argv changes
>     (setproctitle()?, sendmail hack?)
> have psql dump out rules text with new function
> man pages/sgml synchronization
> generate html/postscript documentation
> generate postmaster pid file and remove flock/fcntl lock code

    None of these, IMHO, are release stoppers...documentation related
issues don't truly apply to the beta freeze anyway, but unless there is a
real reason that the above coding issues interfere with the ability for
the backend to run on a particular platform, then let's leave them as they
are.  I'm going to look at the setproctitle stuff this week, but will not
be committing any changes until *after* the release, at which time I will
create a seperate patch...

    As for the flock/fcntl lock code...my understanding of it is that
it is only 'startup' related, and doesn't really affect anything...leave
it there for now, create a patch shortly after release that can be used to
remove it if it is causing problems for some...

> CREATE TABLE test (x text, s serial) fails if no database creation permission

    release stopper...please move it up with the other three...

> regression test all platforms

    same as the CREATE TABLE...

> make sure all changes are documented properly

    not included as part of beta freeze, changes here can be made at
any time up till the release date, since it does not affect the running of
the backend...

> Minor items
> -----------
> cnf-ify still can exhaust memory, make SET KSQO more generic
> permissions on indexes:  what do they do?  should it be prevented?
> multi-verion concurrency control - work-in-progress for 6.5
> improve reporting of syntax errors by showing location of error in query
> use index with constants on functions
> allow chaining of pages to allow >8k tuples
> allow multiple generic operators in expressions without the use of parentheses
> document/trigger/rule so changes to pg_shadow create pg_pwd
> large objects orphanage
> improve group handling
> no min/max for oid type
> improve PRIMARY KEY handling

    actually, I'd pretty much say that none of the 'minor' ones are
release stoppers...and, as such, should be moved over to "todo for
v6.5"...

    For v6.4, can we just concentrate on, and remove from the list
everything else, the following:

> test new cidr/IP address type(Tom Helbekkmo)
> complete rewrite system changes(Jan)
> notify fixes(Tom)
> CREATE TABLE test (x text, s serial) fails if no database creation permission
> regression test all platforms

    Everything else appears to be a "ya, be nice if we could, but it can
wait" sort of issue...

    If we can get those 5 cleaned up/out, then I think we have a good
release candidate to snapshot and test...

Marc G. Fournier                               scrappy@hub.org
Systems Administrator @ hub.org
scrappy@{postgresql|isc}.org                       ICQ#7615664


Re: [HACKERS] Open 6.4 items

От
Tom Lane
Дата:
"Marc G. Fournier" <scrappy@hub.org> writes:
>     Rename as 'release stopper'...
>> notify fixes(Tom)
>> [other items snipped]
>     These have obviously become show stoppers, since they are now half
> implemented, and have to be completed before release.  Do we have ETAs on
> this stuff?

My notify rewrite is not in the tree at all right now.  I thought we had
agreed (off-list) not to put that change into 6.4, but to postpone it
to the next release.

> As things stand right now, we are looking at November 1st
> for a release date on v6.4...a month late, but not much worse then other
> releases :)

On the other hand, if release is going to be 11/1 not 10/1, my personal
vote is to put the notify changes in.  If there are any bugs, that ought
to be time enough to shake them out.

I can commit those changes tonight if I have the go-ahead.  Or I can
wait till post-6.4.  Your call.

>> Serious Items
>> ------------
>> [snippage]
>> generate postmaster pid file and remove flock/fcntl lock code

>     None of these, IMHO, are release stoppers...

flock is a release stopper as far as I'm concerned, because the backend
*does not compile* on my platform without diking out that code.  I agree
that it is too late to try to rewrite the feature correctly for 6.4.
What say we put in an autoconf test for whether flock exists, and make
the new code conditional on that?  People without flock would see the
same old behavior, which is good enough for now.  I will volunteer to
make the necessary changes if that strategy is agreed on.

            regards, tom lane

Re: [HACKERS] Open 6.4 items

От
"Marc G. Fournier"
Дата:
On Mon, 5 Oct 1998, Tom Lane wrote:

> "Marc G. Fournier" <scrappy@hub.org> writes:
> >     Rename as 'release stopper'...
> >> notify fixes(Tom)
> >> [other items snipped]
> >     These have obviously become show stoppers, since they are now half
> > implemented, and have to be completed before release.  Do we have ETAs on
> > this stuff?
>
> My notify rewrite is not in the tree at all right now.  I thought we had
> agreed (off-list) not to put that change into 6.4, but to postpone it
> to the next release.

    *slap forehead*

> > As things stand right now, we are looking at November 1st
> > for a release date on v6.4...a month late, but not much worse then other
> > releases :)
>
> On the other hand, if release is going to be 11/1 not 10/1, my personal
> vote is to put the notify changes in.  If there are any bugs, that ought
> to be time enough to shake them out.
>
> I can commit those changes tonight if I have the go-ahead.  Or I can
> wait till post-6.4.  Your call.

    Go for it...that will at least get them off the list...

> flock is a release stopper as far as I'm concerned, because the backend
> *does not compile* on my platform without diking out that code.  I agree
> that it is too late to try to rewrite the feature correctly for 6.4.
> What say we put in an autoconf test for whether flock exists, and make
> the new code conditional on that?  People without flock would see the
> same old behavior, which is good enough for now.  I will volunteer to
> make the necessary changes if that strategy is agreed on.

    Make it so...



Re: [HACKERS] Open 6.4 items

От
Tatsuo Ishii
Дата:
>I'm working on the multi-byte support for win32 env. with help from
>Hiroshi Inoue who appears in the discussion on some win32 issues.
>In one or two days, I will post new patches that should make
>the multi-byte support usable on win32.
>Note that only Japanese(Shift-JIS) will be supported in the first
>version.

Here are the patches against the current source tree. I have run the
regression test on a FreeBSD box with both non-MULTIBYTE and
MULTIBYTE-enabled, and confirmed that the results are same.

However I do not tested on PCs(I don't have access to win). Please let
me know if the patches break anything on PCs.

Also please note that the patch for varchar.c is a fix for a nasty bug
of char(n) types that I introduced and I believe at least this should
be applied.

Affected files are:
src/win32.mak
src/bin/psql/win32.mak
src/interfaces/libpq/win32.mak
src/interfaces/libpq/libpqdll.def
src/interfaces/libpq/fe-print.c
src/backend/utils/mb/common.c
src/backend/utils/adt/varchar.c


Index: src/win32.mak
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/win32.mak,v
retrieving revision 1.2
diff -c -r1.2 win32.mak
*** win32.mak    1998/08/27 13:25:11    1.2
--- win32.mak    1998/10/05 06:33:48
***************
*** 10,19 ****
  NULL=nul
  !ENDIF

  ALL:
     cd interfaces\libpq
!    nmake /f win32.mak
     cd ..\..\bin\psql
!    nmake /f win32.mak
     cd ..\..
     echo All Win32 parts have been built!
--- 10,23 ----
  NULL=nul
  !ENDIF

+ !IFDEF    MULTIBYTE
+ MAKEMACRO = "MULTIBYTE=$(MULTIBYTE)"
+ !ENDIF
+
  ALL:
     cd interfaces\libpq
!    nmake /f win32.mak $(MAKEMACRO)
     cd ..\..\bin\psql
!    nmake /f win32.mak $(MAKEMACRO)
     cd ..\..
     echo All Win32 parts have been built!
Index: src/bin/psql/win32.mak
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/bin/psql/win32.mak,v
retrieving revision 1.2
diff -c -r1.2 win32.mak
*** win32.mak    1998/09/03 02:16:27    1.2
--- win32.mak    1998/10/05 06:33:48
***************
*** 29,34 ****
--- 29,42 ----
  CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D\
   "_MBCS" /Fp"$(INTDIR)\psql.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \
   /I ..\..\include /I ..\..\interfaces\libpq
+
+ !IFDEF    MULTIBYTE
+ !IFNDEF MBFLAGS
+ MBFLAGS="-DMULTIBYTE=$(MULTIBYTE)"
+ !ENDIF
+ CPP_PROJ=$(MBFLAGS) $(CPP_PROJ)
+ !ENDIF
+
  CPP_OBJS=.\Release/
  CPP_SBRS=.

Index: src/interfaces/libpq/win32.mak
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/interfaces/libpq/win32.mak,v
retrieving revision 1.3
diff -c -r1.3 win32.mak
*** win32.mak    1998/09/18 16:46:07    1.3
--- win32.mak    1998/10/05 06:33:48
***************
*** 33,39 ****
      -@erase "$(OUTDIR)\libpq.lib"
      -@erase "$(OUTDIR)\libpq.dll"
      -@erase "$(OUTDIR)\libpq.res"
!     -@erase "$(OUTDIR)\vc*.*"
      -@erase "$(OUTDIR)\libpq.pch"
      -@erase "$(OUTDIR)\libpqdll.exp"
      -@erase "$(OUTDIR)\libpqdll.lib"
--- 33,39 ----
      -@erase "$(OUTDIR)\libpq.lib"
      -@erase "$(OUTDIR)\libpq.dll"
      -@erase "$(OUTDIR)\libpq.res"
!     -@erase "vc50.pch"
      -@erase "$(OUTDIR)\libpq.pch"
      -@erase "$(OUTDIR)\libpqdll.exp"
      -@erase "$(OUTDIR)\libpqdll.lib"
***************
*** 44,49 ****
--- 44,57 ----
  CPP_PROJ=/nologo /ML /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D\
   "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
   /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+ !IFDEF MULTIBYTE
+ !IFNDEF    MBFLAGS
+ MBFLAGS="-DMULTIBYTE=$(MULTIBYTE)"
+ !ENDIF
+ CPP_PROJ = $(CPP_PROJ) $(MBFLAGS)
+ !ENDIF
+
  CPP_OBJS=.\Release/
  CPP_SBRS=.

***************
*** 57,62 ****
--- 65,74 ----
      "$(INTDIR)\fe-lobj.obj" \
      "$(INTDIR)\fe-misc.obj" \
      "$(INTDIR)\fe-print.obj"
+
+ !IFDEF MULTIBYTE
+ LIB32_OBJS = $(LIB32_OBJS) $(INTDIR)\common.obj $(INTDIR)\wchar.obj $(INTDIR)\conv.obj
+ !ENDIF

  RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"

Index: src/interfaces/libpq/libpqdll.def
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/interfaces/libpq/libpqdll.def,v
retrieving revision 1.4
diff -c -r1.4 libpqdll.def
*** libpqdll.def    1998/10/01 01:40:26    1.4
--- libpqdll.def    1998/10/05 06:33:48
***************
*** 63,66 ****
      lo_unlink        @ 60
      lo_import        @ 61
      lo_export        @ 62
!     PQresultErrorMessage    @ 63
--- 63,67 ----
      lo_unlink        @ 60
      lo_import        @ 61
      lo_export        @ 62
!     pgresStatus        @ 63
!     PQmblen            @ 64
Index: src/interfaces/libpq/fe-print.c
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v
retrieving revision 1.13
diff -c -r1.13 fe-print.c
*** fe-print.c    1998/10/04 20:46:39    1.13
--- fe-print.c    1998/10/05 06:33:49
***************
*** 513,519 ****
      return (pg_encoding_mblen(encoding, s));
  }

! #endif

  static void
  do_field(PQprintOpt *po, PGresult *res,
--- 513,529 ----
      return (pg_encoding_mblen(encoding, s));
  }

! #else
!
! #ifdef WIN32
! int
! PQmblen(unsigned char *s)
! {
! }
! #endif    /* WIN32 */
!
!
! #endif    /* MULTIBYTE */

  static void
  do_field(PQprintOpt *po, PGresult *res,
Index: src/backend/utils/mb/common.c
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/backend/utils/mb/common.c,v
retrieving revision 1.2
diff -c -r1.2 common.c
*** common.c    1998/09/01 04:33:19    1.2
--- common.c    1998/10/05 06:33:49
***************
*** 4,10 ****
   * Tatsuo Ishii
   * $Id: common.c,v 1.2 1998/09/01 04:33:19 momjian Exp $ */

! #include <stdio.h>
  #include <string.h>

  #include "mb/pg_wchar.h"
--- 4,19 ----
   * Tatsuo Ishii
   * $Id: common.c,v 1.2 1998/09/01 04:33:19 momjian Exp $ */

! #include <stdlib.h>
!
! #ifdef WIN32
! #include "win32.h"
! #else
! #if !defined(NO_UNISTD_H)
! #include <unistd.h>
! #endif
! #endif
!
  #include <string.h>

  #include "mb/pg_wchar.h"
Index: src/backend/utils/adt/varchar.c
===================================================================
RCS file: /usr/local/cvsroot/pgsql/src/backend/utils/adt/varchar.c,v
retrieving revision 1.41
diff -c -r1.41 varchar.c
*** varchar.c    1998/09/25 15:51:02    1.41
--- varchar.c    1998/10/05 06:33:50
***************
*** 163,169 ****
  #ifdef MULTIBYTE
      /* truncate multi-byte string in a way not to break
         multi-byte boundary */
!     slen = pg_mbcliplen(VARDATA(s), rlen, rlen);
  #else
      slen = VARSIZE(s) - VARHDRSZ;
  #endif
--- 163,173 ----
  #ifdef MULTIBYTE
      /* truncate multi-byte string in a way not to break
         multi-byte boundary */
!     if (VARSIZE(s) > len) {
!         slen = pg_mbcliplen(VARDATA(s), VARSIZE(s)-VARHDRSZ, rlen);
!         } else {
!         slen = VARSIZE(s) - VARHDRSZ;
!         }
  #else
      slen = VARSIZE(s) - VARHDRSZ;
  #endif

Re: [HACKERS] Open 6.4 items

От
Tom Lane
Дата:
"Marc G. Fournier" <scrappy@hub.org> writes:
>> I can commit those changes tonight if I have the go-ahead.  Or I can
>> wait till post-6.4.  Your call.

>     Go for it...that will at least get them off the list...

OK, the NOTIFY rewrite is checked in.  We'll see what breaks, if
anything.

>> flock is a release stopper as far as I'm concerned, because the backend
>> *does not compile* on my platform without diking out that code.

Actually, it looks like Vadim replaced the flock() call with fcntl() a
few weeks ago, and I'd not noticed because I had a locally modified copy
of pqcomm.c.  I don't know if fcntl(F_SETLK) is any more portable than
flock() --- it compiles on my platform, where flock() didn't, but that
proves little.  So I went ahead and put in an autoconf test, only
checking for fcntl(F_SETLK) rather than flock().  I still think the
process-pid-in-a-textfile approach to locking is safer, but we can
leave that for the next release.

That's two items off the must-fix list and onto the are-there-bugs?
list...

            regards, tom lane

Re: [HACKERS] Open 6.4 items

От
Bruce Momjian
Дата:
Applied.

> >I'm working on the multi-byte support for win32 env. with help from
> >Hiroshi Inoue who appears in the discussion on some win32 issues.
> >In one or two days, I will post new patches that should make
> >the multi-byte support usable on win32.
> >Note that only Japanese(Shift-JIS) will be supported in the first
> >version.
>
> Here are the patches against the current source tree. I have run the
> regression test on a FreeBSD box with both non-MULTIBYTE and
> MULTIBYTE-enabled, and confirmed that the results are same.
>
> However I do not tested on PCs(I don't have access to win). Please let
> me know if the patches break anything on PCs.
>
> Also please note that the patch for varchar.c is a fix for a nasty bug
> of char(n) types that I introduced and I believe at least this should
> be applied.
>
> Affected files are:
> src/win32.mak
> src/bin/psql/win32.mak
> src/interfaces/libpq/win32.mak
> src/interfaces/libpq/libpqdll.def
> src/interfaces/libpq/fe-print.c
> src/backend/utils/mb/common.c
> src/backend/utils/adt/varchar.c


--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026