Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fx5eE-0000uZ-Qa for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Sep 2018 07:21:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fx5eC-0000U6-IW for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Sep 2018 07:21:12 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fx5eC-0000Tx-6N for pgsql-hackers@lists.postgresql.org; Tue, 04 Sep 2018 07:21:12 +0000 Received: from mail-it0-x22a.google.com ([2607:f8b0:4001:c0b::22a]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fx5e9-0004aX-F0 for pgsql-hackers@lists.postgresql.org; Tue, 04 Sep 2018 07:21:10 +0000 Received: by mail-it0-x22a.google.com with SMTP id h3-v6so3679897ita.2 for ; Tue, 04 Sep 2018 00:21:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=hfX6euuwCcZdmC6m3tSj+NxtPoN6Zu18goz9EG6ZWh4=; b=abb9O7CLc5E487HmKu9O+geihLLCk7CTXPb5ktwpCBWFXsdVmWMGp1TL+wMmh7j70q 6Vfvuy3Y7KUfG36S27b5UIqbEQ4WTRv2mThIwCIg/c7gIkFJfqdXab3reOw3iIkWMSsc usPYn3SqCdBVWTjo56s3h9pw48HlMGCYDIWXCLvoiLly7GtuWvL39JDr8yHksQXwvnkO 8WDxMrD6p0bpX7DBrPZNsyL1EI+MWSUmLrkTT41O+ige9zDR3NH8O/EpRBIWCOnw4j1B P+gMp5Sk+xhSd/7E3DGenyX/73Uiq/7OTMZs5VcPaoA/PYbytv8MZFhhoH5LkYK5ckyF XGzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=hfX6euuwCcZdmC6m3tSj+NxtPoN6Zu18goz9EG6ZWh4=; b=ngYMECgA/01nJQFjevWQImFZgsjdoKg9+zMW8mtWFoadTYTkAXY9YeOobT0NxPkZfP Gmux1tEKVxVOMxwk4T+44LMNKPqPTAOQjR8wxdsdpLam2O/uqM8/7hdRJgXO7zwSFVkd Tb8oudh/usNXIHO9Zxq1Hm+vKLRfeW4iEHoNQP1FcvA4PLjycIAwpdY4MBBTgaJ1/3UJ QiErLwoIRzpsBAgScx2lpEoyFrQDiNW9h6qTBCnOKKJic9TmIhe9KkayK5KGRTtrlIgR H/16lgW9UOz1D1ArgmnrCGSeRlemFM20fpoVbsIfn09VeTheMFpBWYnvNgTApFEZ0my4 OcQQ== X-Gm-Message-State: APzg51D+hoXhbrcMH5QbYBHk90aXsatEst3328uDXIrML0A53JFctsnJ epkqpGAGmg4k3NNUzGI6pJn8fi8ZVLi9DmoLt+M= X-Google-Smtp-Source: ANB0VdbDvL4BrqMOJTBIxWXk446TuuPGU1dfyD181X6jG0DO9Thcww75wA8QVBBgvdsQXNlUXJ3iLGyt8AMg/kvQaqo= X-Received: by 2002:a24:d0d6:: with SMTP id m205-v6mr6741574itg.89.1536045668499; Tue, 04 Sep 2018 00:21:08 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4f:9d10:0:0:0:0:0 with HTTP; Tue, 4 Sep 2018 00:21:07 -0700 (PDT) In-Reply-To: References: <623395617.20171113141500@gf.microolap.com> <28924bcc-9242-9798-e4e8-9d83cea3fef6@dalibo.com> From: Dean Rasheed Date: Tue, 4 Sep 2018 08:21:07 +0100 Message-ID: Subject: Re: [HACKERS] proposal: schema variables To: Pavel Stehule Cc: Fabien COELHO , Gilles Darold , PostgreSQL Hackers Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk AFAICS this patch does nothing to consider parallel safety -- that is, as things stand, a variable is allowed in a query that may be parallelised, but its value is not copied to workers, leading to incorrect results. For example: create table foo(a int); insert into foo select * from generate_series(1,1000000); create variable zero int; let zero = 0; explain (costs off) select count(*) from foo where a%10 = zero; QUERY PLAN ----------------------------------------------- Finalize Aggregate -> Gather Workers Planned: 2 -> Partial Aggregate -> Parallel Seq Scan on foo Filter: ((a % 10) = zero) (6 rows) select count(*) from foo where a%10 = zero; count ------- 38037 -- Different random result each time, should be 100,000 (1 row) Thoughts? Regards, Dean