From cc2b5e5815aa596dbbdd288d0d178019f2d521aa Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 2 Jun 2000 15:57:44 +0000 Subject: [PATCH] Remove NT-specific file open defines by defining our own open macros for "rb" and "wb". --- HISTORY | 3 +- doc/TODO | 5 +- doc/TODO.detail/vacuum | 481 ++++++++++++++++++++++++++-- doc/src/FAQ.html | 2 +- doc/src/sgml/release.sgml | 4 +- src/backend/access/transam/xlog.c | 32 +- src/backend/commands/copy.c | 15 +- src/backend/libpq/be-fsstubs.c | 14 +- src/backend/libpq/crypt.c | 8 +- src/backend/libpq/hba.c | 20 +- src/backend/libpq/password.c | 8 +- src/backend/libpq/pqcomm.c | 14 +- src/backend/postmaster/postmaster.c | 76 ++--- src/backend/storage/file/fd.c | 10 +- src/backend/storage/smgr/md.c | 42 +-- src/backend/utils/adt/arrayfuncs.c | 8 +- src/backend/utils/cache/relcache.c | 14 +- src/backend/utils/init/miscinit.c | 8 +- src/backend/utils/misc/database.c | 8 +- src/bin/pg_dump/pg_dump.c | 8 +- src/bin/pg_passwd/pg_passwd.c | 18 +- src/include/c.h | 13 +- src/include/postgres.h | 3 +- src/interfaces/ecpg/preproc/ecpg.c | 18 +- src/interfaces/libpq/fe-lobj.c | 16 +- src/interfaces/odbc/gpps.c | 32 +- src/interfaces/odbc/misc.c | 48 ++- src/utils/version.c | 14 +- 28 files changed, 592 insertions(+), 350 deletions(-) diff --git a/HISTORY b/HISTORY index 0fdf5a43f1..784b09adb0 100644 --- a/HISTORY +++ b/HISTORY @@ -34,7 +34,8 @@ Copy pg_ident.conf.sample into /lib directory in install (Bruce) Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya) Fix too long syslog message (Tatsuo) Fix problem with quoted indexes that are too long (Tom) - +JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu) +ecpg changes (Michael) ------------------------------------------------------------------------ Release 7.0 diff --git a/doc/TODO b/doc/TODO index 84c3128529..d735100de0 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,6 +1,6 @@ TODO list for PostgreSQL ======================== -Last updated: Thu May 25 12:08:57 EDT 2000 +Last updated: Fri Jun 2 11:32:09 EDT 2000 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -234,6 +234,7 @@ MISC * Remove ANALYZE from VACUUM so it can be run separately without locks * Gather more accurate statistics using indexes * Improve statistics storage in pg_class [performance] +* Improve VACUUM speed with indexes [vacuum] SOURCE CODE ----------- @@ -241,7 +242,7 @@ SOURCE CODE * Fix C optimizer problem where fmgr_ptr calls return different types [alpha] * Does Mariposa source contain any other bug fixes? * Remove SET KSQO option now that OR processing is improved(Tom) -* Use macros to define NT open() file parameters, remove NT-specific defines +* -Use macros to define NT open() file parameters, remove NT-specific defines * Change CURRENT to OLD internally for rules * rename pl/tcl to pl/pltcl diff --git a/doc/TODO.detail/vacuum b/doc/TODO.detail/vacuum index dc7401be89..6c3fc619d5 100644 --- a/doc/TODO.detail/vacuum +++ b/doc/TODO.detail/vacuum @@ -1,19 +1,28 @@ From Inoue@tpf.co.jp Tue Jan 18 19:08:30 2000 +Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id UAA10148 + for ; Tue, 18 Jan 2000 20:08:27 -0500 (EST) +Received: from cadzone ([126.0.1.40] (may be forged)) + by sd.tpf.co.jp (2.5 Build 2640 (Berkeley 8.8.6)/8.8.4) with SMTP + id KAA02790; Wed, 19 Jan 2000 10:08:02 +0900 From: "Hiroshi Inoue" To: "Bruce Momjian" Cc: "pgsql-hackers" Subject: RE: [HACKERS] Index recreation in vacuum Date: Wed, 19 Jan 2000 10:13:40 +0900 Message-ID: <000201bf621a$6b9baf20$2801007e@tpf.co.jp> +MIME-Version: 1.0 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Importance: Normal In-Reply-To: <200001181821.NAA02988@candle.pha.pa.us> -Content-Length: 1479 +Status: ORr -[ Charset ISO-8859-1 unsupported, converting... ] > -----Original Message----- > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us] > @@ -68,12 +77,35 @@ Hiroshi Inoue Inoue@tpf.co.jp From owner-pgsql-hackers@hub.org Tue Jan 18 19:15:27 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id UAA10454 + for ; Tue, 18 Jan 2000 20:15:26 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id UAA42280; + Tue, 18 Jan 2000 20:10:35 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Tue, 18 Jan 2000 20:10:30 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id UAA42081 + for pgsql-hackers-outgoing; Tue, 18 Jan 2000 20:09:31 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34]) + by hub.org (8.9.3/8.9.3) with ESMTP id UAA41943 + for ; Tue, 18 Jan 2000 20:08:39 -0500 (EST) + (envelope-from Inoue@tpf.co.jp) +Received: from cadzone ([126.0.1.40] (may be forged)) + by sd.tpf.co.jp (2.5 Build 2640 (Berkeley 8.8.6)/8.8.4) with SMTP + id KAA02790; Wed, 19 Jan 2000 10:08:02 +0900 From: "Hiroshi Inoue" To: "Bruce Momjian" Cc: "pgsql-hackers" Subject: RE: [HACKERS] Index recreation in vacuum Date: Wed, 19 Jan 2000 10:13:40 +0900 Message-ID: <000201bf621a$6b9baf20$2801007e@tpf.co.jp> +MIME-Version: 1.0 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 @@ -81,9 +113,8 @@ X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Importance: Normal In-Reply-To: <200001181821.NAA02988@candle.pha.pa.us> Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 1493 +Status: OR -[ Charset ISO-8859-1 unsupported, converting... ] > -----Original Message----- > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us] > @@ -140,6 +171,25 @@ Inoue@tpf.co.jp ************ From owner-pgsql-hackers@hub.org Tue Jan 18 19:57:21 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id UAA11764 + for ; Tue, 18 Jan 2000 20:57:19 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id UAA50653; + Tue, 18 Jan 2000 20:52:38 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Tue, 18 Jan 2000 20:52:30 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id UAA50513 + for pgsql-hackers-outgoing; Tue, 18 Jan 2000 20:51:32 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from candle.pha.pa.us (pgman@s5-03.ppp.op.net [209.152.195.67]) + by hub.org (8.9.3/8.9.3) with ESMTP id UAA50462 + for ; Tue, 18 Jan 2000 20:51:06 -0500 (EST) + (envelope-from pgman@candle.pha.pa.us) +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id UAA11421; + Tue, 18 Jan 2000 20:50:50 -0500 (EST) From: Bruce Momjian Message-Id: <200001190150.UAA11421@candle.pha.pa.us> Subject: Re: [HACKERS] Index recreation in vacuum @@ -149,8 +199,11 @@ To: Hiroshi Inoue Date: Tue, 18 Jan 2000 20:50:50 -0500 (EST) CC: pgsql-hackers X-Mailer: ELM [version 2.4ME+ PL66 (25)] +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 2329 +Status: ORr > > > Add a new option to force index recreation in vacuum > > > and if index recreation is specified. @@ -208,6 +261,9 @@ old copy of the index. ************ From pgman Tue Jan 18 20:04:11 2000 +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id VAA11990; + Tue, 18 Jan 2000 21:04:11 -0500 (EST) From: Bruce Momjian Message-Id: <200001190204.VAA11990@candle.pha.pa.us> Subject: Re: [HACKERS] Index recreation in vacuum @@ -218,7 +274,10 @@ Date: Tue, 18 Jan 2000 21:04:11 -0500 (EST) CC: Hiroshi Inoue , pgsql-hackers X-Mailer: ELM [version 2.4ME+ PL66 (25)] -Content-Length: 2434 +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit +Status: OR > > I don't know how people estimate this disadvantage. > @@ -270,21 +329,30 @@ old index around, but the index is invalid anyway, right? + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 From Inoue@tpf.co.jp Tue Jan 18 20:18:48 2000 +Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id VAA12437 + for ; Tue, 18 Jan 2000 21:18:46 -0500 (EST) +Received: from cadzone ([126.0.1.40] (may be forged)) + by sd.tpf.co.jp (2.5 Build 2640 (Berkeley 8.8.6)/8.8.4) with SMTP + id LAA02845; Wed, 19 Jan 2000 11:18:18 +0900 From: "Hiroshi Inoue" To: "Bruce Momjian" Cc: "pgsql-hackers" Subject: RE: [HACKERS] Index recreation in vacuum Date: Wed, 19 Jan 2000 11:23:55 +0900 Message-ID: <000801bf6224$3bfdd9a0$2801007e@tpf.co.jp> +MIME-Version: 1.0 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Importance: Normal In-Reply-To: <200001190204.VAA11990@candle.pha.pa.us> -Content-Length: 2308 +Status: ORr -[ Charset ISO-8859-1 unsupported, converting... ] > -----Original Message----- > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us] > @@ -337,6 +405,25 @@ Inoue@tpf.co.jp From owner-pgsql-hackers@hub.org Tue Jan 18 20:53:49 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id VAA13285 + for ; Tue, 18 Jan 2000 21:53:47 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id VAA65183; + Tue, 18 Jan 2000 21:47:47 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Tue, 18 Jan 2000 21:47:33 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id VAA65091 + for pgsql-hackers-outgoing; Tue, 18 Jan 2000 21:46:33 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from candle.pha.pa.us (pgman@s5-03.ppp.op.net [209.152.195.67]) + by hub.org (8.9.3/8.9.3) with ESMTP id VAA65034 + for ; Tue, 18 Jan 2000 21:46:12 -0500 (EST) + (envelope-from pgman@candle.pha.pa.us) +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id VAA13040; + Tue, 18 Jan 2000 21:45:27 -0500 (EST) From: Bruce Momjian Message-Id: <200001190245.VAA13040@candle.pha.pa.us> Subject: Re: [HACKERS] Index recreation in vacuum @@ -346,8 +433,11 @@ To: Hiroshi Inoue Date: Tue, 18 Jan 2000 21:45:27 -0500 (EST) CC: pgsql-hackers X-Mailer: ELM [version 2.4ME+ PL66 (25)] +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 2480 +Status: OR > > > In fact, for REINDEX cases where you don't have a lock on the entire > > > table as you do in vacuum, you could reindex the table with a simple @@ -398,6 +488,25 @@ of using 2x the disk space. Seems like a big win. ************ From owner-pgsql-hackers@hub.org Tue Jan 18 21:15:24 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id WAA14115 + for ; Tue, 18 Jan 2000 22:15:23 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id WAA72950; + Tue, 18 Jan 2000 22:10:40 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Tue, 18 Jan 2000 22:10:32 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id WAA72644 + for pgsql-hackers-outgoing; Tue, 18 Jan 2000 22:09:36 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from candle.pha.pa.us (pgman@s5-03.ppp.op.net [209.152.195.67]) + by hub.org (8.9.3/8.9.3) with ESMTP id WAA72504 + for ; Tue, 18 Jan 2000 22:08:40 -0500 (EST) + (envelope-from pgman@candle.pha.pa.us) +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id WAA13965; + Tue, 18 Jan 2000 22:08:25 -0500 (EST) From: Bruce Momjian Message-Id: <200001190308.WAA13965@candle.pha.pa.us> Subject: Re: [HACKERS] Index recreation in vacuum @@ -407,27 +516,72 @@ To: Hiroshi Inoue Date: Tue, 18 Jan 2000 22:08:25 -0500 (EST) CC: pgsql-hackers X-Mailer: ELM [version 2.4ME+ PL66 (25)] +MIME-Version: 1.0 +Content-Type: text/plain; charset=UNKNOWN-8BIT +Content-Transfer-Encoding: 8bit Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 50 +Status: OR -[ Charset UNKNOWN-8BIT unsupported, skipping... ] +> I heard from someone that old vacuum had been like so. +> Probably 2x disk space for big tables was a big disadvantage. + +That's interesting. + +> +> In addition,rename(),unlink(),mv aren't preferable for transaction +> control as far as I see. We couldn't avoid inconsistency using +> those OS functions. + +I disagree. Vacuum can't be rolled back anyway in the sense you can +bring back expire tuples, though I have no idea why you would want to. + +You have an exclusive lock on the table. Putting new heap/indexes in +place that match and have no expired tuples seems like it can not fail +in any situation. + +Of course, the buffers of the old table have to be marked as invalid, +but with an exclusive lock, that is not a problem. I am sure we do that +anyway in vacuum. + +> We have to wait the change of relation file naming if copying +> vacuum is needed. +> Under the spec we need not rename(),mv etc. + +Sorry, I don't agree, yet... + +-- + Bruce Momjian | http://www.op.net/~candle + pgman@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 + +************ From Inoue@tpf.co.jp Tue Jan 18 21:05:23 2000 +Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id WAA13858 + for ; Tue, 18 Jan 2000 22:05:21 -0500 (EST) +Received: from cadzone ([126.0.1.40] (may be forged)) + by sd.tpf.co.jp (2.5 Build 2640 (Berkeley 8.8.6)/8.8.4) with SMTP + id MAA02870; Wed, 19 Jan 2000 12:04:55 +0900 From: "Hiroshi Inoue" To: "Bruce Momjian" Cc: "pgsql-hackers" Subject: RE: [HACKERS] Index recreation in vacuum Date: Wed, 19 Jan 2000 12:10:32 +0900 Message-ID: <000f01bf622a$bf423940$2801007e@tpf.co.jp> +MIME-Version: 1.0 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Importance: Normal In-Reply-To: <200001190245.VAA13040@candle.pha.pa.us> -Content-Length: 1509 +Status: ORr -[ Charset ISO-8859-1 unsupported, converting... ] > -----Original Message----- > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us] > > > @@ -471,20 +625,28 @@ Inoue@tpf.co.jp From dms@wplus.net Wed Jan 19 15:30:40 2000 +Received: from relay.wplus.net (relay.wplus.net [195.131.52.179]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id QAA25919 + for ; Wed, 19 Jan 2000 16:30:38 -0500 (EST) X-Real-To: pgman@candle.pha.pa.us +Received: from wplus.net (ppdms.dialup.wplus.net [195.131.52.71]) + by relay.wplus.net (8.9.1/8.9.1/wplus.2) with ESMTP id AAA64218; + Thu, 20 Jan 2000 00:26:37 +0300 (MSK) Message-ID: <38862C9D.C2151E4E@wplus.net> Date: Thu, 20 Jan 2000 00:29:01 +0300 From: Dmitry Samersoff X-Mailer: Mozilla 4.61 [en] (WinNT; I) X-Accept-Language: ru,en +MIME-Version: 1.0 To: Hiroshi Inoue CC: Bruce Momjian , pgsql-hackers Subject: Re: [HACKERS] Index recreation in vacuum References: <000f01bf622a$bf423940$2801007e@tpf.co.jp> -Content-Length: 1204 +Content-Type: text/plain; charset=koi8-r +Content-Transfer-Encoding: 7bit +Status: ORr -[ Charset KOI8-R unsupported, converting... ] Hiroshi Inoue wrote: > > > Yes,I believe so. It's necessary to keep consistency between heap > > > table and indexes even in case of abort/crash. @@ -522,20 +684,28 @@ dms@wplus.net http://devnull.wplus.net * there will come soft rains From dms@wplus.net Wed Jan 19 15:42:49 2000 +Received: from relay.wplus.net (relay.wplus.net [195.131.52.179]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id QAA26645 + for ; Wed, 19 Jan 2000 16:42:47 -0500 (EST) X-Real-To: pgman@candle.pha.pa.us +Received: from wplus.net (ppdms.dialup.wplus.net [195.131.52.71]) + by relay.wplus.net (8.9.1/8.9.1/wplus.2) with ESMTP id AAA65264; + Thu, 20 Jan 2000 00:39:02 +0300 (MSK) Message-ID: <38862F86.20328BD3@wplus.net> Date: Thu, 20 Jan 2000 00:41:26 +0300 From: Dmitry Samersoff X-Mailer: Mozilla 4.61 [en] (WinNT; I) X-Accept-Language: ru,en +MIME-Version: 1.0 To: Bruce Momjian CC: Hiroshi Inoue , pgsql-hackers Subject: Re: [HACKERS] Index recreation in vacuum References: <200001192132.QAA26048@candle.pha.pa.us> -Content-Length: 431 +Content-Type: text/plain; charset=koi8-r +Content-Transfer-Encoding: 7bit +Status: ORr -[ Charset KOI8-R unsupported, converting... ] Bruce Momjian wrote: > > We need two things: @@ -554,20 +724,98 @@ Dmitry Samersoff, DM\S dms@wplus.net http://devnull.wplus.net * there will come soft rains +From owner-pgsql-hackers@hub.org Thu Jan 20 23:51:34 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id AAA13891 + for ; Fri, 21 Jan 2000 00:51:31 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id AAA91784; + Fri, 21 Jan 2000 00:47:07 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Fri, 21 Jan 2000 00:45:38 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id AAA91495 + for pgsql-hackers-outgoing; Fri, 21 Jan 2000 00:44:40 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from candle.pha.pa.us (pgman@s5-03.ppp.op.net [209.152.195.67]) + by hub.org (8.9.3/8.9.3) with ESMTP id AAA91378 + for ; Fri, 21 Jan 2000 00:44:04 -0500 (EST) + (envelope-from pgman@candle.pha.pa.us) +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id AAA13592; + Fri, 21 Jan 2000 00:43:49 -0500 (EST) +From: Bruce Momjian +Message-Id: <200001210543.AAA13592@candle.pha.pa.us> +Subject: [HACKERS] vacuum timings +To: Tom Lane +Date: Fri, 21 Jan 2000 00:43:49 -0500 (EST) +CC: PostgreSQL-development +X-Mailer: ELM [version 2.4ME+ PL66 (25)] +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit +Sender: owner-pgsql-hackers@postgreSQL.org +Status: OR + +I loaded 10,000,000 rows into CREATE TABLE test (x INTEGER); Table is +400MB and index is 160MB. + +With index on the single in4 column, I got: + 78 seconds for a vacuum + 121 seconds for vacuum after deleting a single row + 662 seconds for vacuum after deleting the entire table + +With no index, I got: + 43 seconds for a vacuum + 43 seconds for vacuum after deleting a single row + 43 seconds for vacuum after deleting the entire table + +I find this quite interesting. + +-- + Bruce Momjian | http://www.op.net/~candle + pgman@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 + +************ + From owner-pgsql-hackers@hub.org Fri Jan 21 00:34:56 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id BAA15559 + for ; Fri, 21 Jan 2000 01:34:55 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id BAA06108; + Fri, 21 Jan 2000 01:32:23 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Fri, 21 Jan 2000 01:30:38 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id BAA03704 + for pgsql-hackers-outgoing; Fri, 21 Jan 2000 01:27:53 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from sunpine.krs.ru (SunPine.krs.ru [195.161.16.37]) + by hub.org (8.9.3/8.9.3) with ESMTP id BAA01710 + for ; Fri, 21 Jan 2000 01:26:44 -0500 (EST) + (envelope-from vadim@krs.ru) +Received: from krs.ru (dune.krs.ru [195.161.16.38]) + by sunpine.krs.ru (8.8.8/8.8.8) with ESMTP id NAA01685; + Fri, 21 Jan 2000 13:26:33 +0700 (KRS) Message-ID: <3887FC19.80305217@krs.ru> Date: Fri, 21 Jan 2000 13:26:33 +0700 From: Vadim Mikheev Organization: OJSC Rostelecom (Krasnoyarsk) X-Mailer: Mozilla 4.5 [en] (X11; I; FreeBSD 3.0-RELEASE i386) X-Accept-Language: ru, en +MIME-Version: 1.0 To: Bruce Momjian CC: Tom Lane , PostgreSQL-development Subject: Re: [HACKERS] vacuum timings References: <200001210543.AAA13592@candle.pha.pa.us> +Content-Type: text/plain; charset=us-ascii +Content-Transfer-Encoding: 7bit Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 557 +Status: OR Bruce Momjian wrote: > @@ -591,6 +839,12 @@ Vadim ************ From vadim@krs.ru Fri Jan 21 00:26:33 2000 +Received: from sunpine.krs.ru (SunPine.krs.ru [195.161.16.37]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id BAA15239 + for ; Fri, 21 Jan 2000 01:26:31 -0500 (EST) +Received: from krs.ru (dune.krs.ru [195.161.16.38]) + by sunpine.krs.ru (8.8.8/8.8.8) with ESMTP id NAA01685; + Fri, 21 Jan 2000 13:26:33 +0700 (KRS) Sender: root@sunpine.krs.ru Message-ID: <3887FC19.80305217@krs.ru> Date: Fri, 21 Jan 2000 13:26:33 +0700 @@ -598,12 +852,15 @@ From: Vadim Mikheev Organization: OJSC Rostelecom (Krasnoyarsk) X-Mailer: Mozilla 4.5 [en] (X11; I; FreeBSD 3.0-RELEASE i386) X-Accept-Language: ru, en +MIME-Version: 1.0 To: Bruce Momjian CC: Tom Lane , PostgreSQL-development Subject: Re: [HACKERS] vacuum timings References: <200001210543.AAA13592@candle.pha.pa.us> -Content-Length: 543 +Content-Type: text/plain; charset=us-ascii +Content-Transfer-Encoding: 7bit +Status: ORr Bruce Momjian wrote: > @@ -625,6 +882,12 @@ Wi/wo -F ? Vadim From Inoue@tpf.co.jp Fri Jan 21 00:40:35 2000 +Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id BAA15684 + for ; Fri, 21 Jan 2000 01:40:33 -0500 (EST) +Received: from cadzone ([126.0.1.40] (may be forged)) + by sd.tpf.co.jp (2.5 Build 2640 (Berkeley 8.8.6)/8.8.4) with SMTP + id PAA04316; Fri, 21 Jan 2000 15:40:35 +0900 From: "Hiroshi Inoue" To: "Bruce Momjian" Cc: "PostgreSQL-development" , @@ -632,15 +895,18 @@ Cc: "PostgreSQL-development" , Subject: RE: [HACKERS] vacuum timings Date: Fri, 21 Jan 2000 15:46:15 +0900 Message-ID: <000201bf63db$36cdae20$2801007e@tpf.co.jp> +MIME-Version: 1.0 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 In-Reply-To: <200001210543.AAA13592@candle.pha.pa.us> -Content-Length: 737 +Status: OR -[ Charset ISO-8859-1 unsupported, converting... ] > -----Original Message----- > From: owner-pgsql-hackers@postgreSQL.org > [mailto:owner-pgsql-hackers@postgreSQL.org]On Behalf Of Bruce Momjian @@ -669,6 +935,25 @@ Hiroshi Inoue Inoue@tpf.co.jp From owner-pgsql-hackers@hub.org Fri Jan 21 12:00:49 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id NAA13329 + for ; Fri, 21 Jan 2000 13:00:47 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id MAA96106; + Fri, 21 Jan 2000 12:55:34 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Fri, 21 Jan 2000 12:53:53 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id MAA95775 + for pgsql-hackers-outgoing; Fri, 21 Jan 2000 12:52:54 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from candle.pha.pa.us (root@s5-03.ppp.op.net [209.152.195.67]) + by hub.org (8.9.3/8.9.3) with ESMTP id MAA95720 + for ; Fri, 21 Jan 2000 12:52:39 -0500 (EST) + (envelope-from pgman@candle.pha.pa.us) +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id MAA12106; + Fri, 21 Jan 2000 12:51:53 -0500 (EST) From: Bruce Momjian Message-Id: <200001211751.MAA12106@candle.pha.pa.us> Subject: [HACKERS] Re: vacuum timings @@ -678,8 +963,11 @@ To: Tom Lane Date: Fri, 21 Jan 2000 12:51:53 -0500 (EST) CC: PostgreSQL-development X-Mailer: ELM [version 2.4ME+ PL66 (25)] +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 1437 +Status: OR > Bruce Momjian writes: > > I loaded 10,000,000 rows into CREATE TABLE test (x INTEGER); Table is @@ -734,6 +1022,13 @@ What other conclusions can be made? ************ From scrappy@hub.org Fri Jan 21 12:45:38 2000 +Received: from thelab.hub.org (nat200.60.mpoweredpc.net [142.177.200.60]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id NAA14380 + for ; Fri, 21 Jan 2000 13:45:29 -0500 (EST) +Received: from localhost (scrappy@localhost) + by thelab.hub.org (8.9.3/8.9.1) with ESMTP id OAA68289; + Fri, 21 Jan 2000 14:45:35 -0400 (AST) + (envelope-from scrappy@hub.org) X-Authentication-Warning: thelab.hub.org: scrappy owned process doing -bs Date: Fri, 21 Jan 2000 14:45:34 -0400 (AST) From: The Hermit Hacker @@ -743,7 +1038,9 @@ cc: Tom Lane , Subject: Re: [HACKERS] Re: vacuum timings In-Reply-To: <200001211751.MAA12106@candle.pha.pa.us> Message-ID: -Content-Length: 787 +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII +Status: OR On Fri, 21 Jan 2000, Bruce Momjian wrote: @@ -778,6 +1075,12 @@ primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org From tgl@sss.pgh.pa.us Fri Jan 21 13:06:35 2000 +Received: from sss2.sss.pgh.pa.us (sss.pgh.pa.us [209.114.166.2]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id OAA14618 + for ; Fri, 21 Jan 2000 14:06:33 -0500 (EST) +Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) + by sss2.sss.pgh.pa.us (8.9.3/8.9.3) with ESMTP id OAA16501; + Fri, 21 Jan 2000 14:06:31 -0500 (EST) To: Bruce Momjian cc: PostgreSQL-development Subject: Re: vacuum timings @@ -788,7 +1091,7 @@ Comments: In-reply-to Bruce Momjian Date: Fri, 21 Jan 2000 14:06:31 -0500 Message-ID: <16498.948481591@sss.pgh.pa.us> From: Tom Lane -Content-Length: 391 +Status: OR Bruce Momjian writes: > Conclusions: @@ -805,20 +1108,28 @@ fraction of the rows, rather than just the all or none cases. regards, tom lane From dms@wplus.net Fri Jan 21 13:51:27 2000 +Received: from relay.wplus.net (relay.wplus.net [195.131.52.179]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id OAA15623 + for ; Fri, 21 Jan 2000 14:51:24 -0500 (EST) X-Real-To: pgman@candle.pha.pa.us +Received: from wplus.net (ppdms.dialup.wplus.net [195.131.52.71]) + by relay.wplus.net (8.9.1/8.9.1/wplus.2) with ESMTP id WAA89451; + Fri, 21 Jan 2000 22:46:19 +0300 (MSK) Message-ID: <3888B822.28F79A1F@wplus.net> Date: Fri, 21 Jan 2000 22:48:50 +0300 From: Dmitry Samersoff X-Mailer: Mozilla 4.7 [en] (WinNT; I) X-Accept-Language: ru,en +MIME-Version: 1.0 To: Tom Lane CC: Bruce Momjian , PostgreSQL-development Subject: Re: [HACKERS] Re: vacuum timings References: <200001211751.MAA12106@candle.pha.pa.us> <16498.948481591@sss.pgh.pa.us> -Content-Length: 585 +Content-Type: text/plain; charset=koi8-r +Content-Transfer-Encoding: 7bit +Status: ORr -[ Charset KOI8-R unsupported, converting... ] Tom Lane wrote: > > Bruce Momjian writes: @@ -844,6 +1155,25 @@ dms@wplus.net http://devnull.wplus.net * there will come soft rains From owner-pgsql-hackers@hub.org Fri Jan 21 14:04:08 2000 +Received: from hub.org (hub.org [216.126.84.1]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id PAA16140 + for ; Fri, 21 Jan 2000 15:04:06 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id OAA34808; + Fri, 21 Jan 2000 14:59:30 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Fri, 21 Jan 2000 14:57:48 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id OAA34320 + for pgsql-hackers-outgoing; Fri, 21 Jan 2000 14:56:50 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from candle.pha.pa.us (pgman@s5-03.ppp.op.net [209.152.195.67]) + by hub.org (8.9.3/8.9.3) with ESMTP id OAA34255 + for ; Fri, 21 Jan 2000 14:56:18 -0500 (EST) + (envelope-from pgman@candle.pha.pa.us) +Received: (from pgman@localhost) + by candle.pha.pa.us (8.9.0/8.9.0) id OAA15772; + Fri, 21 Jan 2000 14:54:22 -0500 (EST) From: Bruce Momjian Message-Id: <200001211954.OAA15772@candle.pha.pa.us> Subject: Re: [HACKERS] Re: vacuum timings @@ -854,8 +1184,11 @@ Date: Fri, 21 Jan 2000 14:54:21 -0500 (EST) CC: Tom Lane , PostgreSQL-development X-Mailer: ELM [version 2.4ME+ PL66 (25)] +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit Sender: owner-pgsql-hackers@postgreSQL.org -Content-Length: 1093 +Status: OR [Charset koi8-r unsupported, filtering to ASCII...] > Tom Lane wrote: @@ -894,6 +1227,13 @@ toying with: ************ From scrappy@hub.org Fri Jan 21 14:12:16 2000 +Received: from thelab.hub.org (nat200.60.mpoweredpc.net [142.177.200.60]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id PAA16521 + for ; Fri, 21 Jan 2000 15:12:13 -0500 (EST) +Received: from localhost (scrappy@localhost) + by thelab.hub.org (8.9.3/8.9.1) with ESMTP id QAA69039; + Fri, 21 Jan 2000 16:12:25 -0400 (AST) + (envelope-from scrappy@hub.org) X-Authentication-Warning: thelab.hub.org: scrappy owned process doing -bs Date: Fri, 21 Jan 2000 16:12:25 -0400 (AST) From: The Hermit Hacker @@ -903,7 +1243,9 @@ cc: Dmitry Samersoff , Tom Lane , Subject: Re: [HACKERS] Re: vacuum timings In-Reply-To: <200001211954.OAA15772@candle.pha.pa.us> Message-ID: -Content-Length: 2345 +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII +Status: OR On Fri, 21 Jan 2000, Bruce Momjian wrote: @@ -965,6 +1307,12 @@ primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org From tgl@sss.pgh.pa.us Fri Jan 21 16:02:07 2000 +Received: from sss2.sss.pgh.pa.us (sss.pgh.pa.us [209.114.166.2]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id RAA20290 + for ; Fri, 21 Jan 2000 17:02:06 -0500 (EST) +Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) + by sss2.sss.pgh.pa.us (8.9.3/8.9.3) with ESMTP id RAA09697; + Fri, 21 Jan 2000 17:02:06 -0500 (EST) To: The Hermit Hacker cc: Bruce Momjian , PostgreSQL-development @@ -976,7 +1324,7 @@ Comments: In-reply-to The Hermit Hacker Date: Fri, 21 Jan 2000 17:02:06 -0500 Message-ID: <9694.948492126@sss.pgh.pa.us> From: Tom Lane -Content-Length: 1274 +Status: OR The Hermit Hacker writes: >> lock table for less duration, or read lock @@ -1006,6 +1354,12 @@ recipe for deadlocks. Not sure if this can be solved. regards, tom lane From tgl@sss.pgh.pa.us Fri Jan 21 22:50:34 2000 +Received: from sss2.sss.pgh.pa.us (sss.pgh.pa.us [209.114.166.2]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id XAA01657 + for ; Fri, 21 Jan 2000 23:50:28 -0500 (EST) +Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) + by sss2.sss.pgh.pa.us (8.9.3/8.9.3) with ESMTP id XAA19681; + Fri, 21 Jan 2000 23:50:13 -0500 (EST) To: Bruce Momjian cc: PostgreSQL-development Subject: Re: vacuum timings @@ -1016,7 +1370,7 @@ Comments: In-reply-to Bruce Momjian Date: Fri, 21 Jan 2000 23:50:13 -0500 Message-ID: <19678.948516613@sss.pgh.pa.us> From: Tom Lane -Content-Length: 1302 +Status: ORr Bruce Momjian writes: > Conclusions: @@ -1046,12 +1400,36 @@ into... regards, tom lane From owner-pgsql-hackers@hub.org Sat Jan 22 02:31:03 2000 +Received: from renoir.op.net (root@renoir.op.net [207.29.195.4]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id DAA06743 + for ; Sat, 22 Jan 2000 03:31:02 -0500 (EST) +Received: from hub.org (hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.2 $) with ESMTP id DAA07529 for ; Sat, 22 Jan 2000 03:25:13 -0500 (EST) +Received: from localhost (majordom@localhost) + by hub.org (8.9.3/8.9.3) with SMTP id DAA31900; + Sat, 22 Jan 2000 03:19:53 -0500 (EST) + (envelope-from owner-pgsql-hackers) +Received: by hub.org (bulk_mailer v1.5); Sat, 22 Jan 2000 03:17:56 -0500 +Received: (from majordom@localhost) + by hub.org (8.9.3/8.9.3) id DAA31715 + for pgsql-hackers-outgoing; Sat, 22 Jan 2000 03:16:58 -0500 (EST) + (envelope-from owner-pgsql-hackers@postgreSQL.org) +Received: from sd.tpf.co.jp (sd.tpf.co.jp [210.161.239.34]) + by hub.org (8.9.3/8.9.3) with ESMTP id DAA31647 + for ; Sat, 22 Jan 2000 03:16:26 -0500 (EST) + (envelope-from Inoue@tpf.co.jp) +Received: from mcadnote1 (ppm114.noc.fukui.nsk.ne.jp [210.161.188.33]) + by sd.tpf.co.jp (2.5 Build 2640 (Berkeley 8.8.6)/8.8.4) with SMTP + id RAA04754; Sat, 22 Jan 2000 17:14:43 +0900 From: "Hiroshi Inoue" To: "Tom Lane" , "Bruce Momjian" Cc: "PostgreSQL-development" Subject: RE: [HACKERS] Re: vacuum timings Date: Sat, 22 Jan 2000 17:15:37 +0900 Message-ID: +MIME-Version: 1.0 +Content-Type: text/plain; + charset="iso-2022-jp" +Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) @@ -1059,11 +1437,48 @@ X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 In-Reply-To: <16498.948481591@sss.pgh.pa.us> Importance: Normal Sender: owner-pgsql-hackers@postgresql.org -Content-Length: 49 +Status: OR -[ Charset iso-2022-jp unsupported, skipping... ] +> -----Original Message----- +> From: owner-pgsql-hackers@postgresql.org +> [mailto:owner-pgsql-hackers@postgresql.org]On Behalf Of Tom Lane +> +> Bruce Momjian writes: +> > Conclusions: +> > o indexes never get smaller +> +> Which we knew... +> +> > o drop/recreate index is slower than vacuum of indexes +> +> Quite a few people have reported finding the opposite in practice. +> You should probably try vacuuming after deleting or updating some +> fraction of the rows, rather than just the all or none cases. +> + +Vacuum after delelting all rows isn't a worst case. +There's no moving in that case and vacuum doesn't need to call +index_insert() corresponding to the moving of heap tuples. + +Vacuum after deleting half of rows may be one of the worst case. +In this case,index_delete() is called as many times as 'delete all' +case and expensive index_insert() is called for moved_in tuples. + +Regards. + +Hiroshi Inoue +Inoue@tpf.co.jp + +************ From tgl@sss.pgh.pa.us Sat Jan 22 10:31:02 2000 +Received: from renoir.op.net (root@renoir.op.net [207.29.195.4]) + by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id LAA20882 + for ; Sat, 22 Jan 2000 11:31:00 -0500 (EST) +Received: from sss2.sss.pgh.pa.us (sss.pgh.pa.us [209.114.166.2]) by renoir.op.net (o1/$Revision: 1.2 $) with ESMTP id LAA26612 for ; Sat, 22 Jan 2000 11:12:44 -0500 (EST) +Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) + by sss2.sss.pgh.pa.us (8.9.3/8.9.3) with ESMTP id LAA20569; + Sat, 22 Jan 2000 11:11:26 -0500 (EST) To: "Hiroshi Inoue" cc: "Bruce Momjian" , "PostgreSQL-development" @@ -1075,7 +1490,7 @@ Comments: In-reply-to "Hiroshi Inoue" Date: Sat, 22 Jan 2000 11:11:25 -0500 Message-ID: <20566.948557485@sss.pgh.pa.us> From: Tom Lane -Content-Length: 186 +Status: OR "Hiroshi Inoue" writes: > Vacuum after deleting half of rows may be one of the worst case. diff --git a/doc/src/FAQ.html b/doc/src/FAQ.html index 13e76176c2..87b492fbb9 100644 --- a/doc/src/FAQ.html +++ b/doc/src/FAQ.html @@ -7,7 +7,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL

