Return-Path: X-Original-To: apmail-flink-dev-archive@www.apache.org Delivered-To: apmail-flink-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CDB2017BD5 for ; Sat, 31 Jan 2015 10:04:54 +0000 (UTC) Received: (qmail 97087 invoked by uid 500); 31 Jan 2015 10:04:55 -0000 Delivered-To: apmail-flink-dev-archive@flink.apache.org Received: (qmail 97030 invoked by uid 500); 31 Jan 2015 10:04:55 -0000 Mailing-List: contact dev-help@flink.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flink.apache.org Delivered-To: mailing list dev@flink.apache.org Received: (qmail 97019 invoked by uid 99); 31 Jan 2015 10:04:55 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 31 Jan 2015 10:04:55 +0000 Received: from mail-vc0-f176.google.com (mail-vc0-f176.google.com [209.85.220.176]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 0ADC61A02FC for ; Sat, 31 Jan 2015 10:04:54 +0000 (UTC) Received: by mail-vc0-f176.google.com with SMTP id kv7so12319276vcb.7 for ; Sat, 31 Jan 2015 02:04:53 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.220.158.197 with SMTP id g5mr5505214vcx.74.1422698693984; Sat, 31 Jan 2015 02:04:53 -0800 (PST) Received: by 10.52.135.69 with HTTP; Sat, 31 Jan 2015 02:04:53 -0800 (PST) In-Reply-To: References: Date: Sat, 31 Jan 2015 11:04:53 +0100 Message-ID: Subject: Re: Design Question in Expression API From: Aljoscha Krettek To: dev@flink.apache.org Content-Type: text/plain; charset=UTF-8 Yes, that's exactly my reasoning for wanting to hide it. On Sat, Jan 31, 2015 at 10:32 AM, Stephan Ewen wrote: > My first Intuition is to not expose the row data type. If we add columnar > executing later, there may never be a Row data type during runtime (cp > paper on hyper runtime engine). > > For these declarative operations, I think it is a big advantage to keep the > underpinnings strictly separate so we can change the execution model. > > Also, I think that explicit switches between the logical and physical > abstraction (switching from class type to logical row type and vice versa) > make things more transparent to the user. As an example: A filter in a > logical query expression may be pushed down, a filter defined as as udf on > a physical type is not pushed down.