Return-Path: Delivered-To: apmail-incubator-pig-dev-archive@locus.apache.org Received: (qmail 41693 invoked from network); 7 Apr 2008 22:56:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 7 Apr 2008 22:56:14 -0000 Received: (qmail 23274 invoked by uid 500); 7 Apr 2008 22:56:09 -0000 Delivered-To: apmail-incubator-pig-dev-archive@incubator.apache.org Received: (qmail 23247 invoked by uid 500); 7 Apr 2008 22:56:09 -0000 Mailing-List: contact pig-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: pig-dev@incubator.apache.org Delivered-To: mailing list pig-dev@incubator.apache.org Received: (qmail 23206 invoked by uid 99); 7 Apr 2008 22:56:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Apr 2008 15:56:09 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Apr 2008 22:55:34 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id A16EB234C0D8 for ; Mon, 7 Apr 2008 15:53:25 -0700 (PDT) Message-ID: <479552722.1207608805660.JavaMail.jira@brutus> Date: Mon, 7 Apr 2008 15:53:25 -0700 (PDT) From: "Alan Gates (JIRA)" To: pig-dev@incubator.apache.org Subject: [jira] Commented: (PIG-158) Rework logical plan In-Reply-To: <441072906.1205956464426.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/PIG-158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12586582#action_12586582 ] Alan Gates commented on PIG-158: -------------------------------- In answer to Shravan's question, consider a script like the following: {code} a = load 'myfile'; b = group a by $0; c = foreach b { cc = distinct $1; generate myudf($1); } store c into 'output'; {code} And consider a visitor whose job it is to find all of the UDFs used in a script (for whatever reason). If we go with the nested plan model, but we don't allow visitors to switch plans, then when the outer most visitor (V) comes to the foreach, it has to spawn a child visitor (VC) to visit the nested plan. When VC is done, V has to then ask VC what it learned visiting the nested plan. (That is it has to incorporate VCs state into its state.) On the other hand, if V can instead change walkers when it hits the foreach, it can still visit the nested plan. The state change that resulted from visiting the nested plan (in this case, learning that the UDF myudf is called) need not be transmitted between visitors. > Rework logical plan > ------------------- > > Key: PIG-158 > URL: https://issues.apache.org/jira/browse/PIG-158 > Project: Pig > Issue Type: Sub-task > Components: impl > Reporter: Alan Gates > Assignee: Alan Gates > Attachments: logical_operators.patch, logical_operators_rev_1.patch, logical_operators_rev_2.patch, logical_operators_rev_3.patch, visitorWalker.patch > > > Rework the logical plan in line with http://wiki.apache.org/pig/PigExecutionModel -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.