-Last updated: Thu Jun 1 13:57:15 EDT 2000 +Last updated: Fri Jun 2 11:32:13 EDT 2000

Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)

diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index a0e19903bc..de38255b00 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,5 +1,5 @@ @@ -62,6 +62,8 @@ Copy pg_ident.conf.sample into /lib directory in install (Bruce) Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya) Fix too long syslog message (Tatsuo) Fix problem with quoted indexes that are too long (Tom) +JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu) +ecpg changes (Michael) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index ca75cfefb1..1eaa166995 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -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/access/transam/xlog.c,v 1.15 2000/06/02 10:20:25 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.16 2000/06/02 15:57:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -746,11 +746,7 @@ XLogFileInit(uint32 log, uint32 seg) XLogFileName(path, log, seg); unlink(path); -#ifndef __CYGWIN__ - fd = BasicOpenFile(path, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); -#else - fd = BasicOpenFile(path, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR); -#endif + fd = BasicOpenFile(path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) elog(STOP, "Open(logfile %u seg %u) failed: %d", logId, logSeg, errno); @@ -782,11 +778,7 @@ XLogFileOpen(uint32 log, uint32 seg, bool econt) XLogFileName(path, log, seg); -#ifndef __CYGWIN__ - fd = BasicOpenFile(path, O_RDWR, S_IRUSR | S_IWUSR); -#else - fd = BasicOpenFile(path, O_RDWR | O_BINARY, S_IRUSR | S_IWUSR); -#endif + fd = BasicOpenFile(path, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) { if (econt && errno == ENOENT) @@ -1096,11 +1088,7 @@ UpdateControlFile() { int fd; -#ifndef __CYGWIN__ - fd = BasicOpenFile(ControlFilePath, O_RDWR, S_IRUSR | S_IWUSR); -#else - fd = BasicOpenFile(ControlFilePath, O_RDWR | O_BINARY, S_IRUSR | S_IWUSR); -#endif + fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) elog(STOP, "Open(cntlfile) failed: %d", errno); @@ -1158,11 +1146,7 @@ BootStrapXLOG() #endif -#ifndef __CYGWIN__ - fd = BasicOpenFile(ControlFilePath, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); -#else - fd = BasicOpenFile(ControlFilePath, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR); -#endif + fd = BasicOpenFile(ControlFilePath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) elog(STOP, "BootStrapXLOG failed to create control file (%s): %d", ControlFilePath, errno); @@ -1273,11 +1257,7 @@ StartupXLOG() /* * Open/read Control file */ -#ifndef __CYGWIN__ - fd = BasicOpenFile(ControlFilePath, O_RDWR, S_IRUSR | S_IWUSR); -#else - fd = BasicOpenFile(ControlFilePath, O_RDWR | O_BINARY, S_IRUSR | S_IWUSR); -#endif + fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) elog(STOP, "Open(\"%s\") failed: %d", ControlFilePath, errno); diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index fe8a3223c1..adba62242a 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.109 2000/05/30 04:25:00 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.110 2000/06/02 15:57:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -320,11 +320,7 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe, } else { -#ifndef __CYGWIN32__ - fp = AllocateFile(filename, "r"); -#else - fp = AllocateFile(filename, "rb"); -#endif + fp = AllocateFile(filename, PG_BINARY_R); if (fp == NULL) elog(ERROR, "COPY command, running in backend with " "effective uid %d, could not open file '%s' for " @@ -355,12 +351,7 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe, " COPY command."); oumask = umask((mode_t) 022); - -#ifndef __CYGWIN32__ - fp = AllocateFile(filename, "w"); -#else - fp = AllocateFile(filename, "wb"); -#endif + fp = AllocateFile(filename, PG_BINARY_W); umask(oumask); if (fp == NULL) diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c index 1ac73fa0ea..c41ed08bd7 100644 --- a/src/backend/libpq/be-fsstubs.c +++ b/src/backend/libpq/be-fsstubs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.44 2000/04/12 17:15:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.45 2000/06/02 15:57:20 momjian Exp $ * * NOTES * This should be moved to a more appropriate place. It is here @@ -342,11 +342,7 @@ lo_import(text *filename) if (nbytes > FNAME_BUFSIZE) nbytes = FNAME_BUFSIZE; StrNCpy(fnamebuf, VARDATA(filename), nbytes); -#ifndef __CYGWIN32__ - fd = PathNameOpenFile(fnamebuf, O_RDONLY, 0666); -#else - fd = PathNameOpenFile(fnamebuf, O_RDONLY | O_BINARY, 0666); -#endif + fd = PathNameOpenFile(fnamebuf, O_RDONLY | PG_BINARY, 0666); if (fd < 0) { /* error */ elog(ERROR, "lo_import: can't open unix file \"%s\": %m", @@ -427,11 +423,7 @@ lo_export(Oid lobjId, text *filename) nbytes = FNAME_BUFSIZE; StrNCpy(fnamebuf, VARDATA(filename), nbytes); oumask = umask((mode_t) 0022); -#ifndef __CYGWIN32__ - fd = PathNameOpenFile(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC, 0666); -#else - fd = PathNameOpenFile(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666); -#endif + fd = PathNameOpenFile(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC | PG_BINARY, 0666); umask(oumask); if (fd < 0) { /* error */ diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c index 7c3bd35e24..ce084b1a60 100644 --- a/src/backend/libpq/crypt.c +++ b/src/backend/libpq/crypt.c @@ -9,7 +9,7 @@ * Dec 17, 1997 - Todd A. Brandys * Orignal Version Completed. * - * $Id: crypt.c,v 1.23 1999/07/17 20:17:01 momjian Exp $ + * $Id: crypt.c,v 1.24 2000/06/02 15:57:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -73,11 +73,7 @@ crypt_openpwdfile() FILE *pwdfile; filename = crypt_getpwdfilename(); -#ifndef __CYGWIN32__ - pwdfile = AllocateFile(filename, "r"); -#else - pwdfile = AllocateFile(filename, "rb"); -#endif + pwdfile = AllocateFile(filename, PG_BINARY_R); return pwdfile; } diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index 2bdf5fbf4b..61c6b9f436 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -5,7 +5,7 @@ * wherein you authenticate a user by seeing what IP address the system * says he comes from and possibly using ident). * - * $Id: hba.c,v 1.51 2000/04/12 17:15:14 momjian Exp $ + * $Id: hba.c,v 1.52 2000/06/02 15:57:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -397,11 +397,7 @@ find_hba_entry(hbaPort *port, bool *hba_ok_p) old_conf_file = (char *) palloc(bufsize); snprintf(old_conf_file, bufsize, "%s/%s", DataDir, OLD_CONF_FILE); -#ifndef __CYGWIN32__ - if ((fd = open(old_conf_file, O_RDONLY, 0)) != -1) -#else - if ((fd = open(old_conf_file, O_RDONLY | O_BINARY, 0)) != -1) -#endif + if ((fd = open(old_conf_file, O_RDONLY | PG_BINARY, 0)) != -1) { /* Old config file exists. Tell this guy he needs to upgrade. */ close(fd); @@ -810,11 +806,7 @@ verify_against_usermap(const char *pguser, map_file = (char *) palloc(bufsize); snprintf(map_file, bufsize, "%s/%s", DataDir, USERMAP_FILE); -#ifndef __CYGWIN32__ - file = AllocateFile(map_file, "r"); -#else - file = AllocateFile(map_file, "rb"); -#endif + file = AllocateFile(map_file, PG_BINARY_R); if (file == NULL) { /* The open of the map file failed. */ @@ -986,11 +978,7 @@ GetCharSetByHost(char *TableName, int host, const char *DataDir) bufsize = (strlen(DataDir) + strlen(CHARSET_FILE) + 2) * sizeof(char); map_file = (char *) palloc(bufsize); snprintf(map_file, bufsize, "%s/%s", DataDir, CHARSET_FILE); -#ifndef __CYGWIN32__ - file = AllocateFile(map_file, "r"); -#else - file = AllocateFile(map_file, "rb"); -#endif + file = AllocateFile(map_file, PG_BINARY_R); if (file == NULL) return; while (!eof) diff --git a/src/backend/libpq/password.c b/src/backend/libpq/password.c index 9fc715a9a2..c7656f8b98 100644 --- a/src/backend/libpq/password.c +++ b/src/backend/libpq/password.c @@ -2,7 +2,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: password.c,v 1.28 2000/01/26 05:56:29 momjian Exp $ + * $Id: password.c,v 1.29 2000/06/02 15:57:21 momjian Exp $ * */ @@ -28,11 +28,7 @@ verify_password(char *auth_arg, char *user, char *password) strcat(pw_file_fullname, "/"); strcat(pw_file_fullname, auth_arg); -#ifndef __CYGWIN32__ - pw_file = AllocateFile(pw_file_fullname, "r"); -#else - pw_file = AllocateFile(pw_file_fullname, "rb"); -#endif + pw_file = AllocateFile(pw_file_fullname, PG_BINARY_R); if (!pw_file) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index f4fb191700..44c1dd91a0 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -29,7 +29,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pqcomm.c,v 1.93 2000/05/31 00:28:18 petere Exp $ + * $Id: pqcomm.c,v 1.94 2000/06/02 15:57:21 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -234,11 +234,7 @@ StreamServerPort(char *hostName, unsigned short portName, int *fdP) * can safely delete the file. */ #ifdef HAVE_FCNTL_SETLK -#ifndef __CYGWIN32__ - if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK, 0666)) >= 0) -#else - if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | O_BINARY, 0666)) >= 0) -#endif + if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | PG_BINARY, 0666)) >= 0) { struct flock lck; @@ -287,11 +283,7 @@ StreamServerPort(char *hostName, unsigned short portName, int *fdP) * lock_fd is left open to keep the lock. */ #ifdef HAVE_FCNTL_SETLK -#ifndef __CYGWIN32__ - if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK, 0666)) >= 0) -#else - if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | O_BINARY, 0666)) >= 0) -#endif + if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | PG_BINARY, 0666)) >= 0) { struct flock lck; diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 729ade2db6..bad51715b2 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.144 2000/05/31 00:28:25 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.145 2000/06/02 15:57:22 momjian Exp $ * * NOTES * @@ -327,11 +327,7 @@ checkDataDir(const char *DataDir, bool *DataDirOK) snprintf(path, sizeof(path), "%s%cbase%ctemplate1%cpg_class", DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR); -#ifndef __CYGWIN32__ - fp = AllocateFile(path, "r"); -#else - fp = AllocateFile(path, "rb"); -#endif + fp = AllocateFile(path, PG_BINARY_R); if (fp == NULL) { fprintf(stderr, "%s does not find the database system. " @@ -433,7 +429,7 @@ PostmasterMain(int argc, char *argv[]) */ umask((mode_t) 0077); - ResetAllOptions(); + ResetAllOptions(); if (!(hostName = getenv("PGHOST"))) { @@ -445,10 +441,10 @@ PostmasterMain(int argc, char *argv[]) MyProcPid = getpid(); DataDir = getenv("PGDATA"); /* default value */ - /* - * First we must scan for a -D argument to get the data dir. Then - * read the config file. Finally, scan all the other arguments. - * (Command line switches override config file.) + /* + * First we must scan for a -D argument to get the data dir. Then + * read the config file. Finally, scan all the other arguments. + * (Command line switches override config file.) * * Note: The two lists of options must be exactly the same, even * though perhaps the first one would only have to be "D:" with @@ -457,15 +453,15 @@ PostmasterMain(int argc, char *argv[]) * to the local world view) which will result in some switches * being associated with the wrong argument. Death and destruction * will occur. - */ + */ opterr = 1; while ((opt = getopt(nonblank_argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF) - { - if (opt == 'D') - DataDir = optarg; - } + { + if (opt == 'D') + DataDir = optarg; + } - optind = 1; /* start over */ + optind = 1; /* start over */ checkDataDir(DataDir, &DataDirOK); /* issues error messages */ if (!DataDirOK) { @@ -473,7 +469,7 @@ PostmasterMain(int argc, char *argv[]) exit(2); } - ProcessConfigFile(PGC_POSTMASTER); + ProcessConfigFile(PGC_POSTMASTER); IgnoreSystemIndexes(false); while ((opt = getopt(nonblank_argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF) @@ -511,7 +507,7 @@ PostmasterMain(int argc, char *argv[]) } break; case 'D': - /* already done above */ + /* already done above */ break; case 'd': @@ -521,9 +517,9 @@ PostmasterMain(int argc, char *argv[]) */ DebugLvl = atoi(optarg); break; - case 'F': - enableFsync = false; - break; + case 'F': + enableFsync = false; + break; case 'i': NetServer = true; break; @@ -593,21 +589,21 @@ PostmasterMain(int argc, char *argv[]) */ SendStop = true; break; - case '-': - { - /* A little 'long argument' simulation */ - size_t equal_pos = strcspn(optarg, "="); - char *cp; - - if (optarg[equal_pos] != '=') - elog(ERROR, "--%s requires argument", optarg); - optarg[equal_pos] = '\0'; - for(cp = optarg; *cp; cp++) - if (*cp == '-') - *cp = '_'; - SetConfigOption(optarg, optarg + equal_pos + 1, PGC_POSTMASTER); - break; - } + case '-': + { + /* A little 'long argument' simulation */ + size_t equal_pos = strcspn(optarg, "="); + char *cp; + + if (optarg[equal_pos] != '=') + elog(ERROR, "--%s requires argument", optarg); + optarg[equal_pos] = '\0'; + for(cp = optarg; *cp; cp++) + if (*cp == '-') + *cp = '_'; + SetConfigOption(optarg, optarg + equal_pos + 1, PGC_POSTMASTER); + break; + } default: /* usage() never returns */ usage(progname); @@ -839,11 +835,7 @@ pmdaemonize(char *extraoptions) exit(1); } #endif -#ifndef __CYGWIN32__ - i = open(NULL_DEV, O_RDWR); -#else - i = open(NULL_DEV, O_RDWR | O_BINARY); -#endif + i = open(NULL_DEV, O_RDWR | PG_BINARY); dup2(i, 0); dup2(i, 1); dup2(i, 2); diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index 2d0d733a7c..fdb2fc57a5 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.58 2000/06/02 03:58:32 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.59 2000/06/02 15:57:24 momjian Exp $ * * NOTES: * @@ -701,14 +701,8 @@ OpenTemporaryFile(void) "pg_sorttemp%d.%ld", MyProcPid, tempFileCounter++); /* Open the file */ -#ifndef __CYGWIN32__ file = FileNameOpenFile(tempfilename, - O_RDWR | O_CREAT | O_TRUNC, 0600); -#else - file = FileNameOpenFile(tempfilename, - O_RDWR | O_CREAT | O_TRUNC | O_BINARY, 0600); -#endif - + O_RDWR | O_CREAT | O_TRUNC | PG_BINARY, 0600); if (file <= 0) elog(ERROR, "Failed to create temporary file %s", tempfilename); diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 4c1cac5472..81fe7fd667 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.69 2000/06/02 03:58:33 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.70 2000/06/02 15:57:26 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -131,11 +131,7 @@ mdcreate(Relation reln) Assert(reln->rd_unlinked && reln->rd_fd < 0); path = relpath(RelationGetPhysicalRelationName(reln)); -#ifndef __CYGWIN32__ - fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL, 0600); -#else - fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600); -#endif + fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, 0600); /* * During bootstrap processing, we skip that check, because pg_time, @@ -155,11 +151,7 @@ mdcreate(Relation reln) reln->rd_rel->relkind == RELKIND_UNCATALOGED) return -1; -#ifndef __CYGWIN32__ - fd = FileNameOpenFile(path, O_RDWR, 0600); -#else - fd = FileNameOpenFile(path, O_RDWR | O_BINARY, 0600); -#endif + fd = FileNameOpenFile(path, O_RDWR | PG_BINARY, 0600); if (fd < 0) return -1; if (!IsBootstrapProcessingMode()) @@ -332,23 +324,12 @@ mdopen(Relation reln) Assert(reln->rd_fd < 0); path = relpath(RelationGetPhysicalRelationName(reln)); -#ifndef __CYGWIN32__ - fd = FileNameOpenFile(path, O_RDWR, 0600); -#else - fd = FileNameOpenFile(path, O_RDWR | O_BINARY, 0600); -#endif - + fd = FileNameOpenFile(path, O_RDWR | PG_BINARY, 0600); if (fd < 0) { /* in bootstrap mode, accept mdopen as substitute for mdcreate */ if (IsBootstrapProcessingMode()) - { -#ifndef __CYGWIN32__ - fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL, 0600); -#else - fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600); -#endif - } + fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, 0600); if (fd < 0) { elog(NOTICE, "mdopen: couldn't open %s: %m", path); @@ -1004,11 +985,7 @@ _mdfd_openseg(Relation reln, int segno, int oflags) fullpath = path; /* open the file */ -#ifndef __CYGWIN32__ - fd = FileNameOpenFile(fullpath, O_RDWR | oflags, 0600); -#else - fd = FileNameOpenFile(fullpath, O_RDWR | O_BINARY | oflags, 0600); -#endif + fd = FileNameOpenFile(fullpath, O_RDWR | PG_BINARY | oflags, 0600); pfree(fullpath); @@ -1130,12 +1107,7 @@ _mdfd_blind_getseg(char *dbname, char *relname, Oid dbid, Oid relid, #endif /* call fd.c to allow other FDs to be closed if needed */ -#ifndef __CYGWIN32__ - fd = BasicOpenFile(path, O_RDWR, 0600); -#else - fd = BasicOpenFile(path, O_RDWR | O_BINARY, 0600); -#endif - + fd = BasicOpenFile(path, O_RDWR | PG_BINARY, 0600); if (fd < 0) elog(DEBUG, "_mdfd_blind_getseg: couldn't open %s: %m", path); diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 6e6d32e08d..2736f92555 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.54 2000/05/30 04:24:50 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.55 2000/06/02 15:57:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -549,11 +549,7 @@ _ReadLOArray(char *str, { FILE *afd; -#ifndef __CYGWIN32__ - if ((afd = AllocateFile(accessfile, "r")) == NULL) -#else - if ((afd = AllocateFile(accessfile, "r")) == NULL) -#endif + if ((afd = AllocateFile(accessfile, PG_BINARY_R)) == NULL) elog(ERROR, "unable to open access pattern file"); *chunkFlag = true; retStr = _ChunkArray(*fd, afd, ndim, dim, baseSize, nbytes, diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 02a6f0e24c..fe397ca850 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.98 2000/05/30 00:49:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.99 2000/06/02 15:57:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -2122,11 +2122,7 @@ init_irels(void) int i; int relno; -#ifndef __CYGWIN32__ - if ((fd = FileNameOpenFile(RELCACHE_INIT_FILENAME, O_RDONLY, 0600)) < 0) -#else - if ((fd = FileNameOpenFile(RELCACHE_INIT_FILENAME, O_RDONLY | O_BINARY, 0600)) < 0) -#endif + if ((fd = FileNameOpenFile(RELCACHE_INIT_FILENAME, O_RDONLY | PG_BINARY, 0600)) < 0) { write_irels(); return; @@ -2292,11 +2288,7 @@ write_irels(void) snprintf(finalfilename, sizeof(finalfilename), "%s%c%s", DatabasePath, SEP_CHAR, RELCACHE_INIT_FILENAME); -#ifndef __CYGWIN32__ - fd = PathNameOpenFile(tempfilename, O_WRONLY | O_CREAT | O_TRUNC, 0600); -#else - fd = PathNameOpenFile(tempfilename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0600); -#endif + fd = PathNameOpenFile(tempfilename, O_WRONLY | O_CREAT | O_TRUNC | PG_BINARY, 0600); if (fd < 0) elog(FATAL, "cannot create init file %s", tempfilename); diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index c92b79ff07..3f3d4b166d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.46 2000/05/02 08:13:08 ishii Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.47 2000/06/02 15:57:32 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -207,11 +207,7 @@ SetCharSet() map_file = (char *) malloc((strlen(DataDir) + strlen(p) + 2) * sizeof(char)); sprintf(map_file, "%s/%s", DataDir, p); -#ifndef __CYGWIN32__ - file = AllocateFile(map_file, "r"); -#else - file = AllocateFile(map_file, "rb"); -#endif + file = AllocateFile(map_file, PG_BINARY_R); if (file == NULL) return; eof = false; diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c index 64347f00fe..a66c6a719e 100644 --- a/src/backend/utils/misc/database.c +++ b/src/backend/utils/misc/database.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.37 2000/04/12 17:16:07 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.38 2000/06/02 15:57:34 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -146,11 +146,7 @@ GetRawDatabaseInfo(const char *name, Oid *db_id, char *path) dbfname = (char *) palloc(strlen(DataDir) + strlen(DatabaseRelationName) + 2); sprintf(dbfname, "%s%c%s", DataDir, SEP_CHAR, DatabaseRelationName); -#ifndef __CYGWIN32__ - if ((dbfd = open(dbfname, O_RDONLY, 0)) < 0) -#else - if ((dbfd = open(dbfname, O_RDONLY | O_BINARY, 0)) < 0) -#endif + if ((dbfd = open(dbfname, O_RDONLY | PG_BINARY, 0)) < 0) elog(FATAL, "cannot open %s: %s", dbfname, strerror(errno)); pfree(dbfname); diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 12eed92452..407413160a 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -22,7 +22,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.148 2000/05/28 20:34:52 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.149 2000/06/02 15:57:38 momjian Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -760,11 +760,7 @@ main(int argc, char **argv) g_fout = stdout; else { -#ifndef __CYGWIN32__ - g_fout = fopen(filename, "w"); -#else - g_fout = fopen(filename, "wb"); -#endif + g_fout = fopen(filename, PG_BINARY_W); if (g_fout == NULL) { fprintf(stderr, diff --git a/src/bin/pg_passwd/pg_passwd.c b/src/bin/pg_passwd/pg_passwd.c index f5edf552eb..b8d1aae97a 100644 --- a/src/bin/pg_passwd/pg_passwd.c +++ b/src/bin/pg_passwd/pg_passwd.c @@ -54,11 +54,7 @@ read_pwd_file(char *filename) int i; try_again: -#ifndef __CYGWIN32__ - fp = fopen(filename, "r"); -#else - fp = fopen(filename, "rb"); -#endif + fp = fopen(filename, PG_BINARY_R); if (fp == NULL) { if (errno == ENOENT) @@ -70,11 +66,7 @@ try_again: { case 'y': case 'Y': -#ifndef __CYGWIN32__ - fp = fopen(filename, "w"); -#else - fp = fopen(filename, "wb"); -#endif + fp = fopen(filename, PG_BINARY_W); if (fp == NULL) { perror(filename); @@ -192,11 +184,7 @@ link_again: } /* open file */ -#ifndef __CYGWIN32__ - if ((fp = fopen(filename, "w")) == NULL) -#else - if ((fp = fopen(filename, "wb")) == NULL) -#endif + if ((fp = fopen(filename, PG_BINARY_W)) == NULL) { perror(filename); exit(1); diff --git a/src/include/c.h b/src/include/c.h index 13ac2cfcd1..be6f4dad65 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: c.h,v 1.70 2000/05/28 17:56:09 tgl Exp $ + * $Id: c.h,v 1.71 2000/06/02 15:57:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -50,6 +50,7 @@ #include #include #include +#include #ifdef STDC_HEADERS #include #include @@ -895,6 +896,16 @@ extern char *vararg_format(const char *fmt,...); * ---------------------------------------------------------------- */ +#ifndef __CYGWIN32__ +#define PG_BINARY 0 +#define PG_BINARY_R "rb" +#define PG_BINARY_W "wb" +#else +#define PG_BINARY O_BINARY +#define PG_BINARY_R "r" +#define PG_BINARY_W "w" +#endif + #ifdef FIXADE #if defined(hpux) #include "port/hpux/fixade.h" /* for unaligned access fixup */ diff --git a/src/include/postgres.h b/src/include/postgres.h index ee02a3c0c3..c64eab2cc4 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1995, Regents of the University of California * - * $Id: postgres.h,v 1.39 2000/05/28 17:56:12 tgl Exp $ + * $Id: postgres.h,v 1.40 2000/06/02 15:57:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -229,7 +229,6 @@ typedef uint32 CommandId; */ #ifdef CYR_RECODE extern void SetCharSet(); - #endif /* CYR_RECODE */ #endif /* POSTGRES_H */ diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index 1cc00dbcc7..f6db59bec7 100644 --- a/src/interfaces/ecpg/preproc/ecpg.c +++ b/src/interfaces/ecpg/preproc/ecpg.c @@ -66,11 +66,7 @@ main(int argc, char *const argv[]) switch (c) { case 'o': -#ifndef __CYGWIN32__ - yyout = fopen(optarg, "w"); -#else - yyout = fopen(optarg, "wb"); -#endif + yyout = fopen(optarg, PG_BINARY_W); if (yyout == NULL) perror(optarg); else @@ -147,11 +143,7 @@ main(int argc, char *const argv[]) ptr2ext[1] = 'c'; ptr2ext[2] = '\0'; -#ifndef __CYGWIN32__ - yyout = fopen(output_filename, "w"); -#else - yyout = fopen(output_filename, "wb"); -#endif + yyout = fopen(output_filename, PG_BINARY_W); if (yyout == NULL) { perror(output_filename); @@ -161,11 +153,7 @@ main(int argc, char *const argv[]) } } -#ifndef __CYGWIN32__ - yyin = fopen(input_filename, "r"); -#else - yyin = fopen(input_filename, "rb"); -#endif + yyin = fopen(input_filename, PG_BINARY_R); if (yyin == NULL) perror(argv[fnr]); else diff --git a/src/interfaces/libpq/fe-lobj.c b/src/interfaces/libpq/fe-lobj.c index 23b9ffb09c..859a383c71 100644 --- a/src/interfaces/libpq/fe-lobj.c +++ b/src/interfaces/libpq/fe-lobj.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-lobj.c,v 1.29 2000/04/12 17:17:15 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-lobj.c,v 1.30 2000/06/02 15:57:42 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -391,11 +391,7 @@ lo_import(PGconn *conn, const char *filename) /* * open the file to be read in */ -#ifndef __CYGWIN32__ - fd = open(filename, O_RDONLY, 0666); -#else - fd = open(filename, O_RDONLY | O_BINARY, 0666); -#endif + fd = open(filename, O_RDONLY | PG_BINARY, 0666); if (fd < 0) { /* error */ printfPQExpBuffer(&conn->errorMessage, @@ -474,11 +470,7 @@ lo_export(PGconn *conn, Oid lobjId, const char *filename) /* * open the file to be written to */ -#ifndef __CYGWIN32__ - fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0666); -#else - fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666); -#endif + fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC | PG_BINARY, 0666); if (fd < 0) { /* error */ printfPQExpBuffer(&conn->errorMessage, @@ -544,7 +536,7 @@ lo_initialize(PGconn *conn) * ---------------- */ res = PQexec(conn, "select proname, oid from pg_proc \ - where proname = 'lo_open' \ + where proname = 'lo_open' \ or proname = 'lo_close' \ or proname = 'lo_creat' \ or proname = 'lo_unlink' \ diff --git a/src/interfaces/odbc/gpps.c b/src/interfaces/odbc/gpps.c index c1675fd7b4..55c22c3dd2 100644 --- a/src/interfaces/odbc/gpps.c +++ b/src/interfaces/odbc/gpps.c @@ -59,7 +59,7 @@ GetPrivateProfileString(char *theSection, /* section name */ BOOL aSectionFound = FALSE; BOOL aKeyFound = FALSE; int j = 0; - + j = strlen(theIniFileName) + 1; ptr = (char*)getpwuid(getuid()); /* get user info */ @@ -92,21 +92,13 @@ GetPrivateProfileString(char *theSection, /* section name */ /* This code makes it so that a file in the users home dir * overrides a the "default" file as passed in */ -#ifndef __CYGWIN32__ - aFile = (FILE*)(buf ? fopen(buf, "r") : NULL); -#else - aFile = (FILE*)(buf ? fopen(buf, "rb") : NULL); -#endif + aFile = (FILE*)(buf ? fopen(buf, PG_BINARY_R) : NULL); if(!aFile) { sprintf(buf,"%s",theIniFileName); -#ifndef __CYGWIN32__ - aFile = (FILE*)(buf ? fopen(buf, "r") : NULL); -#else - aFile = (FILE*)(buf ? fopen(buf, "rb") : NULL); -#endif + aFile = (FILE*)(buf ? fopen(buf, PG_BINARY_R) : NULL); } - + aLength = (theDefault == NULL) ? 0 : strlen(theDefault); if(theReturnBufferLength == 0 || theReturnBuffer == NULL) @@ -145,7 +137,7 @@ GetPrivateProfileString(char *theSection, /* section name */ case ';': /* comment line */ continue; break; - + case '[': /* section marker */ if( (aString = strchr(aLine, ']')) ) @@ -173,7 +165,7 @@ GetPrivateProfileString(char *theSection, /* section name */ if(aSectionFound) { /* try to match requested key */ - + if( (aString = aValue = strchr(aLine, '=')) ) { *aValue = '\0'; @@ -220,7 +212,7 @@ GetPrivateProfileString(char *theSection, /* section name */ /* remove trailing blanks from aValue if any */ aString = aValue + aLength - 1; - + while(--aString > aValue && *aString == ' ') { *aString = '\0'; @@ -333,9 +325,9 @@ WritePrivateProfileString(char *theSection, /* section name */ BOOL aSectionFound = FALSE; BOOL keyFound = FALSE; int j = 0; - + /* If this isn't correct processing we'll change it later */ - if(theSection == NULL || theKey == NULL || theBuffer == NULL || + if(theSection == NULL || theKey == NULL || theBuffer == NULL || theIniFileName == NULL) return 0; aLength = strlen(theBuffer); @@ -380,7 +372,7 @@ WritePrivateProfileString(char *theSection, /* section name */ if(!aFile) return 0; } - + aLength = strlen(theBuffer); /* We have to search for theKey, because if it already */ @@ -401,7 +393,7 @@ WritePrivateProfileString(char *theSection, /* section name */ case ';': /* comment line */ continue; break; - + case '[': /* section marker */ if( (aString = strchr(aLine, ']')) ) @@ -425,7 +417,7 @@ WritePrivateProfileString(char *theSection, /* section name */ if(aSectionFound) { /* try to match requested key */ - + if( (aString = aValue = strchr(aLine, '=')) ) { *aValue = '\0'; diff --git a/src/interfaces/odbc/misc.c b/src/interfaces/odbc/misc.c index 9c3c009b60..5d0a19c375 100644 --- a/src/interfaces/odbc/misc.c +++ b/src/interfaces/odbc/misc.c @@ -68,11 +68,7 @@ mylog(char * fmt, ...) if (! LOGFP) { generate_filename(MYLOGDIR,MYLOGFILE,filebuf); -#ifndef __CYGWIN32__ - LOGFP = fopen(filebuf, "w"); -#else - LOGFP = fopen(filebuf, "wb"); -#endif + LOGFP = fopen(filebuf, PG_BINARY_W); globals.mylogFP = LOGFP; setbuf(LOGFP, NULL); } @@ -100,11 +96,7 @@ qlog(char * fmt, ...) if (! LOGFP) { generate_filename(QLOGDIR,QLOGFILE,filebuf); -#ifndef __CYGWIN32__ - LOGFP = fopen(filebuf, "w"); -#else - LOGFP = fopen(filebuf, "wb"); -#endif + LOGFP = fopen(filebuf, PG_BINARY_W); globals.qlogFP = LOGFP; setbuf(LOGFP, NULL); } @@ -136,9 +128,9 @@ qlog(char * fmt, ...) #include #endif - + /* returns STRCPY_FAIL, STRCPY_TRUNCATED, or #bytes copied (not including null term) */ -int +int my_strcpy(char *dst, int dst_len, char *src, int src_len) { if (dst_len <= 0) @@ -146,7 +138,7 @@ my_strcpy(char *dst, int dst_len, char *src, int src_len) if (src_len == SQL_NULL_DATA) { dst[0] = '\0'; - return STRCPY_NULL; + return STRCPY_NULL; } else if (src_len == SQL_NTS) src_len = strlen(src); @@ -154,12 +146,12 @@ my_strcpy(char *dst, int dst_len, char *src, int src_len) if (src_len <= 0) return STRCPY_FAIL; - else { + else { if (src_len < dst_len) { memcpy(dst, src, src_len); dst[src_len] = '\0'; } - else { + else { memcpy(dst, src, dst_len-1); dst[dst_len-1] = '\0'; /* truncated */ return STRCPY_TRUNCATED; @@ -184,7 +176,7 @@ int i; if (len == SQL_NULL_DATA) { dst[0] = '\0'; return NULL; - } + } else if (len == SQL_NTS) len = strlen(src) + 1; @@ -208,7 +200,7 @@ make_string(char *s, int len, char *buf) int length; char *str; - if(s && (len > 0 || (len == SQL_NTS && strlen(s) > 0))) { + if(s && (len > 0 || (len == SQL_NTS && strlen(s) > 0))) { length = (len > 0) ? len : strlen(s); if (buf) { @@ -216,11 +208,11 @@ char *str; return buf; } - str = malloc(length + 1); + str = malloc(length + 1); if ( ! str) return NULL; - strncpy_null(str, s, length+1); + strncpy_null(str, s, length+1); return str; } @@ -235,7 +227,7 @@ char * my_strcat(char *buf, char *fmt, char *s, int len) { - if (s && (len > 0 || (len == SQL_NTS && strlen(s) > 0))) { + if (s && (len > 0 || (len == SQL_NTS && strlen(s) > 0))) { int length = (len > 0) ? len : strlen(s); int pos = strlen(buf); @@ -248,14 +240,14 @@ my_strcat(char *buf, char *fmt, char *s, int len) void remove_newlines(char *string) { - unsigned int i; - - for(i=0; i < strlen(string); i++) { - if((string[i] == '\n') || - (string[i] == '\r')) { - string[i] = ' '; - } - } + unsigned int i; + + for(i=0; i < strlen(string); i++) { + if((string[i] == '\n') || + (string[i] == '\r')) { + string[i] = ' '; + } + } } char * diff --git a/src/utils/version.c b/src/utils/version.c index 0797280caf..6f3d2f394a 100644 --- a/src/utils/version.c +++ b/src/utils/version.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/utils/Attic/version.c,v 1.15 2000/04/12 17:17:22 momjian Exp $ + * $Header: /cvsroot/pgsql/src/utils/Attic/version.c,v 1.16 2000/06/02 15:57:44 momjian Exp $ * * STANDALONE CODE - do not use error routines as this code is not linked * with any... @@ -67,11 +67,7 @@ ValidatePgVersion(const char *path, char **reason_p) sprintf(myversion, "%s.%s\n", PG_RELEASE, PG_VERSION); -#ifndef __CYGWIN32__ - if ((fd = open(full_path, O_RDONLY, 0)) == -1) -#else - if ((fd = open(full_path, O_RDONLY | O_BINARY, 0)) == -1) -#endif + if ((fd = open(full_path, O_RDONLY | PG_BINARY, 0)) == -1) { *reason_p = malloc(100 + strlen(full_path)); sprintf(*reason_p, "File '%s' does not exist or no read permission.", full_path); @@ -125,11 +121,7 @@ SetPgVersion(const char *path, char **reason_p) sprintf(version, "%s.%s\n", PG_RELEASE, PG_VERSION); -#ifndef __CYGWIN32__ - fd = open(full_path, O_WRONLY | O_CREAT | O_EXCL, 0666); -#else - fd = open(full_path, O_WRONLY | O_CREAT | O_EXCL | O_BINARY, 0666); -#endif + fd = open(full_path, O_WRONLY | O_CREAT | O_EXCL | PG_BINARY, 0666); if (fd < 0) { *reason_p = malloc(100 + strlen(full_path)); -- GitLab