diff --git a/HISTORY b/HISTORY index 0fdf5a43f1dfc7c15b64ffee0ad9db30fbec484e..784b09adb06cbe9c0fe293a30026a734ce04c7fe 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 84c312852946c46ad39494be49c2c7b69823f81e..d735100de0ee42950e8413749734a2a921f3bb4e 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 dc7401be89ec80bbf814d493f3cc38757d68fe0e..6c3fc619d51b168be5490866bb3aaf20fa9ae6c6 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 13e76176c29fc1cb632c62de6938c1f6de9f6662..87b492fbb94f4ca32341a17fbe6e1c926944717f 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 a0e19903bce996bdd3c6eb2285e8f98c093b0e25..de38255b00bfeee6c7f8fc7a7c3fdfaf78eeb936 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 ca75cfefb1815981764ba6a0a4ee107c3b2d1e38..1eaa166995b66417eb923f8ed0723339bf86afde 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 fe8a3223c1dc02d8863745e9572808bdf0ea53d9..adba62242ab96393bd35bdb91a021aceeda23f44 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 1ac73fa0ea4b16431b5910c0cb41dc79c440b286..c41ed08bd7deb129251415ff2e96efcd35a04451 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 7c3bd35e243efe02c66fa9a821d1c970cf55b94e..ce084b1a60e06b622bbfb6cb75544a94ef7e0e42 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 2bdf5fbf4b416e2704e863f0f1d89bcb5c6f18c3..61c6b9f43614031f4e98470b11a276b732e11bbc 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 9fc715a9a28b48562ecf87180a1eda791ccb9227..c7656f8b98fa078efb89f3ddbb04cefc0cfd1f57 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 f4fb1917009bc2eda9603921c932faca4612a3c3..44c1dd91a01603258f1f3eaec5ec9c2c19459fff 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 729ade2db6c7f5fe8b5cd4f4956112fe2aa61272..bad51715b2835741fff13a76d032f9dfd3f550e3 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 2d0d733a7c321ad0e47b626b230a2db77466e2ad..fdb2fc57a59d5e6d52bcb2000dfe2381967005fa 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 4c1cac547249e8bed7701b39ed636cb88ce3334c..81fe7fd667ea353945bedd3a8777d9db5e0655fe 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 6e6d32e08dab4b035012ab4a8365884b147a604d..2736f92555cde96fcb7512f7fa7d67f5955110c9 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 02a6f0e24c3f1420fb05efe0c46395e331615871..fe397ca8508a61b567e679379594d76c00e69568 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 c92b79ff07ef3c239aacfef207de9a30fb7bae5a..3f3d4b166d5a45111a708f983155815d462d5dd8 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 64347f00fee7442ed281a6a39849a061b73fccfb..a66c6a719e4435d0ac93bdd65cb5d29d2747bda7 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 12eed9245252f19ef7a7c1cc47f4e2d99c48ebb3..407413160aa3550bbc4dd3075a4cadbb0d871f12 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 f5edf552ebfde2c260077c44e765201d6ccca0cb..b8d1aae97ac55c61125789048aee4b88fd99bd32 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 13ac2cfcd1bda9a5efbc267949f3bbd4ebf1e5a2..be6f4dad65c3a65f3d0751213acce49b75a5951b 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 ee02a3c0c38a77331bcdd860420bc88a829801d6..c64eab2cc469315a8e2eec529c1db4b2879bc2d2 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 1cc00dbcc7cb01925b117202614c3b34b2be89c6..f6db59bec74628c072fc438f70398a476d461314 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 23b9ffb09c0b8384fcd5cf6e47858337a658e9ad..859a383c710ab1324eb3064e5bfb451126fa86c8 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 c1675fd7b4b0e5521f1240ab3f94b09acf62e5f3..55c22c3dd2f8849401928b3d3e958d4e51afd82c 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 9c3c009b60ce0f54430cc0c78e41d22a0f817360..5d0a19c375e5dd9d39395480d42a5c16978496b0 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 0797280caf6a0e263268e10e94099e65b92d528f..6f3d2f394ac772f4e959ca293573f07022d16200 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));