Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s7dzb-006cEf-Us for pgsql-bugs@arkaria.postgresql.org; Thu, 16 May 2024 16:30:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1s7dzb-00Bg9T-By for pgsql-bugs@arkaria.postgresql.org; Thu, 16 May 2024 16:30:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s7dza-00Bg4w-Km for pgsql-bugs@lists.postgresql.org; Thu, 16 May 2024 16:30:07 +0000 Received: from mail-me3aus01olkn2152.outbound.protection.outlook.com ([40.92.63.152] helo=AUS01-ME3-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s7dzT-000WTy-0w for pgsql-bugs@lists.postgresql.org; Thu, 16 May 2024 16:30:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MYYBpVRNawTUmZg3lmUxNxme84EC4BeuxV60Yi46LJz+YOOczrl6xPjPepKAeNS+Kw6O0c41PPmrqlUj4+3dc8O6MUICk/ApXAZ9HYbahYoM/+oxh9M2YQ1WD+ozeq2He164s6IQQ0V1bb1uUb7M4Yx0hQSdR5pxogp1HdjEiBwU9yGRor5+1jAK2XjPYVbKgOJ1jWTSdP19C9bbtqsloUYt/p6jcwL3Q8S0CsWDPbcTPZmAqzsA/zeJ02DeHYx7tvDvlh8ZlwSsb7WaLUOQcBPr77wdULVf++0NGeBaN38jFZDp9W089wJylWCT/oygxrDbeX3S7mVAu8hrccqIgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mjjlDVl7mRFkW7k8vbmLT6yOscfuNFbxNMzUWWZAy60=; b=CpzpY9Jdc1cwtJn8ZPs05eGTGT/6rDUvnf0bcOvYwFLK4NmMgKQRLHWjxKI2Vt8yw8vEdttGmjnnSvQrTLu1ztoGpv5hQ1yNkaGI9X9ipYJ2RRXGpOOKaHv/NYiZrwFdQxBO9wP1d+cfGumv/KsM0SKlXJokeL+k0WVn6n3d1Uk8yVkoyTD1E7fFirsvSva2kFeN3W0DaNSCpB7bqpBu43e+ry0ZY6IyF9kDZLPB+AVKwrZIGrykoh9KK0eUZuwrQ0uAzV8j7pP6736YO7B02EvXykJsNdzK99SYWkhviqmVMeEAxQYrIv98+5nsgUck6l1CA5sJFR2MHfW1rkYDTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mjjlDVl7mRFkW7k8vbmLT6yOscfuNFbxNMzUWWZAy60=; b=NQg2puqBUaJWK46YgpXSa7EY6Bk42MuDHF95Mi5vRlrW+w4clZh0oPWBMXwiGfXZSMNUWRDszN29vaCb6+2Fj4O7eKPpRrVzgizYKQhAEcpYC9WNVEf5B6vFBFfRXGL2J1S2fpCKKcWwZ32N9ZQhWq1rKe2niCQiyl+0lk0fO0EHPaz9KVy22s/8H7rpY3SOrSk7x4yJgx5bu12qBsVsz11EVkPLBtSYvGlBH9RenwMjjHOy4NATFyx3i3MkghA9n5dMj/iQXRUmZUJnuWOvxF6PLxWe+EfrAul8vj56W0IOyPgpxFrpeISGvtDR9aKi1I71YkU4NfAX2k2QwyhGWQ== Received: from ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:147::21) by SY5P282MB4703.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:270::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Thu, 16 May 2024 16:29:53 +0000 Received: from ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM ([fe80::4158:743a:ffd4:1274]) by ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM ([fe80::4158:743a:ffd4:1274%4]) with mapi id 15.20.7587.028; Thu, 16 May 2024 16:29:53 +0000 References: <202405161527.2rs7jfxkxl6m@alvherre.pgsql> User-agent: mu4e 1.4.15; emacs 28.1 From: Japin Li To: Alvaro Herrera Cc: Etsuro Fujita , onderkalaci@gmail.com, pgsql-bugs@lists.postgresql.org Subject: Re: BUG #18467: postgres_fdw (deparser) ignores LimitOption In-reply-to: <202405161527.2rs7jfxkxl6m@alvherre.pgsql> Date: Fri, 17 May 2024 00:29:47 +0800 Message-ID: Content-Type: text/plain X-TMN: [kolHtbQaI12vhPOVKmFGOvEQCcJA1ogfbh8dooFOBxc=] X-ClientProxiedBy: TYAPR01CA0062.jpnprd01.prod.outlook.com (2603:1096:404:2b::26) To ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:147::21) X-Microsoft-Original-Message-ID: <87le493ekk.fsf@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ME3P282MB3166:EE_|SY5P282MB4703:EE_ X-MS-Office365-Filtering-Correlation-Id: 40a0567c-6c7e-40ea-6e30-08dc75c56a16 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xyPS4rn6/uopEI9ImaGUTF9fxZMPcKf80is9PNCNZXl6B2kuM/5/ZcA62W9HP/5QhrNxzOTJ7NLx7f2pWxqFgJef5HcMPSXgZ6nwZw6G9rBraoe0Ii2Xr5KS1d9Jb9aAm+RcBdOyYdbtoErypBtBtZhvQinzgH2sZ5jVUdxEpP6krJt8m7uiExj+y3TC/q7AwPupPxUZxCf6W/psmuW3QtC3lHauQvBT55ya7kC5s5ujO+1mqDEiVMYmqcTC2q2MOvyWkBy9SDjkcy+dA5RB8M18cBLZC8lDtlc3YHShwLbYMtjEVdQ7boa3lkI0CuMkzCJxQbH9LzRWg2GKpF7tH02T7bdV5rayWMi3t2bHoOkl0+prCUBmd1KkLmBiPVDg76zejhtiKvy5tyHKvI/umldAQFmMojg1m073M5XIXdqepoZ0HUwGbGJe9ahSEPgOzrmI44LRH68x52JGTq6+1vwsqmVFdx/WJToieXmSuefg94DO9vFdTpTJ7ZJPTD4jaTVMVINs4Z70s+QwwSPTaXGxGrJXpG8XcgDoZlsxpXjg096ZI3HVPDu6ZUlDlcko X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IA3iMxl7lrrONC4U2nl3EuMb1qoK+Nf1Y8HNpNS3sJa5tCdoF2vrKFmoPqKa?= =?us-ascii?Q?sWcLsG7Xzb3Huums8uJnYewn+UR29bj38gUDbHF78u0fIAwzTY+WlkgpJA65?= =?us-ascii?Q?EctC4sLT1lPC4kDP/0scKDNak/QS4S/AhcfsuhIzD2WXcz3x/6bi3GYvLWZY?= =?us-ascii?Q?FguIWULBSIWvT/L3rD1H045zDvHOzWcrPN3fKrIvLHQMHVpqkgW7OloC5cMM?= =?us-ascii?Q?qt+hy8rxH7SQ/BA7Fd5wnvtYaIIfcedzhG8AtFkWMB9LNxTk/nd5Z0fiWDIo?= =?us-ascii?Q?8NBJHt55OJPtEsADonyRLIhhbLFQmwiwzTeWC0CYNFM2F119GDU/Fj/kxa2V?= =?us-ascii?Q?TbM50M3gyetsVuCS3jcicu/0vt/N5HJzQzCRdb01Ea7PtUJ9IWq1AijbMMCb?= =?us-ascii?Q?q0BnESydanTguf/b7rb5DQvgg4GN4T6LF15rTcmJgye5uPGOOuXEsxyYE03n?= =?us-ascii?Q?NB6LGrW5hQh+s5pk5dHjzhy1F/HDUd8od2tZOGa+g9J5Tufqy4/kqwZYwqpz?= =?us-ascii?Q?2lIuQix+oClmtkZvBEt+FXFC9DNbGmwVEBL3Rhu8O0uY6SQqdy6RU4sm+3e5?= =?us-ascii?Q?IK7g4NRK8xJnvb3VrBbHZimc+dtwIj2nrk1qhntq7AeTGe8ra7YB8qt/rwkw?= =?us-ascii?Q?1Ea7ucJa6B3hpl8E3JES8WzFmPNnWZ1wY5ebYYSI+DMoAmgfJb+lk0EHQYxK?= =?us-ascii?Q?jSvlEXQhR8ILl4Y/7bd6kaStU0VClOm7XwSVvOND5T8oGHlhLXRh7005wwlV?= =?us-ascii?Q?eTGoFhH0VF+eEPo74rn1H+ChNA/08WTQUOX5KrGOorlJV/bViX91YE/RQYnH?= =?us-ascii?Q?qUoHuSFYaCxRH3xoO8fOnEQgsH+1gkwqkx7ElkDnXb4zK/n+5beBp0vlgpVo?= =?us-ascii?Q?JxaAKMfhFg/FQtK8Yp+pQldO7uOZlUbYk/AyxguV4QKVFzKVTfhUdYOYcgH6?= =?us-ascii?Q?QS65HYbPVwfmFM8Z/MoC0ov0r4Y3X85taHRvSO6fEKynwwWaJmkpkrp96n+q?= =?us-ascii?Q?CGvuDl5fpnJxPhJI67wN2gOsyctQWn5/mVswomEc3ZLnhZfnEf5JHFOcg2gg?= =?us-ascii?Q?7kuCiI1GN3ARpcBZ0pyiWDY/hk1aMOLz704w20RUDKoLZhWvVgMBvMhh2WQn?= =?us-ascii?Q?HgRHPKI/OpyrN9Iahn9viMlqWmf0QvOxB+0Dz4QNKhgqUXQWyw616ZLpTjxw?= =?us-ascii?Q?Dgw05oFJ+ZssscOc7L9D4WTaZdDFiBHN4V39fapPI4Rf4vyniFsc6anoZ7A?= =?us-ascii?Q?=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-746f3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 40a0567c-6c7e-40ea-6e30-08dc75c56a16 X-MS-Exchange-CrossTenant-AuthSource: ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2024 16:29:53.0380 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY5P282MB4703 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, 16 May 2024 at 23:27, Alvaro Herrera wrote: > On 2024-May-16, Japin Li wrote: > >> I find that the FETCH FIRST ... ROWS WITH TIES does not support type casting. >> For example: >> >> postgres=# SELECT * FROM pg_class ORDER BY relname FETCH FIRST 2::bigint ROWS WITH TIES; >> ERROR: syntax error at or near "::" >> LINE 1: ...ECT * FROM pg_class ORDER BY relname FETCH FIRST 2::bigint R... >> ^ > > Why do you need this? The standard says > > ::= FETCH { FIRST | NEXT } [ ] { ROW | ROWS } { ONLY | WITH TIES } > ::= | > ::= > ::= > > which doesn't seem to leave room for a cast. > > I didn't try super extensively, but this works: > select 1 from pg_class fetch first 281474976710656 rows only; > so the count is already not restricted to be an int32 value. After some dig in, I find transformLimitClause() has the following comments: * Note: as of Postgres 8.2, LIMIT expressions are expected to yield int8, * rather than int4 as before. So the deparseConst() append '::bigint' typecast, same as get_rule_expr(). -- Regards, Japin Li