Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 53EC42E0039 for ; Thu, 27 Mar 2008 09:31:38 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 73812-07 for ; Thu, 27 Mar 2008 09:31:29 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.5 Received: from mail.transas.com (mail.transas.com [82.140.75.150]) by postgresql.org (Postfix) with ESMTP id 50D5E2E0031 for ; Thu, 27 Mar 2008 09:31:28 -0300 (ADT) Received: from sol.transas.com (sol.transas.com [10.10.0.20]) by mail.transas.com (Postfix) with ESMTP id D22FF509365; Thu, 27 Mar 2008 15:30:01 +0300 (MSK) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C89006.46FCD90C" X-MimeOLE: Produced By Microsoft Exchange V6.5 Subject: Re: [DOCS] pg_total_relation_size() and CHECKPOINT Date: Thu, 27 Mar 2008 15:30:01 +0300 Message-ID: <528853D3C5ED2C4AA8990B504BA7FB850106DF2A@sol.transas.com> In-Reply-To: <968.1206591222@sss.pgh.pa.us> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [HACKERS] [DOCS] pg_total_relation_size() and CHECKPOINT Thread-Index: AciPwP7PV+PgMF+dS7yGm7HNs7L5PQAQ2M4Q From: "Zubkovsky, Sergey" To: "Tom Lane" , "Andrew Dunstan" Cc: "Alvaro Herrera" , "Gregory Stark" , , "Magnus Hagander" X-Transas-MailScanner: Found to be clean X-Transas-MailScanner-From: sergey.zubkovsky@transas.com X-Transas-MailScanner-To: alvherre@commandprompt.com, andrew@dunslane.net, magnus@hagander.net, pgsql-hackers@postgresql.org, stark@enterprisedb.com, tgl@sss.pgh.pa.us X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200803/1099 X-Sequence-Number: 115900 This is a multi-part message in MIME format. ------_=_NextPart_001_01C89006.46FCD90C Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Maybe this helps: "It is not an error to set a file pointer to a position beyond the end of the file. The size of the file does not increase until you call the SetEndOfFile, WriteFile, or WriteFileEx function. A write operation increases the size of the file to the file pointer position plus the size of the buffer written, which results in the intervening bytes uninitialized." http://msdn2.microsoft.com/en-us/library/aa365541(VS.85).aspx According to Windows' lseek implementation (attached) SetEndOfFile() isn't called for this case. Thanks, Sergey Zubkovsky -----Original Message----- From: Tom Lane [mailto:tgl@sss.pgh.pa.us]=20 Sent: Thursday, March 27, 2008 7:14 AM To: Andrew Dunstan Cc: Alvaro Herrera; Gregory Stark; Zubkovsky, Sergey; pgsql-hackers@postgresql.org; Magnus Hagander Subject: Re: [HACKERS] [DOCS] pg_total_relation_size() and CHECKPOINT Andrew Dunstan writes: > I suspect that the size reported by stat() is a little delayed here, but=20 > the file system is keeping proper track of it, so the lseek that tries > to extend the file fails at the right spot. Hmm. If it really works that way, one would hope Microsoft would've documented that someplace. Can anyone find a statement that Windows' stat() is not current? regards, tom lane ------_=_NextPart_001_01C89006.46FCD90C Content-Type: application/octet-stream; name="lseek.c" Content-Transfer-Encoding: base64 Content-Description: lseek.c Content-Disposition: attachment; filename="lseek.c" LyoqKg0KKmxzZWVrLmMgLSBjaGFuZ2UgZmlsZSBwb3NpdGlvbg0KKg0KKiAgICAgICBDb3B5cmln aHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCioNCipQ dXJwb3NlOg0KKiAgICAgICBkZWZpbmVzIF9sc2VlaygpIC0gbW92ZSB0aGUgZmlsZSBwb2ludGVy DQoqDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQojaW5jbHVkZSA8Y3J1bnRpbWUuaD4NCiNp bmNsdWRlIDxvc2NhbGxzLmg+DQojaW5jbHVkZSA8bXRkbGwuaD4NCiNpbmNsdWRlIDxpby5oPg0K I2luY2x1ZGUgPGludGVybmFsLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5jbHVkZSA8ZXJy bm8uaD4NCiNpbmNsdWRlIDxtc2Rvcy5oPg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQoNCi8qKioNCips b25nIF9sc2VlayhmaCxwb3MsbXRoZCkgLSBtb3ZlIHRoZSBmaWxlIHBvaW50ZXINCioNCipQdXJw b3NlOg0KKiAgICAgICBNb3ZlcyB0aGUgZmlsZSBwb2ludGVyIGFzc29jaWF0ZWQgd2l0aCBmaCB0 byBhIG5ldyBwb3NpdGlvbi4NCiogICAgICAgVGhlIG5ldyBwb3NpdGlvbiBpcyBwb3MgYnl0ZXMg KHBvcyBtYXkgYmUgbmVnYXRpdmUpIGF3YXkNCiogICAgICAgZnJvbSB0aGUgb3JpZ2luIHNwZWNp ZmllZCBieSBtdGhkLg0KKg0KKiAgICAgICBJZiBtdGhkID09IFNFRUtfU0VULCB0aGUgb3JpZ2lu IGluIHRoZSBiZWdpbm5pbmcgb2YgZmlsZQ0KKiAgICAgICBJZiBtdGhkID09IFNFRUtfQ1VSLCB0 aGUgb3JpZ2luIGlzIHRoZSBjdXJyZW50IGZpbGUgcG9pbnRlciBwb3NpdGlvbg0KKiAgICAgICBJ ZiBtdGhkID09IFNFRUtfRU5ELCB0aGUgb3JpZ2luIGlzIHRoZSBlbmQgb2YgdGhlIGZpbGUNCioN CiogICAgICAgTXVsdGktdGhyZWFkOg0KKiAgICAgICBfbHNlZWsoKSAgICA9IGxvY2tzL3VubG9j a3MgdGhlIGZpbGUNCiogICAgICAgX2xzZWVrX25vbG9jaygpID0gZG9lcyBOT1QgbG9jay91bmxv Y2sgdGhlIGZpbGUgKGl0IGlzIGFzc3VtZWQgdGhhdA0KKiAgICAgICAgICAgICAgICAgICAgIHRo ZSBjYWxsZXIgaGFzIHRoZSBhcXVpcmVkIHRoZSBmaWxlIGxvY2ssaWYgbmVlZGVkKS4NCioNCipF bnRyeToNCiogICAgICAgaW50IGZoIC0gZmlsZSBoYW5kbGUgdG8gbW92ZSBmaWxlIHBvaW50ZXIg b24NCiogICAgICAgbG9uZyBwb3MgLSBwb3NpdGlvbiB0byBtb3ZlIHRvLCByZWxhdGl2ZSB0byBv cmlnaW4NCiogICAgICAgaW50IG10aGQgLSBzcGVjaWZpZXMgdGhlIG9yaWdpbiBwb3MgaXMgcmVs YXRpdmUgdG8gKHNlZSBhYm92ZSkNCioNCipFeGl0Og0KKiAgICAgICByZXR1cm5zIHRoZSBvZmZz ZXQsIGluIGJ5dGVzLCBvZiB0aGUgbmV3IHBvc2l0aW9uIGZyb20gdGhlIGJlZ2lubmluZw0KKiAg ICAgICBvZiB0aGUgZmlsZS4NCiogICAgICAgcmV0dXJucyAtMUwgKGFuZCBzZXRzIGVycm5vKSBp ZiBmYWlscy4NCiogICAgICAgTm90ZSB0aGF0IHNlZWtpbmcgYmV5b25kIHRoZSBlbmQgb2YgdGhl IGZpbGUgaXMgbm90IGFuIGVycm9yLg0KKiAgICAgICAoYWx0aG91Z2ggc2Vla2luZyBiZWZvcmUg dGhlIGJlZ2lubmluZyBpcy4pDQoqDQoqRXhjZXB0aW9uczoNCioNCioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovDQoNCg0KLyogZGVmaW5lIGxvY2tpbmcvdmFsaWRhdGluZyBsc2VlayAqLw0KbG9uZyBf X2NkZWNsIF9sc2VlayAoDQogICAgICAgIGludCBmaCwNCiAgICAgICAgbG9uZyBwb3MsDQogICAg ICAgIGludCBtdGhkDQogICAgICAgICkNCnsNCiAgICAgICAgaW50IHI7DQoNCiAgICAgICAgLyog dmFsaWRhdGUgZmggKi8NCiAgICAgICAgX0NIRUNLX0ZIX0NMRUFSX09TU0VSUl9SRVRVUk4oIGZo LCBFQkFERiwgLTEgKTsNCiAgICAgICAgX1ZBTElEQVRFX0NMRUFSX09TU0VSUl9SRVRVUk4oKGZo ID49IDAgJiYgKHVuc2lnbmVkKWZoIDwgKHVuc2lnbmVkKV9uaGFuZGxlKSwgRUJBREYsIC0xKTsN CiAgICAgICAgX1ZBTElEQVRFX0NMRUFSX09TU0VSUl9SRVRVUk4oKF9vc2ZpbGUoZmgpICYgRk9Q RU4pLCBFQkFERiwgLTEpOw0KDQogICAgICAgIF9sb2NrX2ZoKGZoKTsgICAgICAgICAgICAgICAg ICAgLyogbG9jayBmaWxlIGhhbmRsZSAqLw0KDQogICAgICAgIF9fdHJ5IHsNCiAgICAgICAgICAg ICAgICBpZiAoIF9vc2ZpbGUoZmgpICYgRk9QRU4gKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ciA9IF9sc2Vla19ub2xvY2soZmgsIHBvcywgbXRoZCk7ICAgLyogc2VlayAqLw0KICAgICAgICAg ICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgZXJybm8gPSBFQkFERjsNCiAg ICAgICAgICAgICAgICAgICAgICAgIF9kb3NlcnJubyA9IDA7DQogICAgICAgICAgICAgICAgICAg ICAgICByID0gLTE7DQogICAgICAgICAgICAgICAgICAgICAgICBfQVNTRVJURSgoIkludmFsaWQg ZmlsZSBkZXNjcmlwdG9yLiBGaWxlIHBvc3NpYmx5IGNsb3NlZCBieSBhIGRpZmZlcmVudCB0aHJl YWQiLDApKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgX19maW5hbGx5 IHsNCiAgICAgICAgICAgICAgICBfdW5sb2NrX2ZoKGZoKTsgICAgICAgICAvKiB1bmxvY2sgZmls ZSBoYW5kbGUgKi8NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiByOw0KfQ0KDQovKiBkZWZp bmUgY29yZSBfbHNlZWsgLS0gZG9lc24ndCBsb2NrIG9yIHZhbGlkYXRlIGZoICovDQpsb25nIF9f Y2RlY2wgX2xzZWVrX25vbG9jayAoDQogICAgICAgIGludCBmaCwNCiAgICAgICAgbG9uZyBwb3Ms DQogICAgICAgIGludCBtdGhkDQogICAgICAgICkNCnsNCiAgICAgICAgVUxPTkcgbmV3cG9zOyAg ICAgICAgICAgICAgICAgICAvKiBuZXcgZmlsZSBwb3NpdGlvbiAqLw0KICAgICAgICBVTE9ORyBk b3NyZXR2YWw7ICAgICAgICAgICAgICAgIC8qIG8ucy4gcmV0dXJuIHZhbHVlICovDQogICAgICAg IEhBTkRMRSBvc0hhbmRsZTsgICAgICAgIC8qIG8ucy4gaGFuZGxlIHZhbHVlICovDQoNCg0KICAg ICAgICAvKiB0ZWxsIG8ucy4gdG8gc2VlayAqLw0KDQojaWYgU0VFS19TRVQgIT0gRklMRV9CRUdJ TiB8fCBTRUVLX0NVUiAhPSBGSUxFX0NVUlJFTlQgfHwgU0VFS19FTkQgIT0gRklMRV9FTkQNCiAg ICAjZXJyb3IgWGVuaXggYW5kIFdpbjMyIHNlZWsgY29uc3RhbnRzIG5vdCBjb21wYXRpYmxlDQoj ZW5kaWYgIC8qIFNFRUtfU0VUICE9IEZJTEVfQkVHSU4gfHwgU0VFS19DVVIgIT0gRklMRV9DVVJS RU5UIHx8IFNFRUtfRU5EICE9IEZJTEVfRU5EICovDQogICAgICAgIGlmICgob3NIYW5kbGUgPSAo SEFORExFKV9nZXRfb3NmaGFuZGxlKGZoKSkgPT0gKEhBTkRMRSktMSkNCiAgICAgICAgew0KICAg ICAgICAgICAgZXJybm8gPSBFQkFERjsNCiAgICAgICAgICAgIF9BU1NFUlRFKCgiSW52YWxpZCBm aWxlIGRlc2NyaXB0b3IiLDApKTsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0K DQogICAgICAgIGlmICgobmV3cG9zID0gU2V0RmlsZVBvaW50ZXIob3NIYW5kbGUsIHBvcywgTlVM TCwgbXRoZCkpID09IC0xKQ0KICAgICAgICAgICAgICAgIGRvc3JldHZhbCA9IEdldExhc3RFcnJv cigpOw0KICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgZG9zcmV0dmFsID0gMDsNCg0KICAg ICAgICBpZiAoZG9zcmV0dmFsKSB7DQogICAgICAgICAgICAgICAgLyogby5zLiBlcnJvciAqLw0K ICAgICAgICAgICAgICAgIF9kb3NtYXBlcnIoZG9zcmV0dmFsKTsNCiAgICAgICAgICAgICAgICBy ZXR1cm4gLTE7DQogICAgICAgIH0NCg0KICAgICAgICBfb3NmaWxlKGZoKSAmPSB+RkVPRkxBRzsg ICAgICAgIC8qIGNsZWFyIHRoZSBjdHJsLXogZmxhZyBvbiB0aGUgZmlsZSAqLw0KICAgICAgICBy ZXR1cm4gbmV3cG9zOyAgICAgICAgICAgICAgICAgIC8qIHJldHVybiAqLw0KfQ0K ------_=_NextPart_001_01C89006.46FCD90C--