Return-Path: X-Original-To: apmail-drill-dev-archive@www.apache.org Delivered-To: apmail-drill-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 355A718BB1 for ; Mon, 19 Oct 2015 21:29:32 +0000 (UTC) Received: (qmail 440 invoked by uid 500); 19 Oct 2015 21:29:25 -0000 Delivered-To: apmail-drill-dev-archive@drill.apache.org Received: (qmail 382 invoked by uid 500); 19 Oct 2015 21:29:25 -0000 Mailing-List: contact dev-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list dev@drill.apache.org Received: (qmail 370 invoked by uid 99); 19 Oct 2015 21:29:25 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Oct 2015 21:29:25 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 12352C04B9 for ; Mon, 19 Oct 2015 21:29:25 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.899 X-Spam-Level: ** X-Spam-Status: No, score=2.899 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=maprtech.com Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id IiBtfE2otPx4 for ; Mon, 19 Oct 2015 21:29:16 +0000 (UTC) Received: from mail-io0-f179.google.com (mail-io0-f179.google.com [209.85.223.179]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 55360204DD for ; Mon, 19 Oct 2015 21:29:15 +0000 (UTC) Received: by iofz202 with SMTP id z202so1320356iof.2 for ; Mon, 19 Oct 2015 14:29:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maprtech.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=S9ju9gK0ecQd+cZjuJD8dmdpMQPUjS9xn9q1VL5IczM=; b=gaWHZLq/qaYkeuHGUN3lG5fEmHRVFDIXogpKPmEoN5Rj0SC6WQLJ6ckCLZ0RQWTiTa CyYYvlSEb+vBFtW+EMfmcC4vQpwTCgDuEoFjjHaLjy3fMVFLqJPr7lRquhk2s+l5oRIg I/Mr4kMcoTO7HbPGWhyDQg/6J33gJY/S7teFw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=S9ju9gK0ecQd+cZjuJD8dmdpMQPUjS9xn9q1VL5IczM=; b=V/3A+E6Bwb3WwP2Qsjm9hjmqS7EixvGtToWrfx3ms55IxoLNSsQyTPUZzKNCp1dClJ iYcxM/r8QOJOD/1l95lX44HfpJptLwsh8aAp8Ga7xarWnlHkzDYIm5hUzS6Susfo7n1x uVg8XbZbsQEDQ41IZxLmFJ5KLW2OuP30ke+iTAix6fugepxYDTHoWM5Sb36gX20r5T7w 7GqOUfG3SCkHalDhgct8kQxeFeIlB79aURyEL8rMHMLQha/iTw3Dc/J4DoNJXmHbPpLX s3+5UIbdwiBlp9MAi5BdUTApgPU7ahjUF+33xN4fSdFmckVB5YKjy2el0L9H7NkVJsPr OrCw== X-Gm-Message-State: ALoCoQl7StxjD58SYHFMX5YBkMS1LNlGn9YHGsU3XeW3YeyUo93IRxT1LUM/YLAcg+Og/3Fx6Waj MIME-Version: 1.0 X-Received: by 10.107.32.13 with SMTP id g13mr212495iog.124.1445290154317; Mon, 19 Oct 2015 14:29:14 -0700 (PDT) Received: by 10.64.65.229 with HTTP; Mon, 19 Oct 2015 14:29:14 -0700 (PDT) In-Reply-To: References: Date: Mon, 19 Oct 2015 14:29:14 -0700 Message-ID: Subject: Re: List type From: Hanifi Gunes To: dev@drill.apache.org Content-Type: multipart/alternative; boundary=001a1140c1dc3ef32105227bd600 --001a1140c1dc3ef32105227bd600 Content-Type: text/plain; charset=UTF-8 If I am not wrong currently we use i) RepeatedInt for single ii) RepeatedList of RepeatedInt for double iii) RepeatedList of RepeatedList of RepeatedInt for triple arrays. I think we should refactor vector design in such way that we will only have a ListVector eliminating the need for all Repeated* vectors as well as code generation for those so that we would represent all these above types via i) ListVector of IntVector ii) ListVector of ListVector of IntVector iii) ListVector of ListVector of ListVector of IntVector The idea here is to favor aggregation over inheritance, which is less redundant and more powerful. Thinking about it, we do not even need to maintain RepeatedMapVector as it will simply be ListVector of MapVector in the new dialect. -Hanifi ps: As an fyi, even though it does not include a JIRA for abstracting out a ListVector which I discussed over the past months with many devs, [1] has a list of items in place for refactoring vectors (and possibly the type system). 1: https://issues.apache.org/jira/browse/DRILL-2147 On Mon, Oct 19, 2015 at 1:28 PM, Julien Le Dem wrote: > I'm looking at the type system in Drill and I have the following question: > Why is there a LIST type and a REPEATED field? > It sounds like there should only one of those 2 concepts. > Could someone describe how the following are represented? > - one dimensional list of int > - 2 dimensional list of ints > - 3 dimensional list of ints > Thank you > > -- > Julien > --001a1140c1dc3ef32105227bd600--