From dev-return-5181-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep  3 17:38:56 2017
Return-Path: <dev-return-5181-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id E65881940E
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun,  3 Sep 2017 17:38:56 +0000 (UTC)
Received: (qmail 15544 invoked by uid 500); 3 Sep 2017 17:38:56 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 15444 invoked by uid 500); 3 Sep 2017 17:38:56 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 15432 invoked by uid 99); 3 Sep 2017 17:38:56 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2017 17:38:56 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id A9398183347
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 17:38:55 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id I8yVWsClQQLn for <dev@asterixdb.apache.org>;
	Sun,  3 Sep 2017 17:38:50 +0000 (UTC)
Received: from mail-oi0-f52.google.com (mail-oi0-f52.google.com [209.85.218.52])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 36F0E5FB2E
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 17:38:50 +0000 (UTC)
Received: by mail-oi0-f52.google.com with SMTP id t75so31081543oie.3
        for <dev@asterixdb.apache.org>; Sun, 03 Sep 2017 10:38:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:mime-version:subject:message-id:date:to;
        bh=xjP6LofSc0pe9vVkI4JoZp9Lqh6KewO2rtNnpj9RVow=;
        b=VuamJhLtQ9luNvlpPXCE6FtPU34oOpSdvVhKEWORjGaxJCaMiqazv66xZwYrOkGqW5
         2slKQ+pEAr8Y3XgK8JXS95Gd0Va3ZkVRCHWVaWL1xc25cTNQaWbvbDsDd8WQ2SHiHoKQ
         xTUwogQ0SvjkDESA0GgAtu8EWvRJLt7JfDTTjEX7cjpbxrDdsqiqAPFNxMe4oqvXcEoy
         Vmg3aNjwBUrQxt1YMZ7tPsId2tsdmv6nAfEnCcgVp3+l9vdWXK1TuKWxSXuJOTOAiSJL
         POJG8NLRqDZVpRD2nN3+TjgGhMXsKCvTDOVcHfaRj1nJxhNn216Ytk1zQ1SYyu0dT90C
         irmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:subject:message-id:date:to;
        bh=xjP6LofSc0pe9vVkI4JoZp9Lqh6KewO2rtNnpj9RVow=;
        b=aN3e052InNbebt07o/s6V1aT6MMiNLHVnd5KxZRI+EiI8BHQ9D/OCjCTU7EWfEasZk
         Zxu09r+TmIXbt3MASVpxSs9J0gYU2lez1ewWlzArfvrqKAwezXUwk2PDiWnekumdTX8s
         nBfRAkuQiL9XOTGJgRCimx7Fg3Z85owOjiPPUmUfPgNGFUpiFkYZmNN5qQNeWghJPOfK
         WXoyKCLrHFAXvZQvk+9YLY9rKRIrLy7TVRe+8Nmugect+gLNcNVneVgnDVQ6T1cHC5Ea
         vL2M1Qn5QWrfR0Gjly2Ouw64lz8ioFKLGipOk4lt0rTXpBgNtHn74gnFdDunvJpuEMrX
         zcAg==
X-Gm-Message-State: AHPjjUjys1WtL/NJBYhNuo6bqlcSpC/JvDzvd1oWmPKiKUcZ7A1+GLGU
	ejbf11Y3eLF0WV+tNPI=
X-Google-Smtp-Source: ADKCNb6ealu1lb45wljTqpQQr1SllDDy2/UYt1M+qbzHYHPH1/dM/phwvEe1cPf2DBxEU8yLX+YlTg==
X-Received: by 10.202.8.19 with SMTP id 19mr4081169oii.54.1504460322356;
        Sun, 03 Sep 2017 10:38:42 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:b149:9ca1:41af:11a9? ([2600:8802:1203:ae00:b149:9ca1:41af:11a9])
        by smtp.gmail.com with ESMTPSA id y9sm6837302oia.22.2017.09.03.10.38.40
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 03 Sep 2017 10:38:41 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_D56E0A51-D645-4B5D-8B39-C859BAC1AC9F"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Entity locks in asterixdb
Message-Id: <356EBD6C-BB26-4025-8117-3BEE1229C377@gmail.com>
Date: Sun, 3 Sep 2017 10:38:39 -0700
To: dev@asterixdb.apache.org
X-Mailer: Apple Mail (2.3273)

--Apple-Mail=_D56E0A51-D645-4B5D-8B39-C859BAC1AC9F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi All,
I have created a wiki entry for entity level locks in asterixdb at =
https://cwiki.apache.org/confluence/display/ASTERIXDB/Entity+locks+in+Aste=
rixDB =
<https://cwiki.apache.org/confluence/display/ASTERIXDB/Entity+locks+in+Ast=
erixDB>=20
It is pretty primitive at this stage but with your contribution, it can =
be improved quite a bit.
The goal of this entry is to act as a reference to our locking for =
developers, testers, and users as well. We would like to use it as the =
basis as we're adding unit tests to locking within different cursors as =
we're adding unit tests to those.

Special mention to @Taewoo to take a look :)

Cheers,
~Abdullah.=

--Apple-Mail=_D56E0A51-D645-4B5D-8B39-C859BAC1AC9F--

From dev-return-5182-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep  3 17:46:03 2017
Return-Path: <dev-return-5182-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 97ADD19477
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun,  3 Sep 2017 17:46:03 +0000 (UTC)
Received: (qmail 21680 invoked by uid 500); 3 Sep 2017 17:46:03 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 21592 invoked by uid 500); 3 Sep 2017 17:46:03 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 21580 invoked by uid 99); 3 Sep 2017 17:46:02 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2017 17:46:02 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 7CE47183377
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 17:46:02 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id wNYwvyjbrmDh for <dev@asterixdb.apache.org>;
	Sun,  3 Sep 2017 17:45:57 +0000 (UTC)
Received: from mail-oi0-f41.google.com (mail-oi0-f41.google.com [209.85.218.41])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id C38695F5B8
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 17:45:56 +0000 (UTC)
Received: by mail-oi0-f41.google.com with SMTP id r203so31158211oih.0
        for <dev@asterixdb.apache.org>; Sun, 03 Sep 2017 10:45:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:mime-version:subject:message-id:date:to;
        bh=j63x12XwViQ3jbLN8nVZgpR0ZLWaACSOKPaRDjwfioM=;
        b=ZOlaxJzh5+Ew21tV7+QWsrVmT6mZvbf/ADbAk3kIETIND8nrMg8Lpwyfp+7wkM2igg
         TGgOPvRu9yB0peVZxgktHjPCa7bH+NdQlPt6+dGzdqpw26qTPR02xGz3DcBEv50UTs9Z
         PATfElfPm7qBJGhGi7UZEot0k+BxSQXvHjxpZm3+fBuLurJNTTbF+cobRrTBOQ7xodL/
         5zeOJbkNTK2L8tOD54xIfqyr8oPD6S0SFZ1amne3xz7Fds3Frnf5ZKvti70SQKa1Wf0N
         ri0XWyOZQzpH3IKfKLsUT1BZS20FJUD8LzgPV+LdseHiovGbyJ6AGNjXsnDSKUV1Qmkk
         I5Hg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:subject:message-id:date:to;
        bh=j63x12XwViQ3jbLN8nVZgpR0ZLWaACSOKPaRDjwfioM=;
        b=njzJO45tcXAAfzZujlAfwP0Wgnq63+4sIkzlYu1EEMEEJR3ukYqpYrLWErNHhlu/o9
         o/CXbWiYH4i7/TsGGmnxwZTdZn9WqsqOzOxi1lZXv6Pmfc6OjsFeHsxDirDt1o97Pkl3
         SevDMUwbxmkrwJ9evTheG7Byt0XcERlFY7n8MFWEtOHbEBYBGbQmAwjzDtG3BUufuQ0h
         lLreX2zVU4c+gjzEaZgq76wr30q7IM7h+FmpHEXX4KYw53DzvQYDDRu8k4MoqZIItfnA
         Xt96BBrdSDuXBguj1+v0ShWDPwGp/LLB29mB+8M+e+fPWEyBlTUkFMwcO74C+oCdEVbI
         P+TQ==
X-Gm-Message-State: AHPjjUivTOe+YYoj/ETNHATJ+CKotVW/nH7FvbAqpdjPfiSBpHnZklvp
	qrZ6o6//FGi2G1/jh0g=
X-Google-Smtp-Source: ADKCNb6wc6nTdDwu8pRedXC4Gp7vrQhT247y0lnArQ5xfWFBj2ZiqhiySMqdTyeHFp2W8G5aL8Z00w==
X-Received: by 10.202.199.199 with SMTP id x190mr1511579oif.90.1504460748476;
        Sun, 03 Sep 2017 10:45:48 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:b149:9ca1:41af:11a9? ([2600:8802:1203:ae00:b149:9ca1:41af:11a9])
        by smtp.gmail.com with ESMTPSA id h125sm6393607oic.54.2017.09.03.10.45.47
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 03 Sep 2017 10:45:47 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_16FCA802-27F4-40D4-A353-39B3EF170A67"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: ILogicalOperator.isMap
Message-Id: <E7FED432-B7DB-4F01-B4F7-D4493A72C8D1@gmail.com>
Date: Sun, 3 Sep 2017 10:45:46 -0700
To: dev@asterixdb.apache.org
X-Mailer: Apple Mail (2.3273)

--Apple-Mail=_16FCA802-27F4-40D4-A353-39B3EF170A67
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Dear devs,
I was going over implementations of ILogicalOperator.isMap in our code =
base and here is the breakdown:

isMap()

true:
-Assign
-AbstractReplicateOperator
-AbstractUnnestOperator
-ExchangeOperator
-InsertDeleteUpsertOperator
-LimitOperator
-ProjectOperator
-SelectOperator



false:
-Order
-Aggregate
-RunningAggregate
-AbstractBinaryJoin
-AbstractOperatorWithNestedPlans
-DataSourceScanOperator
-DistinctOperator
-DistributeResultOperator
-EmptyTupleSourceOperator
-IndexInsertDeleteUpsertOperator
-IntersectOperator
-MaterializeOperator
-NestedTupleSourceOperator
-ScriptOperator
-SinkOperator
-TokenizeOperator
-UnionAllOperator
-WriteOperator
-WriteResultOperator

As I understood at some point is that isMap means (does this operator =
map input tuples to output tuples without blocking?). I am not sure how =
accurate this description is but it clearly introduces a problem as:

* InsertDeleteUpsertOperator.isMap() -> true
* IndexInsertDeleteUpsertOperator.isMap() -> false

Moreover,=20
TokenizeOperator.isMap() -> false
AbstractUnnestOperator.isMap() -> true

while clearly, as per the definition above, these two operators should =
have the same output: true

Can someone solve the mystery?
Once this is solved, I will add a wiki entry to explain this flag.

Cheers,
Abdullah.=

--Apple-Mail=_16FCA802-27F4-40D4-A353-39B3EF170A67--

From dev-return-5183-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep  3 18:19:34 2017
Return-Path: <dev-return-5183-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 3A5CF195D9
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun,  3 Sep 2017 18:19:34 +0000 (UTC)
Received: (qmail 64858 invoked by uid 500); 3 Sep 2017 18:19:34 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 64771 invoked by uid 500); 3 Sep 2017 18:19:33 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 64759 invoked by uid 99); 3 Sep 2017 18:19:33 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2017 18:19:33 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 9B82C183134
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 18:19:32 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id hd1OlgArh4Wf for <dev@asterixdb.apache.org>;
	Sun,  3 Sep 2017 18:19:28 +0000 (UTC)
Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com [74.125.82.51])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 8B2ED5FCC1
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 18:19:27 +0000 (UTC)
Received: by mail-wm0-f51.google.com with SMTP id u26so26043651wma.0
        for <dev@asterixdb.apache.org>; Sun, 03 Sep 2017 11:19:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
        bh=vEXCst3ZXGafAxPLWVbzQNiSECdmFbqBwOvx2A6QNXs=;
        b=DriL4BqEjkMg7T0jKgpwf/HvMCJ4qiqHbGdCiAg2hxxxXzJbLRSPDXS1FmvP7p9plG
         6umg4noVUqlQn/Lg2/+WWdWA6a+843pB1/d+1xWP+jOXU/poLmNBD+bzG6IxnXCNyztI
         ZzuQjRXc1c9QfBcDu7YxGBQzuNM5PpVwRtQV7Rrrvj0Gh5x6uHS3fShqAo/s8PFZXInQ
         CWs0OqS7axXSYnA+rUYtLaoZn3DcaysJkY9UdsjewbJWyCkzX1vFkJ9KeVErX5I9AEdE
         lJlFsXEMpO3JrRQU2amrhCec4gD8dZqDeA2qxd0LHVVayifk9Ya32Zw29wg3gT/tb0fa
         fEAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=vEXCst3ZXGafAxPLWVbzQNiSECdmFbqBwOvx2A6QNXs=;
        b=qotbSQqPuguj9tsVFriWjiPkpuHfgyLRBMPqPPtQgq2V7EzPKL/XbKAjDq3WpCOi0e
         9J1AJoPgXG8J4FKZzQCtH6JMlo1HD1U2LHXVxHgxUvqni21wt2Rcb8mODLubD0pazTOx
         qu/z3CvURVgiwPFikP8IyhD8JP022vMUN9OgFJoDtCN1888E+OBM9B9Ul828ObvGvDij
         uZXH8/wWPnFSLQ2elWJuYIb4CTCcLqi+iY/HMOH8sQUiOvb67LLOB/zpMhyk+6tZMMwn
         4nTJTFbv84hgQjv64quDVQVM39Ijnyc4d1485rw5K09Asp5rX9cDzhJOCAZ4A4t0tu0a
         06Zg==
X-Gm-Message-State: AHPjjUg15dxChOLMZT14TbCqe1VCW/9tzvj56dIpe4X98lHrKM/9gBG+
	jfvoKACiuj3pWH5uJfcPXvB9awXirg==
X-Google-Smtp-Source: ADKCNb64jdrpQZtoClOJ7gWPoNB4pBjt/+c4moN0ky0UCSU576sMam76GGWpQgQTps2Apo0qul1nz6zR/EkhVK4FCy4=
X-Received: by 10.80.216.74 with SMTP id v10mr2320998edj.242.1504462766406;
 Sun, 03 Sep 2017 11:19:26 -0700 (PDT)
MIME-Version: 1.0
References: <356EBD6C-BB26-4025-8117-3BEE1229C377@gmail.com>
In-Reply-To: <356EBD6C-BB26-4025-8117-3BEE1229C377@gmail.com>
From: Taewoo Kim <wangsaeu@gmail.com>
Date: Sun, 03 Sep 2017 18:19:15 +0000
Message-ID: <CABytAGouZybok22bXbKWakj_=o2G41U85Mns7QS3dRpMh26ZLQ@mail.gmail.com>
Subject: Re: Entity locks in asterixdb
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="089e082212c8c5017605584d086a"

--089e082212c8c5017605584d086a
Content-Type: text/plain; charset="UTF-8"

Sure. I will take a look after my break. Thanks.

On Sun, Sep 3, 2017 at 19:38 abdullah alamoudi <bamousaa@gmail.com> wrote:

> Hi All,
> I have created a wiki entry for entity level locks in asterixdb at
> https://cwiki.apache.org/confluence/display/ASTERIXDB/Entity+locks+in+AsterixDB
> <
> https://cwiki.apache.org/confluence/display/ASTERIXDB/Entity+locks+in+AsterixDB
> >
> It is pretty primitive at this stage but with your contribution, it can be
> improved quite a bit.
> The goal of this entry is to act as a reference to our locking for
> developers, testers, and users as well. We would like to use it as the
> basis as we're adding unit tests to locking within different cursors as
> we're adding unit tests to those.
>
> Special mention to @Taewoo to take a look :)
>
> Cheers,
> ~Abdullah.

--089e082212c8c5017605584d086a--

From dev-return-5184-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep  3 18:35:39 2017
Return-Path: <dev-return-5184-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 4131A19655
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun,  3 Sep 2017 18:35:39 +0000 (UTC)
Received: (qmail 82664 invoked by uid 500); 3 Sep 2017 18:35:39 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 82607 invoked by uid 500); 3 Sep 2017 18:35:38 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 82595 invoked by uid 99); 3 Sep 2017 18:35:38 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2017 18:35:38 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id E23CB1813E9
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 18:35:37 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id mBl23A6Nln3P for <dev@asterixdb.apache.org>;
	Sun,  3 Sep 2017 18:35:33 +0000 (UTC)
Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id A80C660DA9
	for <dev@asterixdb.apache.org>; Sun,  3 Sep 2017 18:35:32 +0000 (UTC)
Received: by mail-wm0-f42.google.com with SMTP id 187so26116701wmn.1
        for <dev@asterixdb.apache.org>; Sun, 03 Sep 2017 11:35:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
        bh=y1N62RvNTasXnqEVAD+zroI3hfUkK7hnBxuHPtNPtGc=;
        b=brL4MZhjCvF/UVoPbolCuAUHA+PuppSgnzdJfYYD6erzjoEp9CTWRsAvBSqIO8MRTo
         D7O973RNUlBaESg/QBP+LQXyobN9m2zNEXJvkNUVdAt4x3CyceR1kDMVG9ew9zYre9b8
         AbXCoS8INJ6T/j+iOfdnr9ehAqIw3uakmwdrp5crqV3ap52haQkKc/kbRdmWLM5gEhAH
         yQ7ZQ6vuL6HfbX+DOPts9CECrQaxqLDqaDSVk7rAtLQFVWc/ZniM1lOV94tNbPNCLwtT
         z3NE8aFw29p98/FZx1eQ4LrTfGQz/3fDzxbmNVuLucmJzU55XGwUgusLBXl1vz2SMVQy
         zCMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=y1N62RvNTasXnqEVAD+zroI3hfUkK7hnBxuHPtNPtGc=;
        b=XGMBspdg5RcViEBYCW7dlITqRIxrQ3Zpxbza9fN7bz2qa9YNbrGm8r9vQPoAM8zcdo
         gu5pOacHM9IEXZNMZJaokEtBoH2j8ggtgGnMpvSnNIeyjkVc9AEj/i2U3o1dLbHGg10/
         pTVkDD8ssHtsjjqzjRyEqSpzRy1phV06lmJgEtx39XRpFvfoMnHN78S6j6r/O+wto29k
         KzLbZ+1rSKTO2vflVqif1/73xxOycq/e/ktg7KpbgvenuKnQb1IsBZVAC8J0j6wMS1wI
         sNwLig8ezrq53Bu91oVpBaTvWejSj1NLBBVCJF+R+qbBXFXNYtDld5XnzTCT/KlkSuer
         ABrg==
X-Gm-Message-State: AHPjjUg2WaCkSJquxDZACV4rrTVu88beiJT6urIczY6dJzkX2zNqHItN
	FYNEUZpFievdN1Lhg6IafHr2JaOa8Q==
X-Google-Smtp-Source: ADKCNb4/Dhx47ige/UaKrSUJ4ti7FQZYazI7xF6SA+2Ub1f33Q0nWF40oct5IjE1VpD112TFBcCX/V7FPhbsBtIRy+c=
X-Received: by 10.80.218.72 with SMTP id a8mr7195370edk.211.1504463725671;
 Sun, 03 Sep 2017 11:35:25 -0700 (PDT)
MIME-Version: 1.0
References: <E7FED432-B7DB-4F01-B4F7-D4493A72C8D1@gmail.com>
In-Reply-To: <E7FED432-B7DB-4F01-B4F7-D4493A72C8D1@gmail.com>
From: Taewoo Kim <wangsaeu@gmail.com>
Date: Sun, 03 Sep 2017 18:35:14 +0000
Message-ID: <CABytAGrDVLCJ3LT_7yk1Nwfu0RTofrz5x17ghW4NWZhyDSo2CA@mail.gmail.com>
Subject: Re: ILogicalOperator.isMap
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="089e08224178f23b8b05584d41ad"

--089e08224178f23b8b05584d41ad
Content-Type: text/plain; charset="UTF-8"

My understanding is that isMap() is set to true when the cardinality of the
input may not be equal to the the cardinality of the output. To settle this
issue, I come up with one explicit property in my Limit Push down branch.
The attribute is called canDecreaseCardinality.

On Sun, Sep 3, 2017 at 19:46 abdullah alamoudi <bamousaa@gmail.com> wrote:

> Dear devs,
> I was going over implementations of ILogicalOperator.isMap in our code
> base and here is the breakdown:
>
> isMap()
>
> true:
> -Assign
> -AbstractReplicateOperator
> -AbstractUnnestOperator
> -ExchangeOperator
> -InsertDeleteUpsertOperator
> -LimitOperator
> -ProjectOperator
> -SelectOperator
>
>
>
> false:
> -Order
> -Aggregate
> -RunningAggregate
> -AbstractBinaryJoin
> -AbstractOperatorWithNestedPlans
> -DataSourceScanOperator
> -DistinctOperator
> -DistributeResultOperator
> -EmptyTupleSourceOperator
> -IndexInsertDeleteUpsertOperator
> -IntersectOperator
> -MaterializeOperator
> -NestedTupleSourceOperator
> -ScriptOperator
> -SinkOperator
> -TokenizeOperator
> -UnionAllOperator
> -WriteOperator
> -WriteResultOperator
>
> As I understood at some point is that isMap means (does this operator map
> input tuples to output tuples without blocking?). I am not sure how
> accurate this description is but it clearly introduces a problem as:
>
> * InsertDeleteUpsertOperator.isMap() -> true
> * IndexInsertDeleteUpsertOperator.isMap() -> false
>
> Moreover,
> TokenizeOperator.isMap() -> false
> AbstractUnnestOperator.isMap() -> true
>
> while clearly, as per the definition above, these two operators should
> have the same output: true
>
> Can someone solve the mystery?
> Once this is solved, I will add a wiki entry to explain this flag.
>
> Cheers,
> Abdullah.

--089e08224178f23b8b05584d41ad--

From dev-return-5185-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Mon Sep  4 06:44:19 2017
Return-Path: <dev-return-5185-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 6DB881A24E
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Mon,  4 Sep 2017 06:44:19 +0000 (UTC)
Received: (qmail 1674 invoked by uid 500); 4 Sep 2017 06:44:19 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 1622 invoked by uid 500); 4 Sep 2017 06:44:19 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 1606 invoked by uid 99); 4 Sep 2017 06:44:18 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Sep 2017 06:44:18 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id EDA5DC2E45
	for <dev@asterixdb.apache.org>; Mon,  4 Sep 2017 06:44:17 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.79
X-Spam-Level: *
X-Spam-Status: No, score=1.79 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2,
	RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, T_REMOTE_IMAGE=0.01]
	autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=cse-mrt-ac-lk.20150623.gappssmtp.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id P5MtMvs1_eEQ for <dev@asterixdb.apache.org>;
	Mon,  4 Sep 2017 06:44:14 +0000 (UTC)
Received: from mail-qt0-f178.google.com (mail-qt0-f178.google.com [209.85.216.178])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 370735FCB9
	for <dev@asterixdb.apache.org>; Mon,  4 Sep 2017 06:44:14 +0000 (UTC)
Received: by mail-qt0-f178.google.com with SMTP id w42so19383690qtg.5
        for <dev@asterixdb.apache.org>; Sun, 03 Sep 2017 23:44:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cse-mrt-ac-lk.20150623.gappssmtp.com; s=20150623;
        h=mime-version:in-reply-to:references:from:date:message-id:subject:to;
        bh=qJNqRqnAlt28nSqPOKRE9111Z3lpt4A7RJZiCwB/cvI=;
        b=fxwnHJZ3pVqmDMQMjfVhZquWuqUBfx72MaGfkBnDJwJHsWvfZvJfqUFPbCjGX7UghK
         95Pdg5qipR+/vJbNSd6RNfa5+5EfiOPyf4vYkEVxTrSJQdqs4gy0vXfmbBg6wJM/+G+5
         ygY41eekgm01neviD+vj6n9fZ59gzeDnsxoCthm8ouF0PoOWaFOrxqaKftSjfbGeUsWP
         bsUs9xRQLgMO5CEixZj1fyr8GbG2QYETU+WHwkG1qQ83ngho9lXfQsGD4yLS/v1w3H+O
         4alu9ZGDGLdDgL74Bq9Y9md5nT6oJZUlm2RoVdEtjSklHc+9bCpW0W2kpMeAUqhKdhW8
         d5yg==
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;
        bh=qJNqRqnAlt28nSqPOKRE9111Z3lpt4A7RJZiCwB/cvI=;
        b=dQJKjC50yO4i2OTNY95JUNgFS30jJEvYgx03aYwlN/4iv+Vqm9C+B4vMDpaXC5Kjxb
         bkn2zSsHkk6HREtgCkpUm5uDTK/B9ZYTe0jctAbG1tQtHoHeIiUMp62hG5nYqUAdyEXM
         BKMTnCpHu5WJgVJSaMV0pBNf9QWyKd2I6SpnjtSP/faCrrUI5IrnhTcsSIgauxjuESDU
         kRdkjm8rlI/U1gaFr0MeznSS7XToyl/1yOD1rQm7gRBRElKoqTIvCCYCF9FG7OWsrD+y
         gVNZi+DAfQJa6qia8sbpbw/VvmXoExjRXp6eeXUY8+CCsLLqcRRdQqFbnzAZvevLvUNC
         nEFg==
X-Gm-Message-State: AHPjjUgOoDmGN1RbUzDboafRuQ8XsnTHQfM3IRQpQ9QY/DDFkr2PvzXT
	78jCj6RAYjqMJCj2CLfryHIUwa+umjzLxGU=
X-Google-Smtp-Source: ADKCNb7YJdZBLMLPLbMqpCemMw9tKgogUiH/4CKBm3Q3saX7/5OXxFHAgOMJAnd7UCyTwwzm2wi9N6Mg8JFqVdbaMtc=
X-Received: by 10.237.63.41 with SMTP id p38mr12993439qtf.322.1504507453625;
 Sun, 03 Sep 2017 23:44:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.237.44.99 with HTTP; Sun, 3 Sep 2017 23:44:13 -0700 (PDT)
In-Reply-To: <CAMOqS+hJfoTubyizmivi-jUY6=XzYU8-_qh=9=v4FuRpvU3eEw@mail.gmail.com>
References: <CAMOqS+irZZyK9-5TMVH88H3W9_rpGTnSCDjF2ObgfO0tfhZZUg@mail.gmail.com>
 <05D322EF-1890-44C0-AF67-A8E9A740D1FB@apache.org> <a60b36be-1c00-e4d7-82b6-3f84ec4c6af6@gmail.com>
 <CALgBV_fiVVCyAOyVDJGOtMjB3oQV+=euyaFxA4eud0pmQukC-w@mail.gmail.com>
 <CA++eH557a5BCdPHjETaHcb2NZZGwF96U6F05irtGAHtrrJu57g@mail.gmail.com>
 <3a66e7df-f5b4-fea1-2d42-7e51593dc921@gmail.com> <CA++eH57EEULN5kQa1Ja68wwtDds3726eq2NNo53BzpUJt0RoHA@mail.gmail.com>
 <036552c9-9acb-e970-cd00-64c0b01563a4@gmail.com> <CA++eH56Vkz195oUm298RJMmnjxqQxJX3ZdfC9vH5UMe7dRUMgg@mail.gmail.com>
 <CAMOqS+heg6WT7dZgRvDbmWTeSWsU5sn7kf6Z-uLT7XQOXJcESg@mail.gmail.com>
 <89E48961-E2B3-4747-B6DB-E276D56E58D7@apache.org> <ab1b73a4-315a-3f74-ec5f-4a9b427c458f@gmail.com>
 <9E561816-4840-4E16-B1CF-7F96AB7A7F43@apache.org> <CAMOqS+hJfoTubyizmivi-jUY6=XzYU8-_qh=9=v4FuRpvU3eEw@mail.gmail.com>
From: Riyafa Abdul Hameed <riyafa.12@cse.mrt.ac.lk>
Date: Mon, 4 Sep 2017 12:14:13 +0530
Message-ID: <CAMOqS+i+VGdnZ0s15xSocUc7h7ZeQJ-+3Ra+sE6KTnSWTF4djw@mail.gmail.com>
Subject: Re: License issue when using esri geometry api
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a11410e0455e6bd055857708b"

--001a11410e0455e6bd055857708b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

Esri geometry-api version 2.0.0 have been released in maven central[1]. Now
I am able to use it without any license issues[2].

[1] https://github.com/Esri/geometry-api-java/issues/140
[2] https://asterix-gerrit.ics.uci.edu/#/c/1838

Thank you.
Sincerely,
Riyafa

On 30 July 2017 at 07:58, Riyafa Abdul Hameed <riyafa.12@cse.mrt.ac.lk>
wrote:

> Hi Till,
>
> Thank you. You seem to have followed the option 2). I didn't understand
> how to get along with option 1). I wanted to ask with Ahmed about it and
> get back.
> I have no idea when they will release so I asked a question[1] though I
> didn't get an answer for that.
>
> Thank you.
> Sincerely,
> Riyafa
>
> [1] https://github.com/Esri/geometry-api-java/issues/140
>
> On 29 July 2017 at 10:58, Till Westmann <tillw@apache.org> wrote:
>
>> Hi Riyafa,
>>
>> I=E2=80=99ve uploaded another commit to your change [4] that shows what =
option 2)
>> would look like.
>> Please take a look and see what you think.
>> I think that this could only be a temporary solution.
>> Do you have an idea, when Esri might publish a new version of the API?
>>
>> Cheers,
>> Till
>>
>> [4] https://asterix-gerrit.ics.uci.edu/#/c/1895
>>
>>
>> On 27 Jul 2017, at 10:13, Mike Carey wrote:
>>
>> +1 on option 1 for now, I would say (from afar :-)), until ESRI finishes
>>> resolving stuff on their end.
>>>
>>> Aloha,
>>>
>>> Mike
>>>
>>>
>>> On 7/27/17 6:23 AM, Till Westmann wrote:
>>>
>>>> Hi,
>>>>
>>>> I=E2=80=99m sorry for the late reply on the subject.
>>>>
>>>> Generally, Apache-releases are source releases [3] and so adding a
>>>> precompiled jar without sources would prevent us from being able to
>>>> release AsterixDB. So we will have to find another solution.
>>>>
>>>> A few options that I can think of right now would be to
>>>> 1) make it an optional dependency and require the user to
>>>> require/obtain the jar external and to provide it to the platform that
>>>> they build on or to
>>>> 2) include the source files in the AsterixDB source repository or to
>>>> 3) download and build the source as part of the build process.
>>>>
>>>> Of these 3 options, I think that 1) is the cleanest option from a
>>>> licensing perspective, 2) can be managed if we understand the
>>>> provenance of the source files and 3) seems problematic as we would pu=
t
>>>> a load on a system that provide the source for every build and as we
>>>> could retrieve use unvetted source code.
>>>>
>>>> Thoughts/concerns about these options?
>>>> Does anybody see other options?
>>>>
>>>> Cheers,
>>>> Till
>>>>
>>>> [3] http://www.apache.org/legal/release-policy.html#artifacts
>>>>
>>>> On 27 Jul 2017, at 7:21, Riyafa Abdul Hameed wrote:
>>>>
>>>> Dear all,
>>>>>
>>>>> Is there a way to ship a jar file as a dependency for AsterixDB apart
>>>>> from
>>>>> the method I have used here[1]. This is because the build of
>>>>> asterix-app
>>>>> seems to fail[2] when I use the external jar file like this.
>>>>> Though I am unable to find a connection between the failure and the
>>>>> dependency it seems I need to assume that it is the cause, because
>>>>> otherwise if I use the Maven-released version the build passes withou=
t
>>>>> issue.
>>>>>
>>>>> Any help would be highly appreciated.
>>>>> [1]
>>>>> https://asterix-gerrit.ics.uci.edu/#/c/1895/3/asterixdb/aste
>>>>> rix-om/pom.xml
>>>>> [2] https://asterix-gerrit.ics.uci.edu/#/c/1895
>>>>>
>>>>> On 22 July 2017 at 01:59, Ahmed Eldawy <eldawy@cs.ucr.edu> wrote:
>>>>>
>>>>> Although Esri resolved the issue, their Maven-released version still
>>>>>> relies
>>>>>> on the incompatible library. We can wait until they release a new
>>>>>> version
>>>>>> on Maven but this might take a while. To be able to merge the curren=
t
>>>>>> code,
>>>>>> we might need to compile our own JAR file and ship it with the sourc=
e
>>>>>> code.
>>>>>> Do you know if this is possible/allowed/recommended in AsterixDB? Is
>>>>>> there
>>>>>> another preferred way to handle this issue? Keep in mind that, most
>>>>>> likely,
>>>>>> the summer project will conclude before Esri releases the new versio=
n.
>>>>>>
>>>>>> Thanks
>>>>>> Ahmed
>>>>>>
>>>>>> On Tue, Jul 11, 2017 at 11:04 AM, Mike Carey <dtabass@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> NICE!!!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 7/11/17 9:39 AM, Ahmed Eldawy wrote:
>>>>>>>
>>>>>>> There's a good news. Riyafa has opened an issue on ESRI Geometry AP=
I
>>>>>>>> project on Github about the license problem and they made the
>>>>>>>> necessary
>>>>>>>> changes to remove the bad dependency.
>>>>>>>> https://github.com/Esri/geometry-api-java/issues/135
>>>>>>>> The changes are on their github repository but they are not releas=
ed
>>>>>>>>
>>>>>>> yet.
>>>>>>
>>>>>>> I
>>>>>>>> think we can just continue what we're doing and wait for the new
>>>>>>>> release
>>>>>>>> to
>>>>>>>> hit Maven repository.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Ahmed
>>>>>>>>
>>>>>>>> On Mon, Jun 26, 2017 at 7:55 AM, Mike Carey <dtabass@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> It sounds like the best option is 4 minus parsing, then, if we can
>>>>>>>> do
>>>>>>>>
>>>>>>>>> that.  (Which would also address Wail's comments, which could be =
a
>>>>>>>>>
>>>>>>>> killer
>>>>>>
>>>>>>> for big data eventually.)  If not, we could go with 2 for the summe=
r
>>>>>>>>>
>>>>>>>> as a
>>>>>>
>>>>>>> first step, I guess?  (But figuring out the feasibility of 4 would =
be
>>>>>>>>> great...)
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>>
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 6/26/17 2:59 AM, Ahmed Eldawy wrote:
>>>>>>>>>
>>>>>>>>> It seems that (3) would require modifying the open source Esri AP=
I
>>>>>>>>>
>>>>>>>>>> library
>>>>>>>>>> which I don't like. Not only for the overhead of understanding a=
nd
>>>>>>>>>> modifying the code, but also for deviating from the standard
>>>>>>>>>> library
>>>>>>>>>> which
>>>>>>>>>> means we will miss future updates. One of the reasons we chose t=
o
>>>>>>>>>> use
>>>>>>>>>> Esri
>>>>>>>>>> API is the hope that it will be well-maintained in the future.
>>>>>>>>>> This leaves us with (4). I don't know if it is technically
>>>>>>>>>> possible to
>>>>>>>>>> depend on the standard Esri API without using the non-compliant
>>>>>>>>>>
>>>>>>>>> library
>>>>>>
>>>>>>> or
>>>>>>>>>> not. If this is possible, then we can just use the computational
>>>>>>>>>> geometry
>>>>>>>>>> (CG) functionality from the library, and provide our own GeoJSON
>>>>>>>>>>
>>>>>>>>> parser.
>>>>>>
>>>>>>> If
>>>>>>>>>> this is not possible, then I would rather consider the use of
>>>>>>>>>> another
>>>>>>>>>> library, e.g., JTS.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> Ahmed
>>>>>>>>>>
>>>>>>>>>> On Sun, Jun 25, 2017 at 11:47 AM, Wail Alkowaileet <
>>>>>>>>>>
>>>>>>>>> wael.y.k@gmail.com>
>>>>>>
>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> I can see from the code that there is a serder steps as such:
>>>>>>>>>> Asterix
>>>>>>>>>>
>>>>>>>>>> Object (binary) --> JSON (String) --> Esri geometry (Java object=
)
>>>>>>>>>>> -->
>>>>>>>>>>> Esri
>>>>>>>>>>> geometry (binary).
>>>>>>>>>>> I think it would be nice if there is a binary-to-binary
>>>>>>>>>>> conversion
>>>>>>>>>>> without
>>>>>>>>>>> any deserialization (4th option).
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Jun 25, 2017 at 6:36 PM, Mike Carey <dtabass@gmail.com>
>>>>>>>>>>>
>>>>>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>>>>> Agreed that 3 or 4 are what we'll need to do....! (Sigh.)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 6/25/17 5:57 AM, Till Westmann wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Riyafa,
>>>>>>>>>>>>
>>>>>>>>>>>> I think that the problem is bigger than the failing test. The
>>>>>>>>>>>>> JSON
>>>>>>>>>>>>> license itself is not acceptable for inclusion in an Apache
>>>>>>>>>>>>>
>>>>>>>>>>>> artifact
>>>>>>
>>>>>>> [4]. So we cannot use the ESRI API as-is, if we want the GeoJSON
>>>>>>>>>>>>> functionality be a non-optional part of AsterixDB.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Here are a few options I see:
>>>>>>>>>>>>> 1) Make GeoJSON an optional part of AsterixDB (separate
>>>>>>>>>>>>> download
>>>>>>>>>>>>> from a
>>>>>>>>>>>>>      non-Apache location).
>>>>>>>>>>>>> 2) Make JSON.org a dependency that is not shipped (i.e. each
>>>>>>>>>>>>> user
>>>>>>>>>>>>> would
>>>>>>>>>>>>>      have to download and install those jars separately - and
>>>>>>>>>>>>> get
>>>>>>>>>>>>> error
>>>>>>>>>>>>>      messages if the jars are not available).
>>>>>>>>>>>>> 3) Create a clone/copy of the ESRI API that uses another JSON
>>>>>>>>>>>>> library.
>>>>>>>>>>>>> 4) Do all of the parsing independently from the ESRI API.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I=E2=80=99m not sure if 1) is a good option as the extensibil=
ity in
>>>>>>>>>>>>> this
>>>>>>>>>>>>>
>>>>>>>>>>>> part
>>>>>>
>>>>>>> of the code might not be sufficient to support this option easily.
>>>>>>>>>>>>> 2) is technically easier, but it involves an unpleasant user
>>>>>>>>>>>>> experience.
>>>>>>>>>>>>> Also, I think that both 1) and 2) are not desirable, as GeoJS=
ON
>>>>>>>>>>>>> should
>>>>>>>>>>>>> be supported by vanilla AsterixDB.
>>>>>>>>>>>>> For 3) and 4) we would need to look into the details to see h=
ow
>>>>>>>>>>>>>
>>>>>>>>>>>> much
>>>>>>
>>>>>>> work is required for each of those options and if there are other
>>>>>>>>>>>>> legal
>>>>>>>>>>>>> hurdles.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Are there other options?
>>>>>>>>>>>>> Other thoughts/concerns?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>> Till
>>>>>>>>>>>>>
>>>>>>>>>>>>> [4] https://www.apache.org/legal/resolved.html#category-x
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 25 Jun 2017, at 13:57, Riyafa Abdul Hameed wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Dear all,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I implemented parse_geojon() function[1] using esri-geometry
>>>>>>>>>>>>> api[2]
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> which
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> is apache-2.0 licensed. But this api uses org.json as a
>>>>>>>>>>>> dependency.
>>>>>>>>>>>>
>>>>>>>>>>>> org.json is licensed under JSON which causes a license issue i=
n
>>>>>>>>>>>>> the
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> code
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> I
>>>>>>>>>>>>
>>>>>>>>>>>> have written[3]. What can I do about this issue?
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [1] https://asterix-gerrit.ics.uci.edu/1838
>>>>>>>>>>>>>> [2]https://github.com/Esri/geometry-api-java
>>>>>>>>>>>>>> [3]
>>>>>>>>>>>>>> https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integ
>>>>>>>>>>>>>> ration-tests/3290/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you.
>>>>>>>>>>>>>> Yours sincerely,
>>>>>>>>>>>>>> Riyafa
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>> *Regards,*
>>>>>>>>>>> Wail Alkowaileet
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Ahmed Eldawy
>>>>>> Assistant Professor
>>>>>> http://www.cs.ucr.edu/~eldawy
>>>>>> Tel: +1 (951) 827-5654
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Riyafa Abdul Hameed
>>>>> Undergraduate, University of Moratuwa
>>>>>
>>>>> Email: riyafa.12@cse.mrt.ac.lk
>>>>> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
>>>>> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa>
>>>>> <http://twitter.com/Riyafa1>
>>>>>
>>>>
>
>
> --
> Riyafa Abdul Hameed
> Undergraduate, University of Moratuwa
>
> Email: riyafa.12@cse.mrt.ac.lk
> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
> <http://facebook.com/riyafa.ahf>  <http://lk.linkedin.com/in/riyafa>
> <http://twitter.com/Riyafa1>
>



--=20
Riyafa Abdul Hameed
Undergraduate, University of Moratuwa

Email: riyafa.12@cse.mrt.ac.lk
Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
<http://facebook.com/riyafa.ahf>  <http://lk.linkedin.com/in/riyafa>
<http://twitter.com/Riyafa1>

--001a11410e0455e6bd055857708b--


From dev-return-5186-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Mon Sep  4 15:37:53 2017
Return-Path: <dev-return-5186-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 2C15F1A332
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Mon,  4 Sep 2017 15:37:53 +0000 (UTC)
Received: (qmail 98657 invoked by uid 500); 4 Sep 2017 15:37:53 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 98599 invoked by uid 500); 4 Sep 2017 15:37:51 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 98587 invoked by uid 99); 4 Sep 2017 15:37:51 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Sep 2017 15:37:51 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 047671A290B
	for <dev@asterixdb.apache.org>; Mon,  4 Sep 2017 15:37:51 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id oi7mENHOk_IJ for <dev@asterixdb.apache.org>;
	Mon,  4 Sep 2017 15:37:43 +0000 (UTC)
Received: from mail-oi0-f49.google.com (mail-oi0-f49.google.com [209.85.218.49])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 422B661274
	for <dev@asterixdb.apache.org>; Mon,  4 Sep 2017 15:37:38 +0000 (UTC)
Received: by mail-oi0-f49.google.com with SMTP id t75so6369169oie.3
        for <dev@asterixdb.apache.org>; Mon, 04 Sep 2017 08:37:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-language;
        bh=+V21kLkpECIno8y+qQl0gB+NV6zmbqsYi9rbC4kaJoE=;
        b=fV8XiEDjnWL1GpED5exUIooFO6Zd5vm73H9Z76ZT+AcgvS4pRFIhm1L3Tpl5g2RH28
         Zr6mntwolrth3J+KeFdXJw1Hqnx7TDNFIvsKAbtI26SkkljEhtVdNW/7E2DtBndPXpRb
         bcp0L2Rua8+HOl5ZcdgLfgHy5Lj50SOcEufHibha1rG/L5ouw1tu/2/0DAVswADf04N1
         HEUXxp3oz7+9RykBoq3pBmAUDxRulzxwasFig97I9lzxAPR/sWEdTbBoX7+7ubjDZKCw
         C5rCsISzEa7DL2YP8GQ8kyaqmPpgSNHWVD8tebHfV357mjOsbTHvRAUsKzGDdcx89iI7
         vEsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=+V21kLkpECIno8y+qQl0gB+NV6zmbqsYi9rbC4kaJoE=;
        b=J6NHNF4cvukI3CQvbkou7beigUVAkW7sFC7isl4H1aKx72vPNW0BLEclUDxghOuWf7
         5lV12WWf1ye12wGMIb7vDgDf8nKLny9U+NhU+hBJN6QS1ks9S0AdL9FU4VaGekE3WA6V
         MO4IqmliKaQZEOBFhMOwHle33Rlw4pL2h0p4sPRXL8Gj505Xd3x+ISj6UeumTPmlxRoa
         rUfOR+rJWUnSCs+1XCDji2NCXhadPX2BrZp5itnLn/wc8yuorHcJ96COZ5V1W4oxJpOF
         O9E6my64JCbscA/GctrhGm2tRMCg2Hem2afOQlLnJCvKbr57UXlnq64zT/bBY//JhmND
         fw9Q==
X-Gm-Message-State: AHPjjUjfgTg03De5ULuWsVl/zFZHim/8RDC2ZObdD8ZGmRWwElAiqekT
	nuQzVPQ5N1DxV/f6
X-Google-Smtp-Source: ADKCNb48VIwcza5zWxsVN1ESC8hti8tkw9yr9RyxFhpQ1BDwOL1hySUMr+y3n5Ft6cjCzIfvbfJ9ow==
X-Received: by 10.202.75.211 with SMTP id y202mr971098oia.66.1504539457154;
        Mon, 04 Sep 2017 08:37:37 -0700 (PDT)
Received: from mikejcarey.local ([2600:8802:4500:fc:2433:4cf0:1eaf:7578])
        by smtp.googlemail.com with ESMTPSA id f136sm6299697oic.7.2017.09.04.08.37.34
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 04 Sep 2017 08:37:35 -0700 (PDT)
Subject: Re: License issue when using esri geometry api
To: dev@asterixdb.apache.org
References: <CAMOqS+irZZyK9-5TMVH88H3W9_rpGTnSCDjF2ObgfO0tfhZZUg@mail.gmail.com>
 <05D322EF-1890-44C0-AF67-A8E9A740D1FB@apache.org>
 <a60b36be-1c00-e4d7-82b6-3f84ec4c6af6@gmail.com>
 <CALgBV_fiVVCyAOyVDJGOtMjB3oQV+=euyaFxA4eud0pmQukC-w@mail.gmail.com>
 <CA++eH557a5BCdPHjETaHcb2NZZGwF96U6F05irtGAHtrrJu57g@mail.gmail.com>
 <3a66e7df-f5b4-fea1-2d42-7e51593dc921@gmail.com>
 <CA++eH57EEULN5kQa1Ja68wwtDds3726eq2NNo53BzpUJt0RoHA@mail.gmail.com>
 <036552c9-9acb-e970-cd00-64c0b01563a4@gmail.com>
 <CA++eH56Vkz195oUm298RJMmnjxqQxJX3ZdfC9vH5UMe7dRUMgg@mail.gmail.com>
 <CAMOqS+heg6WT7dZgRvDbmWTeSWsU5sn7kf6Z-uLT7XQOXJcESg@mail.gmail.com>
 <89E48961-E2B3-4747-B6DB-E276D56E58D7@apache.org>
 <ab1b73a4-315a-3f74-ec5f-4a9b427c458f@gmail.com>
 <9E561816-4840-4E16-B1CF-7F96AB7A7F43@apache.org>
 <CAMOqS+hJfoTubyizmivi-jUY6=XzYU8-_qh=9=v4FuRpvU3eEw@mail.gmail.com>
 <CAMOqS+i+VGdnZ0s15xSocUc7h7ZeQJ-+3Ra+sE6KTnSWTF4djw@mail.gmail.com>
From: Mike Carey <dtabass@gmail.com>
Message-ID: <2c5b9fa3-8189-bb3a-ecc7-1574adddeeea@gmail.com>
Date: Mon, 4 Sep 2017 08:37:34 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0)
 Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <CAMOqS+i+VGdnZ0s15xSocUc7h7ZeQJ-+3Ra+sE6KTnSWTF4djw@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------A7869F0AF9A74A2949AD91FE"
Content-Language: en-US

--------------A7869F0AF9A74A2949AD91FE
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Nice!


On 9/3/17 11:44 PM, Riyafa Abdul Hameed wrote:
> Hi,
>
> Esri geometry-api version 2.0.0 have been released in maven central[1]. Now
> I am able to use it without any license issues[2].
>
> [1] https://github.com/Esri/geometry-api-java/issues/140
> [2] https://asterix-gerrit.ics.uci.edu/#/c/1838
>
> Thank you.
> Sincerely,
> Riyafa
>
> On 30 July 2017 at 07:58, Riyafa Abdul Hameed <riyafa.12@cse.mrt.ac.lk>
> wrote:
>
>> Hi Till,
>>
>> Thank you. You seem to have followed the option 2). I didn't understand
>> how to get along with option 1). I wanted to ask with Ahmed about it and
>> get back.
>> I have no idea when they will release so I asked a question[1] though I
>> didn't get an answer for that.
>>
>> Thank you.
>> Sincerely,
>> Riyafa
>>
>> [1] https://github.com/Esri/geometry-api-java/issues/140
>>
>> On 29 July 2017 at 10:58, Till Westmann <tillw@apache.org> wrote:
>>
>>> Hi Riyafa,
>>>
>>> I’ve uploaded another commit to your change [4] that shows what option 2)
>>> would look like.
>>> Please take a look and see what you think.
>>> I think that this could only be a temporary solution.
>>> Do you have an idea, when Esri might publish a new version of the API?
>>>
>>> Cheers,
>>> Till
>>>
>>> [4] https://asterix-gerrit.ics.uci.edu/#/c/1895
>>>
>>>
>>> On 27 Jul 2017, at 10:13, Mike Carey wrote:
>>>
>>> +1 on option 1 for now, I would say (from afar :-)), until ESRI finishes
>>>> resolving stuff on their end.
>>>>
>>>> Aloha,
>>>>
>>>> Mike
>>>>
>>>>
>>>> On 7/27/17 6:23 AM, Till Westmann wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I’m sorry for the late reply on the subject.
>>>>>
>>>>> Generally, Apache-releases are source releases [3] and so adding a
>>>>> precompiled jar without sources would prevent us from being able to
>>>>> release AsterixDB. So we will have to find another solution.
>>>>>
>>>>> A few options that I can think of right now would be to
>>>>> 1) make it an optional dependency and require the user to
>>>>> require/obtain the jar external and to provide it to the platform that
>>>>> they build on or to
>>>>> 2) include the source files in the AsterixDB source repository or to
>>>>> 3) download and build the source as part of the build process.
>>>>>
>>>>> Of these 3 options, I think that 1) is the cleanest option from a
>>>>> licensing perspective, 2) can be managed if we understand the
>>>>> provenance of the source files and 3) seems problematic as we would put
>>>>> a load on a system that provide the source for every build and as we
>>>>> could retrieve use unvetted source code.
>>>>>
>>>>> Thoughts/concerns about these options?
>>>>> Does anybody see other options?
>>>>>
>>>>> Cheers,
>>>>> Till
>>>>>
>>>>> [3] http://www.apache.org/legal/release-policy.html#artifacts
>>>>>
>>>>> On 27 Jul 2017, at 7:21, Riyafa Abdul Hameed wrote:
>>>>>
>>>>> Dear all,
>>>>>> Is there a way to ship a jar file as a dependency for AsterixDB apart
>>>>>> from
>>>>>> the method I have used here[1]. This is because the build of
>>>>>> asterix-app
>>>>>> seems to fail[2] when I use the external jar file like this.
>>>>>> Though I am unable to find a connection between the failure and the
>>>>>> dependency it seems I need to assume that it is the cause, because
>>>>>> otherwise if I use the Maven-released version the build passes without
>>>>>> issue.
>>>>>>
>>>>>> Any help would be highly appreciated.
>>>>>> [1]
>>>>>> https://asterix-gerrit.ics.uci.edu/#/c/1895/3/asterixdb/aste
>>>>>> rix-om/pom.xml
>>>>>> [2] https://asterix-gerrit.ics.uci.edu/#/c/1895
>>>>>>
>>>>>> On 22 July 2017 at 01:59, Ahmed Eldawy <eldawy@cs.ucr.edu> wrote:
>>>>>>
>>>>>> Although Esri resolved the issue, their Maven-released version still
>>>>>>> relies
>>>>>>> on the incompatible library. We can wait until they release a new
>>>>>>> version
>>>>>>> on Maven but this might take a while. To be able to merge the current
>>>>>>> code,
>>>>>>> we might need to compile our own JAR file and ship it with the source
>>>>>>> code.
>>>>>>> Do you know if this is possible/allowed/recommended in AsterixDB? Is
>>>>>>> there
>>>>>>> another preferred way to handle this issue? Keep in mind that, most
>>>>>>> likely,
>>>>>>> the summer project will conclude before Esri releases the new version.
>>>>>>>
>>>>>>> Thanks
>>>>>>> Ahmed
>>>>>>>
>>>>>>> On Tue, Jul 11, 2017 at 11:04 AM, Mike Carey <dtabass@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>> NICE!!!
>>>>>>>>
>>>>>>>>
>>>>>>>> On 7/11/17 9:39 AM, Ahmed Eldawy wrote:
>>>>>>>>
>>>>>>>> There's a good news. Riyafa has opened an issue on ESRI Geometry API
>>>>>>>>> project on Github about the license problem and they made the
>>>>>>>>> necessary
>>>>>>>>> changes to remove the bad dependency.
>>>>>>>>> https://github.com/Esri/geometry-api-java/issues/135
>>>>>>>>> The changes are on their github repository but they are not released
>>>>>>>>>
>>>>>>>> yet.
>>>>>>>> I
>>>>>>>>> think we can just continue what we're doing and wait for the new
>>>>>>>>> release
>>>>>>>>> to
>>>>>>>>> hit Maven repository.
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Ahmed
>>>>>>>>>
>>>>>>>>> On Mon, Jun 26, 2017 at 7:55 AM, Mike Carey <dtabass@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> It sounds like the best option is 4 minus parsing, then, if we can
>>>>>>>>> do
>>>>>>>>>
>>>>>>>>>> that.  (Which would also address Wail's comments, which could be a
>>>>>>>>>>
>>>>>>>>> killer
>>>>>>>> for big data eventually.)  If not, we could go with 2 for the summer
>>>>>>>>> as a
>>>>>>>> first step, I guess?  (But figuring out the feasibility of 4 would be
>>>>>>>>>> great...)
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>>
>>>>>>>>>> Mike
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 6/26/17 2:59 AM, Ahmed Eldawy wrote:
>>>>>>>>>>
>>>>>>>>>> It seems that (3) would require modifying the open source Esri API
>>>>>>>>>>
>>>>>>>>>>> library
>>>>>>>>>>> which I don't like. Not only for the overhead of understanding and
>>>>>>>>>>> modifying the code, but also for deviating from the standard
>>>>>>>>>>> library
>>>>>>>>>>> which
>>>>>>>>>>> means we will miss future updates. One of the reasons we chose to
>>>>>>>>>>> use
>>>>>>>>>>> Esri
>>>>>>>>>>> API is the hope that it will be well-maintained in the future.
>>>>>>>>>>> This leaves us with (4). I don't know if it is technically
>>>>>>>>>>> possible to
>>>>>>>>>>> depend on the standard Esri API without using the non-compliant
>>>>>>>>>>>
>>>>>>>>>> library
>>>>>>>> or
>>>>>>>>>>> not. If this is possible, then we can just use the computational
>>>>>>>>>>> geometry
>>>>>>>>>>> (CG) functionality from the library, and provide our own GeoJSON
>>>>>>>>>>>
>>>>>>>>>> parser.
>>>>>>>> If
>>>>>>>>>>> this is not possible, then I would rather consider the use of
>>>>>>>>>>> another
>>>>>>>>>>> library, e.g., JTS.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Ahmed
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Jun 25, 2017 at 11:47 AM, Wail Alkowaileet <
>>>>>>>>>>>
>>>>>>>>>> wael.y.k@gmail.com>
>>>>>>>> wrote:
>>>>>>>>>>> I can see from the code that there is a serder steps as such:
>>>>>>>>>>> Asterix
>>>>>>>>>>>
>>>>>>>>>>> Object (binary) --> JSON (String) --> Esri geometry (Java object)
>>>>>>>>>>>> -->
>>>>>>>>>>>> Esri
>>>>>>>>>>>> geometry (binary).
>>>>>>>>>>>> I think it would be nice if there is a binary-to-binary
>>>>>>>>>>>> conversion
>>>>>>>>>>>> without
>>>>>>>>>>>> any deserialization (4th option).
>>>>>>>>>>>>
>>>>>>>>>>>> On Sun, Jun 25, 2017 at 6:36 PM, Mike Carey <dtabass@gmail.com>
>>>>>>>>>>>>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> Agreed that 3 or 4 are what we'll need to do....! (Sigh.)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> On 6/25/17 5:57 AM, Till Westmann wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Riyafa,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I think that the problem is bigger than the failing test. The
>>>>>>>>>>>>>> JSON
>>>>>>>>>>>>>> license itself is not acceptable for inclusion in an Apache
>>>>>>>>>>>>>>
>>>>>>>>>>>>> artifact
>>>>>>>> [4]. So we cannot use the ESRI API as-is, if we want the GeoJSON
>>>>>>>>>>>>>> functionality be a non-optional part of AsterixDB.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Here are a few options I see:
>>>>>>>>>>>>>> 1) Make GeoJSON an optional part of AsterixDB (separate
>>>>>>>>>>>>>> download
>>>>>>>>>>>>>> from a
>>>>>>>>>>>>>>       non-Apache location).
>>>>>>>>>>>>>> 2) Make JSON.org a dependency that is not shipped (i.e. each
>>>>>>>>>>>>>> user
>>>>>>>>>>>>>> would
>>>>>>>>>>>>>>       have to download and install those jars separately - and
>>>>>>>>>>>>>> get
>>>>>>>>>>>>>> error
>>>>>>>>>>>>>>       messages if the jars are not available).
>>>>>>>>>>>>>> 3) Create a clone/copy of the ESRI API that uses another JSON
>>>>>>>>>>>>>> library.
>>>>>>>>>>>>>> 4) Do all of the parsing independently from the ESRI API.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I’m not sure if 1) is a good option as the extensibility in
>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>
>>>>>>>>>>>>> part
>>>>>>>> of the code might not be sufficient to support this option easily.
>>>>>>>>>>>>>> 2) is technically easier, but it involves an unpleasant user
>>>>>>>>>>>>>> experience.
>>>>>>>>>>>>>> Also, I think that both 1) and 2) are not desirable, as GeoJSON
>>>>>>>>>>>>>> should
>>>>>>>>>>>>>> be supported by vanilla AsterixDB.
>>>>>>>>>>>>>> For 3) and 4) we would need to look into the details to see how
>>>>>>>>>>>>>>
>>>>>>>>>>>>> much
>>>>>>>> work is required for each of those options and if there are other
>>>>>>>>>>>>>> legal
>>>>>>>>>>>>>> hurdles.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Are there other options?
>>>>>>>>>>>>>> Other thoughts/concerns?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>>> Till
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [4] https://www.apache.org/legal/resolved.html#category-x
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 25 Jun 2017, at 13:57, Riyafa Abdul Hameed wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Dear all,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I implemented parse_geojon() function[1] using esri-geometry
>>>>>>>>>>>>>> api[2]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> which
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> is apache-2.0 licensed. But this api uses org.json as a
>>>>>>>>>>>>> dependency.
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.json is licensed under JSON which causes a license issue in
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> code
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I
>>>>>>>>>>>>> have written[3]. What can I do about this issue?
>>>>>>>>>>>>>>> [1] https://asterix-gerrit.ics.uci.edu/1838
>>>>>>>>>>>>>>> [2]https://github.com/Esri/geometry-api-java
>>>>>>>>>>>>>>> [3]
>>>>>>>>>>>>>>> https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integ
>>>>>>>>>>>>>>> ration-tests/3290/
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thank you.
>>>>>>>>>>>>>>> Yours sincerely,
>>>>>>>>>>>>>>> Riyafa
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>
>>>>>>>>>>>> *Regards,*
>>>>>>>>>>>> Wail Alkowaileet
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> Ahmed Eldawy
>>>>>>> Assistant Professor
>>>>>>> http://www.cs.ucr.edu/~eldawy
>>>>>>> Tel: +1 (951) 827-5654
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Riyafa Abdul Hameed
>>>>>> Undergraduate, University of Moratuwa
>>>>>>
>>>>>> Email: riyafa.12@cse.mrt.ac.lk
>>>>>> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
>>>>>> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa>
>>>>>> <http://twitter.com/Riyafa1>
>>>>>>
>>
>> --
>> Riyafa Abdul Hameed
>> Undergraduate, University of Moratuwa
>>
>> Email: riyafa.12@cse.mrt.ac.lk
>> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
>> <http://facebook.com/riyafa.ahf>  <http://lk.linkedin.com/in/riyafa>
>> <http://twitter.com/Riyafa1>
>>
>
>


--------------A7869F0AF9A74A2949AD91FE--

From dev-return-5187-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Mon Sep  4 16:10:40 2017
Return-Path: <dev-return-5187-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 492D21A3FB
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Mon,  4 Sep 2017 16:10:40 +0000 (UTC)
Received: (qmail 60553 invoked by uid 500); 4 Sep 2017 16:10:40 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 60492 invoked by uid 500); 4 Sep 2017 16:10:39 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 60479 invoked by uid 99); 4 Sep 2017 16:10:39 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Sep 2017 16:10:39 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 9170B182490
	for <dev@asterixdb.apache.org>; Mon,  4 Sep 2017 16:10:38 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.379
X-Spam-Level:
X-Spam-Status: No, score=0.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id xeLpjjtZ463C for <dev@asterixdb.apache.org>;
	Mon,  4 Sep 2017 16:10:33 +0000 (UTC)
Received: from mail-oi0-f52.google.com (mail-oi0-f52.google.com [209.85.218.52])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id CB0956302E
	for <dev@asterixdb.apache.org>; Mon,  4 Sep 2017 15:43:25 +0000 (UTC)
Received: by mail-oi0-f52.google.com with SMTP id t75so6473203oie.3
        for <dev@asterixdb.apache.org>; Mon, 04 Sep 2017 08:43:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:content-transfer-encoding:mime-version:subject:date:references
         :to:in-reply-to:message-id;
        bh=51q0HlCV5V+pzouKIbtih+/ke0Kec/0JdogvZClmO1o=;
        b=aSrd9CtM2Vzvof8OA0LzDP6NZo6BapUh2ivfCMQzWf3PosRVHfvaPrvwUJ8CEs5nr2
         iG0ABQourZD9Cdqt+ny6/lDic0T/DQ2fhNBc6qBWGbr2eNj5tu3c1vnqHrqqisnItknr
         0Oa9d5qbegR55lUZV/2iR/cXMGPpNDqchFzRVnBbjBM5W1gqEJADk1El9V4bmFDhPZR/
         lKCYBQCLGvfAnnzimPXvOrmQObc10CN9G9r7yYarPYqnjfnVcqfJeJF25ln8Ikrs9Y8J
         z+iKKSBxuClL0T7Hld20DuzbVpJHASSkD+ttCn3W7vto5l60v/lNqUp1DijcdXWOznBK
         HW4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:content-transfer-encoding:mime-version
         :subject:date:references:to:in-reply-to:message-id;
        bh=51q0HlCV5V+pzouKIbtih+/ke0Kec/0JdogvZClmO1o=;
        b=oZKJEdbkvD0uOrhDVPkRXVr+h9JCzP+IrUCNnTQLhqWVcSL45JqFBV5QHvQvag3ThE
         rRWK5UYgTUR9c97XngFXTverxhSg1iChGYjuqFLuGcHyw8NiLtpr3+x4pQX4vAFNBja/
         aiCCEzLVZ/RREb58+iSgm9jVcrYf0YuF8Vwq31bkCSWh2cApAC5Yvee7bACbeEh0kzdn
         RPnV+0VgO90sN7IDM3LSB4DEUdeFsFHyuL1983oi4utTGB4/5VQmnNAhNeD2/MAjmT+p
         cBBhcvP5lephFiA1i1I68BNbhzqLbirwRWKvet9lqHQ0uUTMwkJT1ExzzKQFBbJpkY02
         xTUg==
X-Gm-Message-State: AHPjjUjVslp+dUzLAIj/II6IcYmku09/WqytB6AdDlFimGXfciIy8+yH
	o75NbRqi8zGzvpUev7g=
X-Google-Smtp-Source: ADKCNb5RYPCNGi+MAiL26LrlUpctOpyl5ZWnsVFbM6JOjq/jAzEKRLE69fJx2QBfUBO0LlH2M0TCPg==
X-Received: by 10.202.87.135 with SMTP id l129mr835588oib.293.1504539803641;
        Mon, 04 Sep 2017 08:43:23 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:b149:9ca1:41af:11a9? ([2600:8802:1203:ae00:b149:9ca1:41af:11a9])
        by smtp.gmail.com with ESMTPSA id o204sm9561226oib.5.2017.09.04.08.43.21
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 04 Sep 2017 08:43:22 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: ILogicalOperator.isMap
Date: Mon, 4 Sep 2017 08:43:20 -0700
References: <E7FED432-B7DB-4F01-B4F7-D4493A72C8D1@gmail.com>
 <CABytAGrDVLCJ3LT_7yk1Nwfu0RTofrz5x17ghW4NWZhyDSo2CA@mail.gmail.com>
To: dev@asterixdb.apache.org
In-Reply-To: <CABytAGrDVLCJ3LT_7yk1Nwfu0RTofrz5x17ghW4NWZhyDSo2CA@mail.gmail.com>
Message-Id: <FA60817C-D01F-4C50-A699-42F6A44701B5@gmail.com>
X-Mailer: Apple Mail (2.3273)

It seems that it is set to true when the operator has the two =
properties:
1. A mapping from no more than one input tuple to one or more output =
tuples can be established.
2. Is not blocking operator.


As per this, we can clearly see that:
- IndexInsertDeleteUpsertOperator should have isMap() set as true
- TokenizeOperator should have isMap() set as true

Did I get anything wrong here?

> On Sep 3, 2017, at 11:35 AM, Taewoo Kim <wangsaeu@gmail.com> wrote:
>=20
> My understanding is that isMap() is set to true when the cardinality =
of the
> input may not be equal to the the cardinality of the output. To settle =
this
> issue, I come up with one explicit property in my Limit Push down =
branch.
> The attribute is called canDecreaseCardinality.
>=20
> On Sun, Sep 3, 2017 at 19:46 abdullah alamoudi <bamousaa@gmail.com> =
wrote:
>=20
>> Dear devs,
>> I was going over implementations of ILogicalOperator.isMap in our =
code
>> base and here is the breakdown:
>>=20
>> isMap()
>>=20
>> true:
>> -Assign
>> -AbstractReplicateOperator
>> -AbstractUnnestOperator
>> -ExchangeOperator
>> -InsertDeleteUpsertOperator
>> -LimitOperator
>> -ProjectOperator
>> -SelectOperator
>>=20
>>=20
>>=20
>> false:
>> -Order
>> -Aggregate
>> -RunningAggregate
>> -AbstractBinaryJoin
>> -AbstractOperatorWithNestedPlans
>> -DataSourceScanOperator
>> -DistinctOperator
>> -DistributeResultOperator
>> -EmptyTupleSourceOperator
>> -IndexInsertDeleteUpsertOperator
>> -IntersectOperator
>> -MaterializeOperator
>> -NestedTupleSourceOperator
>> -ScriptOperator
>> -SinkOperator
>> -TokenizeOperator
>> -UnionAllOperator
>> -WriteOperator
>> -WriteResultOperator
>>=20
>> As I understood at some point is that isMap means (does this operator =
map
>> input tuples to output tuples without blocking?). I am not sure how
>> accurate this description is but it clearly introduces a problem as:
>>=20
>> * InsertDeleteUpsertOperator.isMap() -> true
>> * IndexInsertDeleteUpsertOperator.isMap() -> false
>>=20
>> Moreover,
>> TokenizeOperator.isMap() -> false
>> AbstractUnnestOperator.isMap() -> true
>>=20
>> while clearly, as per the definition above, these two operators =
should
>> have the same output: true
>>=20
>> Can someone solve the mystery?
>> Once this is solved, I will add a wiki entry to explain this flag.
>>=20
>> Cheers,
>> Abdullah.


From dev-return-5188-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep  5 04:43:17 2017
Return-Path: <dev-return-5188-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 71EB21AFFE
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue,  5 Sep 2017 04:43:17 +0000 (UTC)
Received: (qmail 50261 invoked by uid 500); 5 Sep 2017 04:43:17 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 50173 invoked by uid 500); 5 Sep 2017 04:43:17 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 50162 invoked by uid 99); 5 Sep 2017 04:43:17 -0000
Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Sep 2017 04:43:17 +0000
Received: from [192.168.1.82] (172-10-235-13.lightspeed.sntcca.sbcglobal.net [172.10.235.13])
	by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id E55E31A0044
	for <dev@asterixdb.apache.org>; Tue,  5 Sep 2017 04:43:15 +0000 (UTC)
From: "Till Westmann" <tillw@apache.org>
To: dev@asterixdb.apache.org
Subject: Re: License issue when using esri geometry api
Date: Mon, 04 Sep 2017 21:43:19 -0700
Message-ID: <351DF0B5-FBD9-457F-9E30-B3FC35F48250@apache.org>
In-Reply-To: <2c5b9fa3-8189-bb3a-ecc7-1574adddeeea@gmail.com>
References: <CAMOqS+irZZyK9-5TMVH88H3W9_rpGTnSCDjF2ObgfO0tfhZZUg@mail.gmail.com>
 <05D322EF-1890-44C0-AF67-A8E9A740D1FB@apache.org>
 <a60b36be-1c00-e4d7-82b6-3f84ec4c6af6@gmail.com>
 <CALgBV_fiVVCyAOyVDJGOtMjB3oQV+=euyaFxA4eud0pmQukC-w@mail.gmail.com>
 <CA++eH557a5BCdPHjETaHcb2NZZGwF96U6F05irtGAHtrrJu57g@mail.gmail.com>
 <3a66e7df-f5b4-fea1-2d42-7e51593dc921@gmail.com>
 <CA++eH57EEULN5kQa1Ja68wwtDds3726eq2NNo53BzpUJt0RoHA@mail.gmail.com>
 <036552c9-9acb-e970-cd00-64c0b01563a4@gmail.com>
 <CA++eH56Vkz195oUm298RJMmnjxqQxJX3ZdfC9vH5UMe7dRUMgg@mail.gmail.com>
 <CAMOqS+heg6WT7dZgRvDbmWTeSWsU5sn7kf6Z-uLT7XQOXJcESg@mail.gmail.com>
 <89E48961-E2B3-4747-B6DB-E276D56E58D7@apache.org>
 <ab1b73a4-315a-3f74-ec5f-4a9b427c458f@gmail.com>
 <9E561816-4840-4E16-B1CF-7F96AB7A7F43@apache.org>
 <CAMOqS+hJfoTubyizmivi-jUY6=XzYU8-_qh=9=v4FuRpvU3eEw@mail.gmail.com>
 <CAMOqS+i+VGdnZ0s15xSocUc7h7ZeQJ-+3Ra+sE6KTnSWTF4djw@mail.gmail.com>
 <2c5b9fa3-8189-bb3a-ecc7-1574adddeeea@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Mailer: MailMate (1.9.6r5347)

Indeed, that’s very good news.

Cheers,
Till

On 4 Sep 2017, at 8:37, Mike Carey wrote:

> Nice!
>
>
> On 9/3/17 11:44 PM, Riyafa Abdul Hameed wrote:
>> Hi,
>>
>> Esri geometry-api version 2.0.0 have been released in maven 
>> central[1]. Now
>> I am able to use it without any license issues[2].
>>
>> [1] https://github.com/Esri/geometry-api-java/issues/140
>> [2] https://asterix-gerrit.ics.uci.edu/#/c/1838
>>
>> Thank you.
>> Sincerely,
>> Riyafa
>>
>> On 30 July 2017 at 07:58, Riyafa Abdul Hameed 
>> <riyafa.12@cse.mrt.ac.lk>
>> wrote:
>>
>>> Hi Till,
>>>
>>> Thank you. You seem to have followed the option 2). I didn't 
>>> understand
>>> how to get along with option 1). I wanted to ask with Ahmed about it 
>>> and
>>> get back.
>>> I have no idea when they will release so I asked a question[1] 
>>> though I
>>> didn't get an answer for that.
>>>
>>> Thank you.
>>> Sincerely,
>>> Riyafa
>>>
>>> [1] https://github.com/Esri/geometry-api-java/issues/140
>>>
>>> On 29 July 2017 at 10:58, Till Westmann <tillw@apache.org> wrote:
>>>
>>>> Hi Riyafa,
>>>>
>>>> I’ve uploaded another commit to your change [4] that shows what 
>>>> option 2)
>>>> would look like.
>>>> Please take a look and see what you think.
>>>> I think that this could only be a temporary solution.
>>>> Do you have an idea, when Esri might publish a new version of the 
>>>> API?
>>>>
>>>> Cheers,
>>>> Till
>>>>
>>>> [4] https://asterix-gerrit.ics.uci.edu/#/c/1895
>>>>
>>>>
>>>> On 27 Jul 2017, at 10:13, Mike Carey wrote:
>>>>
>>>> +1 on option 1 for now, I would say (from afar :-)), until ESRI 
>>>> finishes
>>>>> resolving stuff on their end.
>>>>>
>>>>> Aloha,
>>>>>
>>>>> Mike
>>>>>
>>>>>
>>>>> On 7/27/17 6:23 AM, Till Westmann wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I’m sorry for the late reply on the subject.
>>>>>>
>>>>>> Generally, Apache-releases are source releases [3] and so adding 
>>>>>> a
>>>>>> precompiled jar without sources would prevent us from being able 
>>>>>> to
>>>>>> release AsterixDB. So we will have to find another solution.
>>>>>>
>>>>>> A few options that I can think of right now would be to
>>>>>> 1) make it an optional dependency and require the user to
>>>>>> require/obtain the jar external and to provide it to the platform 
>>>>>> that
>>>>>> they build on or to
>>>>>> 2) include the source files in the AsterixDB source repository or 
>>>>>> to
>>>>>> 3) download and build the source as part of the build process.
>>>>>>
>>>>>> Of these 3 options, I think that 1) is the cleanest option from a
>>>>>> licensing perspective, 2) can be managed if we understand the
>>>>>> provenance of the source files and 3) seems problematic as we 
>>>>>> would put
>>>>>> a load on a system that provide the source for every build and as 
>>>>>> we
>>>>>> could retrieve use unvetted source code.
>>>>>>
>>>>>> Thoughts/concerns about these options?
>>>>>> Does anybody see other options?
>>>>>>
>>>>>> Cheers,
>>>>>> Till
>>>>>>
>>>>>> [3] http://www.apache.org/legal/release-policy.html#artifacts
>>>>>>
>>>>>> On 27 Jul 2017, at 7:21, Riyafa Abdul Hameed wrote:
>>>>>>
>>>>>> Dear all,
>>>>>>> Is there a way to ship a jar file as a dependency for AsterixDB 
>>>>>>> apart
>>>>>>> from
>>>>>>> the method I have used here[1]. This is because the build of
>>>>>>> asterix-app
>>>>>>> seems to fail[2] when I use the external jar file like this.
>>>>>>> Though I am unable to find a connection between the failure and 
>>>>>>> the
>>>>>>> dependency it seems I need to assume that it is the cause, 
>>>>>>> because
>>>>>>> otherwise if I use the Maven-released version the build passes 
>>>>>>> without
>>>>>>> issue.
>>>>>>>
>>>>>>> Any help would be highly appreciated.
>>>>>>> [1]
>>>>>>> https://asterix-gerrit.ics.uci.edu/#/c/1895/3/asterixdb/aste
>>>>>>> rix-om/pom.xml
>>>>>>> [2] https://asterix-gerrit.ics.uci.edu/#/c/1895
>>>>>>>
>>>>>>> On 22 July 2017 at 01:59, Ahmed Eldawy <eldawy@cs.ucr.edu> 
>>>>>>> wrote:
>>>>>>>
>>>>>>> Although Esri resolved the issue, their Maven-released version 
>>>>>>> still
>>>>>>>> relies
>>>>>>>> on the incompatible library. We can wait until they release a 
>>>>>>>> new
>>>>>>>> version
>>>>>>>> on Maven but this might take a while. To be able to merge the 
>>>>>>>> current
>>>>>>>> code,
>>>>>>>> we might need to compile our own JAR file and ship it with the 
>>>>>>>> source
>>>>>>>> code.
>>>>>>>> Do you know if this is possible/allowed/recommended in 
>>>>>>>> AsterixDB? Is
>>>>>>>> there
>>>>>>>> another preferred way to handle this issue? Keep in mind that, 
>>>>>>>> most
>>>>>>>> likely,
>>>>>>>> the summer project will conclude before Esri releases the new 
>>>>>>>> version.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Ahmed
>>>>>>>>
>>>>>>>> On Tue, Jul 11, 2017 at 11:04 AM, Mike Carey 
>>>>>>>> <dtabass@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> NICE!!!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 7/11/17 9:39 AM, Ahmed Eldawy wrote:
>>>>>>>>>
>>>>>>>>> There's a good news. Riyafa has opened an issue on ESRI 
>>>>>>>>> Geometry API
>>>>>>>>>> project on Github about the license problem and they made the
>>>>>>>>>> necessary
>>>>>>>>>> changes to remove the bad dependency.
>>>>>>>>>> https://github.com/Esri/geometry-api-java/issues/135
>>>>>>>>>> The changes are on their github repository but they are not 
>>>>>>>>>> released
>>>>>>>>>>
>>>>>>>>> yet.
>>>>>>>>> I
>>>>>>>>>> think we can just continue what we're doing and wait for the 
>>>>>>>>>> new
>>>>>>>>>> release
>>>>>>>>>> to
>>>>>>>>>> hit Maven repository.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> Ahmed
>>>>>>>>>>
>>>>>>>>>> On Mon, Jun 26, 2017 at 7:55 AM, Mike Carey 
>>>>>>>>>> <dtabass@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> It sounds like the best option is 4 minus parsing, then, if 
>>>>>>>>>> we can
>>>>>>>>>> do
>>>>>>>>>>
>>>>>>>>>>> that.  (Which would also address Wail's comments, which 
>>>>>>>>>>> could be a
>>>>>>>>>>>
>>>>>>>>>> killer
>>>>>>>>> for big data eventually.)  If not, we could go with 2 for the 
>>>>>>>>> summer
>>>>>>>>>> as a
>>>>>>>>> first step, I guess?  (But figuring out the feasibility of 4 
>>>>>>>>> would be
>>>>>>>>>>> great...)
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>>
>>>>>>>>>>> Mike
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 6/26/17 2:59 AM, Ahmed Eldawy wrote:
>>>>>>>>>>>
>>>>>>>>>>> It seems that (3) would require modifying the open source 
>>>>>>>>>>> Esri API
>>>>>>>>>>>
>>>>>>>>>>>> library
>>>>>>>>>>>> which I don't like. Not only for the overhead of 
>>>>>>>>>>>> understanding and
>>>>>>>>>>>> modifying the code, but also for deviating from the 
>>>>>>>>>>>> standard
>>>>>>>>>>>> library
>>>>>>>>>>>> which
>>>>>>>>>>>> means we will miss future updates. One of the reasons we 
>>>>>>>>>>>> chose to
>>>>>>>>>>>> use
>>>>>>>>>>>> Esri
>>>>>>>>>>>> API is the hope that it will be well-maintained in the 
>>>>>>>>>>>> future.
>>>>>>>>>>>> This leaves us with (4). I don't know if it is technically
>>>>>>>>>>>> possible to
>>>>>>>>>>>> depend on the standard Esri API without using the 
>>>>>>>>>>>> non-compliant
>>>>>>>>>>>>
>>>>>>>>>>> library
>>>>>>>>> or
>>>>>>>>>>>> not. If this is possible, then we can just use the 
>>>>>>>>>>>> computational
>>>>>>>>>>>> geometry
>>>>>>>>>>>> (CG) functionality from the library, and provide our own 
>>>>>>>>>>>> GeoJSON
>>>>>>>>>>>>
>>>>>>>>>>> parser.
>>>>>>>>> If
>>>>>>>>>>>> this is not possible, then I would rather consider the use 
>>>>>>>>>>>> of
>>>>>>>>>>>> another
>>>>>>>>>>>> library, e.g., JTS.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
>>>>>>>>>>>> Ahmed
>>>>>>>>>>>>
>>>>>>>>>>>> On Sun, Jun 25, 2017 at 11:47 AM, Wail Alkowaileet <
>>>>>>>>>>>>
>>>>>>>>>>> wael.y.k@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>>>> I can see from the code that there is a serder steps as 
>>>>>>>>>>>> such:
>>>>>>>>>>>> Asterix
>>>>>>>>>>>>
>>>>>>>>>>>> Object (binary) --> JSON (String) --> Esri geometry (Java 
>>>>>>>>>>>> object)
>>>>>>>>>>>>> -->
>>>>>>>>>>>>> Esri
>>>>>>>>>>>>> geometry (binary).
>>>>>>>>>>>>> I think it would be nice if there is a binary-to-binary
>>>>>>>>>>>>> conversion
>>>>>>>>>>>>> without
>>>>>>>>>>>>> any deserialization (4th option).
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Jun 25, 2017 at 6:36 PM, Mike Carey 
>>>>>>>>>>>>> <dtabass@gmail.com>
>>>>>>>>>>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> Agreed that 3 or 4 are what we'll need to do....! (Sigh.)
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/25/17 5:57 AM, Till Westmann wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Riyafa,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I think that the problem is bigger than the failing test. 
>>>>>>>>>>>>>> The
>>>>>>>>>>>>>>> JSON
>>>>>>>>>>>>>>> license itself is not acceptable for inclusion in an 
>>>>>>>>>>>>>>> Apache
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> artifact
>>>>>>>>> [4]. So we cannot use the ESRI API as-is, if we want the 
>>>>>>>>> GeoJSON
>>>>>>>>>>>>>>> functionality be a non-optional part of AsterixDB.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Here are a few options I see:
>>>>>>>>>>>>>>> 1) Make GeoJSON an optional part of AsterixDB (separate
>>>>>>>>>>>>>>> download
>>>>>>>>>>>>>>> from a
>>>>>>>>>>>>>>>       non-Apache location).
>>>>>>>>>>>>>>> 2) Make JSON.org a dependency that is not shipped (i.e. 
>>>>>>>>>>>>>>> each
>>>>>>>>>>>>>>> user
>>>>>>>>>>>>>>> would
>>>>>>>>>>>>>>>       have to download and install those jars separately 
>>>>>>>>>>>>>>> - and
>>>>>>>>>>>>>>> get
>>>>>>>>>>>>>>> error
>>>>>>>>>>>>>>>       messages if the jars are not available).
>>>>>>>>>>>>>>> 3) Create a clone/copy of the ESRI API that uses another 
>>>>>>>>>>>>>>> JSON
>>>>>>>>>>>>>>> library.
>>>>>>>>>>>>>>> 4) Do all of the parsing independently from the ESRI 
>>>>>>>>>>>>>>> API.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I’m not sure if 1) is a good option as the 
>>>>>>>>>>>>>>> extensibility in
>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> part
>>>>>>>>> of the code might not be sufficient to support this option 
>>>>>>>>> easily.
>>>>>>>>>>>>>>> 2) is technically easier, but it involves an unpleasant 
>>>>>>>>>>>>>>> user
>>>>>>>>>>>>>>> experience.
>>>>>>>>>>>>>>> Also, I think that both 1) and 2) are not desirable, as 
>>>>>>>>>>>>>>> GeoJSON
>>>>>>>>>>>>>>> should
>>>>>>>>>>>>>>> be supported by vanilla AsterixDB.
>>>>>>>>>>>>>>> For 3) and 4) we would need to look into the details to 
>>>>>>>>>>>>>>> see how
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> much
>>>>>>>>> work is required for each of those options and if there are 
>>>>>>>>> other
>>>>>>>>>>>>>>> legal
>>>>>>>>>>>>>>> hurdles.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Are there other options?
>>>>>>>>>>>>>>> Other thoughts/concerns?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>>>> Till
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> [4] 
>>>>>>>>>>>>>>> https://www.apache.org/legal/resolved.html#category-x
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 25 Jun 2017, at 13:57, Riyafa Abdul Hameed wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Dear all,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I implemented parse_geojon() function[1] using 
>>>>>>>>>>>>>>> esri-geometry
>>>>>>>>>>>>>>> api[2]
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> which
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> is apache-2.0 licensed. But this api uses org.json as a
>>>>>>>>>>>>>> dependency.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> org.json is licensed under JSON which causes a license 
>>>>>>>>>>>>>> issue in
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> code
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I
>>>>>>>>>>>>>> have written[3]. What can I do about this issue?
>>>>>>>>>>>>>>>> [1] https://asterix-gerrit.ics.uci.edu/1838
>>>>>>>>>>>>>>>> [2]https://github.com/Esri/geometry-api-java
>>>>>>>>>>>>>>>> [3]
>>>>>>>>>>>>>>>> https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integ
>>>>>>>>>>>>>>>> ration-tests/3290/
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you.
>>>>>>>>>>>>>>>> Yours sincerely,
>>>>>>>>>>>>>>>> Riyafa
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>> *Regards,*
>>>>>>>>>>>>> Wail Alkowaileet
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Ahmed Eldawy
>>>>>>>> Assistant Professor
>>>>>>>> http://www.cs.ucr.edu/~eldawy
>>>>>>>> Tel: +1 (951) 827-5654
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Riyafa Abdul Hameed
>>>>>>> Undergraduate, University of Moratuwa
>>>>>>>
>>>>>>> Email: riyafa.12@cse.mrt.ac.lk
>>>>>>> Website: https://riyafa.wordpress.com/ 
>>>>>>> <http://riyafa.wordpress.com/>
>>>>>>> <http://facebook.com/riyafa.ahf> 
>>>>>>> <http://lk.linkedin.com/in/riyafa>
>>>>>>> <http://twitter.com/Riyafa1>
>>>>>>>
>>>
>>> --
>>> Riyafa Abdul Hameed
>>> Undergraduate, University of Moratuwa
>>>
>>> Email: riyafa.12@cse.mrt.ac.lk
>>> Website: https://riyafa.wordpress.com/ 
>>> <http://riyafa.wordpress.com/>
>>> <http://facebook.com/riyafa.ahf>  <http://lk.linkedin.com/in/riyafa>
>>> <http://twitter.com/Riyafa1>
>>>
>>
>>

From dev-return-5189-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Wed Sep  6 19:51:10 2017
Return-Path: <dev-return-5189-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id C9F441AB99
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Wed,  6 Sep 2017 19:51:10 +0000 (UTC)
Received: (qmail 7767 invoked by uid 500); 6 Sep 2017 19:51:10 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 7677 invoked by uid 500); 6 Sep 2017 19:51:10 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 7649 invoked by uid 99); 6 Sep 2017 19:51:08 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Sep 2017 19:51:08 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 6506218A7E6
	for <dev@asterixdb.apache.org>; Wed,  6 Sep 2017 19:51:08 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.499
X-Spam-Level: *
X-Spam-Status: No, score=1.499 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id QpeQzR02TQ_p for <dev@asterixdb.apache.org>;
	Wed,  6 Sep 2017 19:51:07 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 812AB5FB17
	for <dev@asterixdb.apache.org>; Wed,  6 Sep 2017 19:51:07 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 295BC2418DC;
	Wed,  6 Sep 2017 12:50:38 -0700 (PDT)
Date: Wed, 6 Sep 2017 12:50:38 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, mblow@apache.org, 
	xkkwww@gmail.com
Message-ID: <2044600434.14.1504727438119.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests 9b9dc22a
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/858/changes>


From dev-return-5190-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Wed Sep  6 23:34:15 2017
Return-Path: <dev-return-5190-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 12DEA1A508
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Wed,  6 Sep 2017 23:34:15 +0000 (UTC)
Received: (qmail 49089 invoked by uid 500); 6 Sep 2017 23:34:15 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 49028 invoked by uid 500); 6 Sep 2017 23:34:14 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 49008 invoked by uid 99); 6 Sep 2017 23:34:13 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Sep 2017 23:34:13 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 51115CD5A7
	for <dev@asterixdb.apache.org>; Wed,  6 Sep 2017 23:34:13 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.999
X-Spam-Level: *
X-Spam-Status: No, score=1.999 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id xrXgO_KR-sZ6 for <dev@asterixdb.apache.org>;
	Wed,  6 Sep 2017 23:34:12 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 85A3B5FCCB
	for <dev@asterixdb.apache.org>; Wed,  6 Sep 2017 23:34:12 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 54FFC241D2D;
	Wed,  6 Sep 2017 16:33:48 -0700 (PDT)
Date: Wed, 6 Sep 2017 16:33:48 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, mblow@apache.org, 
	mhubail@apache.org, xkkwww@gmail.com
Message-ID: <230270344.15.1504740828309.JavaMail.jenkins@unhygienix.ics.uci.edu>
In-Reply-To: <2044600434.14.1504727438119.JavaMail.jenkins@unhygienix.ics.uci.edu>
References: <2044600434.14.1504727438119.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is back to stable : asterix-integration-tests
 a5b37d67
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: SUCCESS

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/859/changes>


From dev-return-5191-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 18:44:12 2017
Return-Path: <dev-return-5191-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id CEEFB19DF3
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 18:44:12 +0000 (UTC)
Received: (qmail 66702 invoked by uid 500); 7 Sep 2017 18:44:12 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 66642 invoked by uid 500); 7 Sep 2017 18:44:12 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 66630 invoked by uid 99); 7 Sep 2017 18:44:11 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 18:44:11 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 5D21C1A71D5
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 18:44:11 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.801
X-Spam-Level:
X-Spam-Status: No, score=-0.801 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=ics-uci-edu.20150623.gappssmtp.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id rsJWjz4qtr_d for <dev@asterixdb.apache.org>;
	Thu,  7 Sep 2017 18:44:06 +0000 (UTC)
Received: from mail-pf0-f172.google.com (mail-pf0-f172.google.com [209.85.192.172])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 6FDF65F121
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 18:44:06 +0000 (UTC)
Received: by mail-pf0-f172.google.com with SMTP id e199so805124pfh.3
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 11:44:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=ics-uci-edu.20150623.gappssmtp.com; s=20150623;
        h=to:from:subject:message-id:date:user-agent:mime-version
         :content-language;
        bh=mzgZCX3DxYyV7c5bYGTIYcizwar5Sqz0CaT9vahc4iA=;
        b=i9TZCTwjGiKvmla4YG8PRLgsZ6tC6lijWGw0JCNIvXNP9B9csLqpYm38PTdJHgYR97
         uOPsaQ7Y/RDZfD/CdTXnDzEYic/X3ratYPW+dkPDAtDO51OK09TQ7mMZxbWk9w01IJwY
         kRWcIzsmHmsrlnbK2VTYlKVtlFhEOz0a3wfvsEXYXwsdUl+lqd66VhNdHUTCx/rxhfeH
         hr5BTtMtLIBikWK0C9oUKP2oZGPTKhHSoMB+/WEKuAiVtHLeXhitX3xkjW11Lj0zEur7
         bhBeHSWtSAivS3DgD2i5kQ+jbyAucml03Bt6Kcv7TRj3iV6BzifJG5TrwVf4odCpkLcv
         DuLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:to:from:subject:message-id:date:user-agent
         :mime-version:content-language;
        bh=mzgZCX3DxYyV7c5bYGTIYcizwar5Sqz0CaT9vahc4iA=;
        b=huFGtMF8x3uqJ+re5keMWBHhR4XrWaYqmVuFUERsQUeAy+SjGtdKBcnCEQWDi20WQM
         xorEyWSB6fWsvNlPGl5YtIlaajESueiexxzlcZ5/nJc2LyjwF3pktzxioYS5mPnyu3+H
         Dc+0QXOq/AQJRlTuqNuJ4IX+QJ382ndFNfGrhs0KDtYChc0hwIlGhltPOgipUbY1lt84
         9NQCsr6ay74Zqhp1TMbqtVcW120Y3Wib5t7T7b1vRPzqn9vXwYdRU9bhkqH62+FqfVfM
         +DOksxwcSVKIEHrXJT6zdLgHUX54KrV/SspxCOnpyx4kjYJ3CrzNDdi/mI7TAyyQYjqM
         57zQ==
X-Gm-Message-State: AHPjjUip41zQZJJcINoWen+suvwaSxR3TDa+dLa9u7iqYGuZNJYTU3qb
	Vo4dqRKbvCKa1lo5Pw8=
X-Google-Smtp-Source: ADKCNb4OIRNmJn3sOMgAEnLcjq7ARE5YrX/HATbmBtsxO1YbdobDSCy4DlQ/lVjexB9cdo+g+R58dA==
X-Received: by 10.98.218.80 with SMTP id w16mr306405pfl.147.1504809845106;
        Thu, 07 Sep 2017 11:44:05 -0700 (PDT)
Received: from mikejcarey.local ([206.169.106.2])
        by smtp.gmail.com with ESMTPSA id j9sm304668pgc.11.2017.09.07.11.44.04
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 07 Sep 2017 11:44:04 -0700 (PDT)
To: "dev@asterixdb.apache.org" <dev@asterixdb.apache.org>
From: Michael Carey <mjcarey@ics.uci.edu>
Subject: Time to deprecate AQL?
Message-ID: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
Date: Thu, 7 Sep 2017 11:44:03 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0)
 Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="------------923A6A18D8F83E00B872BB54"
Content-Language: en-US

--------------923A6A18D8F83E00B872BB54
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

As AsterixDB evolves, and additional features are added - e.g., DISTINCT 
aggregate support, or properly implemented query-bodied functions, 
supporting two query languages is hugely expensive:  Updating two 
grammars, parsers, rules, tests, ... IMO it is time to let go of AQL as 
an externally supported interface to AsterixDB and only have SQL++ going 
forward.  I think "everyone" has migrated - and if not we should force 
that migration.  (Cloudberry is on SQL++ nowadays, BAD is on SQL++ 
nowadays, ...)  Any objections?  If not, I think we should make this 
decision officially and stop putting energy into carrying the AQL legacy 
around with us.  Thoughts?


--------------923A6A18D8F83E00B872BB54--

From dev-return-5192-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 18:45:51 2017
Return-Path: <dev-return-5192-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 8DE5819E13
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 18:45:51 +0000 (UTC)
Received: (qmail 79744 invoked by uid 500); 7 Sep 2017 18:45:51 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 79645 invoked by uid 500); 7 Sep 2017 18:45:51 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 79633 invoked by uid 99); 7 Sep 2017 18:45:50 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 18:45:50 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 6BDC7C628E
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 18:45:50 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.4
X-Spam-Level:
X-Spam-Status: No, score=-0.4 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
	autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id FdQpi2GupP-2 for <dev@asterixdb.apache.org>;
	Thu,  7 Sep 2017 18:45:46 +0000 (UTC)
Received: from mail-io0-f173.google.com (mail-io0-f173.google.com [209.85.223.173])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id A4EA75FC99
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 18:45:45 +0000 (UTC)
Received: by mail-io0-f173.google.com with SMTP id b142so1213753ioe.1
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 11:45:45 -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;
        bh=aMUdLO3dpWI2gxuSsjiE9JonFvpsalTco3xbAa4NCJI=;
        b=N4v8dXxkrsAzzNEWs+vZTMSxXAumuAJ1CCiUeZYs2yQF9/p1eIrJTdbdSAJGrRwMN1
         fviXJ2EkcoAiYkFFUQSQCVtIdmyrv2V1mrMvAkrU8gYWjhco+Omd4J09BHJvhGjJxklB
         I5btXFl4ub+G0W9arAtk2n3qBMjPemoeFXEXJryQpyJ5qEG6oOAKt+3aUJuoR4Kws4Uk
         LtskACXKqFyczJ4rl6wSYm6twTi3ttOoIpdKLFAjrVMaBgeSaXP60/IWDQqieTKnHClm
         E87UHJdV2YJ5c4NZddfuwMbtHXhai/Aa+88dUFhpzizyMRO/4+Hl/61fBfFwMddF7YHO
         v7Ug==
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;
        bh=aMUdLO3dpWI2gxuSsjiE9JonFvpsalTco3xbAa4NCJI=;
        b=Eru1y7pXKNCEDGVCgRs8F9C2vP+wJz2XzW18cBaRVMLQA6EOB2pDJmMO6ZZPV2X2ml
         6ul1cD9qV4dR2w45E1L0B+mmaCxFwzjinvewRFlu3wUKBTCk+w7N59CmRKTz31YkZIwi
         a0BiCj4pzJ4EozqYeOK5+T6po6eKLNooYjlEODomBcrnF5hZ0UBkcccJ+RAy6GxoIGd+
         76LMcEC3Pqw/CLIn4fp4MVKEDwVMnhZUtZLpUZiVwZLGaeQozCnX5jAO8XzcA8ekuRqI
         52km0TLVxFIoj3ZP8U2tcNhAplhPnqwG3GY2XbQF4Robp5/wPCSVbBWYLWCC8WIhD7VL
         qzIA==
X-Gm-Message-State: AHPjjUiPM0waLBxcSa3a8dMvpJHsECy0RMPeFC3Mvvs7n6BWhZknwVOe
	m7OK0Z0OUMbmLqWnTQfj6XLc1V8bcg==
X-Google-Smtp-Source: AOwi7QCsgcwNfCFwwY7n/V53lG0mxrxhkqgEZI/DQ2lPpESJ+1NoIZaZuCYYQvpIVGwN5wdO0s7HX7bfkHsUgeAoxHk=
X-Received: by 10.107.130.224 with SMTP id m93mr363359ioi.82.1504809944821;
 Thu, 07 Sep 2017 11:45:44 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.139.65 with HTTP; Thu, 7 Sep 2017 11:45:44 -0700 (PDT)
In-Reply-To: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
From: Yingyi Bu <buyingyi@gmail.com>
Date: Thu, 7 Sep 2017 11:45:44 -0700
Message-ID: <CALjEsF7E8ayu_SsgAmT3EPxOeKtiZxF6+6k2d4xzdtUqp8OksQ@mail.gmail.com>
Subject: Re: Time to deprecate AQL?
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a113eee7c37634105589dde9e"

--001a113eee7c37634105589dde9e
Content-Type: text/plain; charset="UTF-8"

+1!

Best,
Yingyi

On Thu, Sep 7, 2017 at 11:44 AM, Michael Carey <mjcarey@ics.uci.edu> wrote:

> As AsterixDB evolves, and additional features are added - e.g., DISTINCT
> aggregate support, or properly implemented query-bodied functions,
> supporting two query languages is hugely expensive:  Updating two grammars,
> parsers, rules, tests, ... IMO it is time to let go of AQL as an externally
> supported interface to AsterixDB and only have SQL++ going forward.  I
> think "everyone" has migrated - and if not we should force that migration.
> (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
> objections?  If not, I think we should make this decision officially and
> stop putting energy into carrying the AQL legacy around with us.  Thoughts?
>
>

--001a113eee7c37634105589dde9e--

From dev-return-5193-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 18:50:04 2017
Return-Path: <dev-return-5193-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 3A65619E67
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 18:50:04 +0000 (UTC)
Received: (qmail 95642 invoked by uid 500); 7 Sep 2017 18:50:04 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 95547 invoked by uid 500); 7 Sep 2017 18:50:04 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 95535 invoked by uid 99); 7 Sep 2017 18:50:03 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 18:50:03 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 1BF8C18CD51
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 18:50:03 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.4
X-Spam-Level:
X-Spam-Status: No, score=-0.4 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id YCq9hVqdxQhD for <dev@asterixdb.apache.org>;
	Thu,  7 Sep 2017 18:49:58 +0000 (UTC)
Received: from mail-vk0-f43.google.com (mail-vk0-f43.google.com [209.85.213.43])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 4906F5F27D
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 18:49:58 +0000 (UTC)
Received: by mail-vk0-f43.google.com with SMTP id m142so868874vkf.2
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 11:49:58 -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;
        bh=D66iWitCfHysIqdXmxw02mLzU1epK0l7adsyPSm1ow4=;
        b=PJ+ZS2D/XqVJfKy51n/CIDH81vO4ySiyPnrSXHRE/PMN4fs0L6dX+p8ZQpiOAVNzCw
         kxZQb+DBh+f/fZt535K6UET3rCIN2gMtW6On2rDtmaBiQwUZQpHRPBFH6XQY6f3GXb4s
         VbbqBc8D5i3z8ClElnC9dG6y1D0EwUGokhoReeLmPwqRTWo3+MTOSSBRNiCHZheboVct
         xjVBreswQzoCsXnFla83nckj4HcNACY0r2IjCzzgtZl8vqpd30auUmpxIg5BT6G+QjrJ
         0AS9vazskG2g2Pzd9Tc9ci80ke9melQUvYItiNbH8V/JmgUMqLwo+bpcRfxsQ9Xj75QY
         Dyfg==
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;
        bh=D66iWitCfHysIqdXmxw02mLzU1epK0l7adsyPSm1ow4=;
        b=iKLGPE04Y+5hBH8/EKfPQukk6GhvsVe9UmmbgOrLP1G8nCGPHxcyGyUcFOHbkdB6Zh
         9AwV00vNyqPSs0cGniEzKQOfOGPJaBaLZpZhBP0eAHZZwrByJ6u6ZOGkq4aVP45+es7t
         AygAxeoOb6ckJhnkJ8y8Z9Y36XDkHbz/lRH4nUMA5MlUbM26Axtv/V2gRYz+MC9FbZBJ
         VKxVd/33MYAuKBgvCHXWtxIOoFrbs51pNR8MzrheeRSSM6RNaZO94kpHNP2ayKqZFbGW
         kP244TvZOKiL0216UVDU8/dC8FTRyfQUdXi5mIayXG+u/dPyQpA9g9iIrPL8+0ykNIiK
         P9iQ==
X-Gm-Message-State: AHPjjUhOZ1aKt1K6oxNTbxYm9B3tGpCSi4rswyh4FML94l6zFy/RO7+i
	jyewqfCqGW+ytyQaDiPmJPG+LCUsNA==
X-Google-Smtp-Source: AOwi7QAYdOAT/WY5qL+GSOaPM4wBUQ5UQXw1/lXFbOIn7cWmG+QZ2RlwbPp+0t5PfvcIQV9FowPWsiZIVY7C4Y0o4AM=
X-Received: by 10.31.58.145 with SMTP id h139mr172319vka.194.1504810192054;
 Thu, 07 Sep 2017 11:49:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.31.16.65 with HTTP; Thu, 7 Sep 2017 11:49:50 -0700 (PDT)
Received: by 10.31.16.65 with HTTP; Thu, 7 Sep 2017 11:49:50 -0700 (PDT)
In-Reply-To: <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com>
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu> <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com>
From: Gerald Sangudi <sangudi@gmail.com>
Date: Thu, 7 Sep 2017 11:49:50 -0700
Message-ID: <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
Subject: Re: Time to deprecate AQL?
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a11432b94f3b1a205589dec75"

--001a11432b94f3b1a205589dec75
Content-Type: text/plain; charset="UTF-8"

:-)

On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:

As AsterixDB evolves, and additional features are added - e.g., DISTINCT
aggregate support, or properly implemented query-bodied functions,
supporting two query languages is hugely expensive:  Updating two grammars,
parsers, rules, tests, ... IMO it is time to let go of AQL as an externally
supported interface to AsterixDB and only have SQL++ going forward.  I
think "everyone" has migrated - and if not we should force that migration.
(Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
objections?  If not, I think we should make this decision officially and
stop putting energy into carrying the AQL legacy around with us.  Thoughts?

--001a11432b94f3b1a205589dec75--

From dev-return-5194-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 19:05:06 2017
Return-Path: <dev-return-5194-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 2FA4919EFE
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 19:05:06 +0000 (UTC)
Received: (qmail 39308 invoked by uid 500); 7 Sep 2017 19:05:06 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 39252 invoked by uid 500); 7 Sep 2017 19:05:06 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 39239 invoked by uid 99); 7 Sep 2017 19:05:05 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 19:05:05 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 2CE7E1A71B5
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 19:05:05 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.019
X-Spam-Level:
X-Spam-Status: No, score=-0.019 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001,
	RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, URIBL_BLOCKED=0.001]
	autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=uci-edu.20150623.gappssmtp.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id EjiYG4m5I2Ev for <dev@asterixdb.apache.org>;
	Thu,  7 Sep 2017 19:04:59 +0000 (UTC)
Received: from mail-pg0-f46.google.com (mail-pg0-f46.google.com [74.125.83.46])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id CE5F45F3CF
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 19:04:58 +0000 (UTC)
Received: by mail-pg0-f46.google.com with SMTP id q68so1056528pgq.1
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 12:04:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=uci-edu.20150623.gappssmtp.com; s=20150623;
        h=from:content-transfer-encoding:mime-version:date:subject:message-id
         :references:in-reply-to:to;
        bh=aFkbaSa82cgziMnIjGeYnIXpOrcBhSCIhousXh32NfQ=;
        b=C11oTzgkOAUEnBy6+u+YjhY1scNEuuf2IrlDfs/oJyFZ67wSlLaGvfDH5IzajNcFG/
         GSss9vSryYC/kl09cPMezhkhGgpY5Eg1J6zOpMNkIzLtrewf3ynEAyMDKgSuCyHfLHyV
         3OU5o3KRlgBg1Tvo6hVeomATHNClW/KG2ObXLE5FLAt3+gvjEpVURWMYRrJMmpJLmguZ
         9uit1+VkrI2/aKsjUHhjlJho6xMGF5oeOVjFTIIn9Qf1wwjlEA7CEiQeN9u/BBL3QXx+
         mBsUn/9D1JEqTFrJ3VSBAT1FHTMUnLctQpH548eyAOatuTSN1nf1I4Ijj/3/tfQ0ghx7
         GhGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:content-transfer-encoding:mime-version:date
         :subject:message-id:references:in-reply-to:to;
        bh=aFkbaSa82cgziMnIjGeYnIXpOrcBhSCIhousXh32NfQ=;
        b=tb/BQoCaEI+4I3dc2N7T9HAZXgTHtLDW7EmzjyePxy3VtF3I4bElraJ77nT6TyCVg3
         jy5ubzWqTA6K+5QN2dtkaF36f3BetPUCbmpcvNu4IZNLIcoR3J0WAFQwtMQYeFOhx+bK
         YrFtKDGe1eiOPbww7uSPQQ//mhpRR34+xtfFft2SbUSKeXuXmf1KBfBoJM17jPhmmVFH
         IVXYjw4a4AxVjN2ck6VAQ+F0mg0NjyFraBkCg/v6yEIGHV2M/ytOJbjI99/wjl8Px/9H
         Z1WmuzGmGmibEcuX4DkzT5z8u6+krlrNEPQVjaifQVADM+/j1f54+5rSSwuwmcCoQvTf
         XQAw==
X-Gm-Message-State: AHPjjUhbxrlYuY8h2Y9aYeM+jD7lfF9n99wArHWep9Oxv3Vu0WVSpt0y
	NQiDWf5aGncmwhJOUEtIsw==
X-Google-Smtp-Source: ADKCNb6VzkyqMb7QvEWvUK9DybGVinaWiQ6g6ehbA7ge6P+x7BmRzK5Hab6/koBypDEAUB/H1Mb/jQ==
X-Received: by 10.84.194.131 with SMTP id h3mr414000pld.202.1504811096736;
        Thu, 07 Sep 2017 12:04:56 -0700 (PDT)
Received: from ?IPv6:2607:fb90:a4af:633b:2589:fbca:db04:8f18? ([2607:fb90:a4af:633b:2589:fbca:db04:8f18])
        by smtp.gmail.com with ESMTPSA id g5sm473099pfe.90.2017.09.07.12.04.56
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 07 Sep 2017 12:04:56 -0700 (PDT)
From: Xikui Wang <xikuiw@uci.edu>
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (1.0)
Date: Thu, 7 Sep 2017 12:04:55 -0700
Subject: Re: Time to deprecate AQL?
Message-Id: <7B1591FA-7EC4-44CE-822F-154239CA5C1B@uci.edu>
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu> <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com> <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
In-Reply-To: <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
To: dev@asterixdb.apache.org
X-Mailer: iPhone Mail (14G60)

+1!

Best,
Xikui

> On Sep 7, 2017, at 11:49, Gerald Sangudi <sangudi@gmail.com> wrote:
> 
> :-)
> 
> On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:
> 
> As AsterixDB evolves, and additional features are added - e.g., DISTINCT
> aggregate support, or properly implemented query-bodied functions,
> supporting two query languages is hugely expensive:  Updating two grammars,
> parsers, rules, tests, ... IMO it is time to let go of AQL as an externally
> supported interface to AsterixDB and only have SQL++ going forward.  I
> think "everyone" has migrated - and if not we should force that migration.
> (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
> objections?  If not, I think we should make this decision officially and
> stop putting energy into carrying the AQL legacy around with us.  Thoughts?

From dev-return-5195-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 19:05:33 2017
Return-Path: <dev-return-5195-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 3719A19F03
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 19:05:33 +0000 (UTC)
Received: (qmail 40737 invoked by uid 500); 7 Sep 2017 19:05:33 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 40679 invoked by uid 500); 7 Sep 2017 19:05:30 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 40668 invoked by uid 99); 7 Sep 2017 19:05:30 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 19:05:30 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id A1A1D1A71D0
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 19:05:29 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.199
X-Spam-Level:
X-Spam-Status: No, score=0.199 tagged_above=-999 required=6.31
	tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5,
	RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
	autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id 9Wmg-NQYBQMB for <dev@asterixdb.apache.org>;
	Thu,  7 Sep 2017 19:05:24 +0000 (UTC)
Received: from mx2.ucr.edu (mx2.ucr.edu [138.23.62.3])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id EC2315FC12
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 19:05:23 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2CVHgCll7FZf8jYVdFcHgYMhSwngV2CGoE2mQw4BgEBAQaBJgSIOYE7gUeCMoJ8h1EBCYU+AoQDVwECAQEBAQECEwEBCQsLCCYxhRkBBSNmCwQBBg0qAgIhARIBBQEcGYoZAwgNoSFAjAuCJ4c0DUUBB4MuDCYSgxiCAoEHhVKCV4JqgkeCYQWBLQEBAZ8IMggBAYFfjXyEdpJxjFOIRBQkgRWBZDIhJnYGVoYlQDaKKQEBAQ
X-IPAS-Result: A2CVHgCll7FZf8jYVdFcHgYMhSwngV2CGoE2mQw4BgEBAQaBJgSIOYE7gUeCMoJ8h1EBCYU+AoQDVwECAQEBAQECEwEBCQsLCCYxhRkBBSNmCwQBBg0qAgIhARIBBQEcGYoZAwgNoSFAjAuCJ4c0DUUBB4MuDCYSgxiCAoEHhVKCV4JqgkeCYQWBLQEBAZ8IMggBAYFfjXyEdpJxjFOIRBQkgRWBZDIhJnYGVoYlQDaKKQEBAQ
X-IronPort-AV: E=Sophos;i="5.42,359,1500966000"; 
   d="scan'208,217";a="801797653"
Received: from mail-qt0-f200.google.com ([209.85.216.200])
  by smtp2.ucr.edu with ESMTP/TLS/AES128-SHA; 07 Sep 2017 12:05:02 -0700
Received: by mail-qt0-f200.google.com with SMTP id j6so754864qtj.6
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 12:05:02 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=eA7Lkv8t35a2VtJIYMzmu0NFhLaUfFtPlmrkbrcjgMI=;
        b=OrHw4w433O7crwLjcr9Xo0mEBAsc7RrNpSbDJ3+WfctMtqNqM1xZOFXiC/X5DiNZwy
         EcfT0nooLIvq3OGqUZ9n5BMTcU4EX/gAhJwnMY7tDlGvsSUHkwR9/D5RvtG8QL4B4rAh
         X5zXcCnnMl83i8qy+rhzXED8TwvRzadqftSmZrjmnZ/B3UuL65cvb6inz6akGkdjBVHP
         enOpN3HmnJSgxRIBPiG+PA94Fw7LkStTMotuKnbTjnNe8/qlKQQUrITpC3ZiUc49BPQj
         fjON4d6bGFdvvRAjOM17Ryu+cPGQOIFe9FRvrRYxQxDdREgcO0vZqIfhZHoW5ZelDMv6
         aX7w==
X-Gm-Message-State: AHPjjUiywiW7kgMNh/pe8oDVrsE/mpVmEFCCuLQWJxYH0+AikyfNQysy
	+esG+qNNwrZhNHwnOLKOTPAKz5Nit+KE6zl8MuzFH7ORXUqvUTgBLLA1z38AmlUwry3/aZAbHph
	0wC/m3fbhuierjW1z9I05TA6y6Xg=
X-Received: by 10.200.41.239 with SMTP id 44mr550829qtt.138.1504811100940;
        Thu, 07 Sep 2017 12:05:00 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QDlc4iidzg6uUi+vylOI9OCwVpzVCmfghueJVQmn6iE/Q+KsLh6MJusVcbdstAO/yyGx7R2XqrrTLjpx3eSY1c=
X-Received: by 10.200.41.239 with SMTP id 44mr550808qtt.138.1504811100713;
 Thu, 07 Sep 2017 12:05:00 -0700 (PDT)
MIME-Version: 1.0
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
 <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com> <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
In-Reply-To: <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
From: Steven Jacobs <sjaco002@ucr.edu>
Date: Thu, 07 Sep 2017 19:04:49 +0000
Message-ID: <CAE1xAns8Ve1FsqadW5BxkpDLac-jC-G9APDhjFuEtY13Rw+p=g@mail.gmail.com>
Subject: Re: Time to deprecate AQL?
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a1135a70a1cf25d05589e234d"

--001a1135a70a1cf25d05589e234d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I=E2=80=99ll give the BADest +1 I can :)
Steven

On Thu, Sep 7, 2017 at 8:50 PM Gerald Sangudi <sangudi@gmail.com> wrote:

> :-)
>
> On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:
>
> As AsterixDB evolves, and additional features are added - e.g., DISTINCT
> aggregate support, or properly implemented query-bodied functions,
> supporting two query languages is hugely expensive:  Updating two grammar=
s,
> parsers, rules, tests, ... IMO it is time to let go of AQL as an external=
ly
> supported interface to AsterixDB and only have SQL++ going forward.  I
> think "everyone" has migrated - and if not we should force that migration=
.
> (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
> objections?  If not, I think we should make this decision officially and
> stop putting energy into carrying the AQL legacy around with us.  Thought=
s?
>

--001a1135a70a1cf25d05589e234d--

From dev-return-5196-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 19:07:08 2017
Return-Path: <dev-return-5196-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 7510119F1A
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 19:07:08 +0000 (UTC)
Received: (qmail 44279 invoked by uid 500); 7 Sep 2017 19:07:08 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 44213 invoked by uid 500); 7 Sep 2017 19:07:06 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 43956 invoked by uid 99); 7 Sep 2017 19:07:03 -0000
Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 19:07:03 +0000
Received: from [10.17.0.137] (unknown [206.169.106.2])
	by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 2E8DE1A00C5;
	Thu,  7 Sep 2017 19:07:00 +0000 (UTC)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (1.0)
Subject: Re: Time to deprecate AQL?
From: Till Westmann <tillw@apache.org>
X-Mailer: iPhone Mail (14G60)
In-Reply-To: <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
Date: Thu, 7 Sep 2017 12:06:59 -0700
Content-Transfer-Encoding: 7bit
Message-Id: <72AE56D5-7950-4C89-B250-C5747B78A2A6@apache.org>
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu> <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com> <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
To: dev@asterixdb.apache.org

I think this seals it :)

> On Sep 7, 2017, at 11:49, Gerald Sangudi <sangudi@gmail.com> wrote:
> 
> :-)
> 
> On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:
> 
> As AsterixDB evolves, and additional features are added - e.g., DISTINCT
> aggregate support, or properly implemented query-bodied functions,
> supporting two query languages is hugely expensive:  Updating two grammars,
> parsers, rules, tests, ... IMO it is time to let go of AQL as an externally
> supported interface to AsterixDB and only have SQL++ going forward.  I
> think "everyone" has migrated - and if not we should force that migration.
> (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
> objections?  If not, I think we should make this decision officially and
> stop putting energy into carrying the AQL legacy around with us.  Thoughts?

From dev-return-5197-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep  7 19:10:50 2017
Return-Path: <dev-return-5197-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id C2F0719F4A
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu,  7 Sep 2017 19:10:50 +0000 (UTC)
Received: (qmail 53781 invoked by uid 500); 7 Sep 2017 19:10:49 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 52073 invoked by uid 500); 7 Sep 2017 19:10:43 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 52060 invoked by uid 99); 7 Sep 2017 19:10:43 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2017 19:10:43 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id E980EC007C
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 19:10:42 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.38
X-Spam-Level: **
X-Spam-Status: No, score=2.38 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001,
	URIBL_BLOCKED=0.001] autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id aZr49O_oCK3p for <dev@asterixdb.apache.org>;
	Thu,  7 Sep 2017 19:10:38 +0000 (UTC)
Received: from mail-wm0-f50.google.com (mail-wm0-f50.google.com [74.125.82.50])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 2E6B95FB9F
	for <dev@asterixdb.apache.org>; Thu,  7 Sep 2017 19:10:38 +0000 (UTC)
Received: by mail-wm0-f50.google.com with SMTP id f199so4316100wme.0
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 12:10:38 -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;
        bh=z73SHDVmB/+d6g4uIHvZ0hZv9PaEXwO974pxsp17PUY=;
        b=q9jwWibLfihLwsnQg1PzJlTTB56L7dOOLJGUMrQv6JsmP2E/1SYyr53I2xeP8kVwRt
         QECbZYK3OZ2YxU32uUpVN8XgzSBKTBMAmYLPg3jHPjW7s3OOeZtlsIYFRxbvINij5urn
         KjQjPi1KU7IyUCMtoWugOAeAdYuhqo/Qy1nBNMqtR2NR+8C53nAayBJH86mGAVIbCJE9
         Sfyxg2Bc/l/vXY2CnXJR6eilVeIefUrYPbkEmaSLwi0nypQoNCiaMmNRV7bZ6lGkacGv
         7WSJj+55JMIlyJ5S28rRvjc5F1DKWfvkPfi3pyTmp2uGJlivTxfmn50yLRCf9jV0bA+B
         IFYA==
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;
        bh=z73SHDVmB/+d6g4uIHvZ0hZv9PaEXwO974pxsp17PUY=;
        b=QmJC49rm0+ZmVtPuSbvb9SAowWmrri9EEVzoszYXPJEZQdhTtyEJVM9EyGFAoTuR8N
         XnAOFCMZbWz62cfsL5bbmtZ8c6gbWv3P7VYVgr4bTpm3VmO3SWkf7Hu51pVDT52lvOh5
         jZgRw/kkv6GNGnorv3j6feeqx/lehKHsQ6dI9np2m9sYhMn/1hGAki7F6hcenlUShzXw
         TDN2cQHyEXeu3vxy/NuiQABdRKDc0oMEtw9wgHeTqMl5eEBDX8rT+Iiqq+J7ywRGpeRt
         0J923WeRW/7mRM+Qr3iKxpMrJCbVSY/+AIqJKJnAX4YQDwiqg/C8jFMS4AgehnNEkZUK
         qJtQ==
X-Gm-Message-State: AHPjjUgpMzhuahGhpJz3ZJCMZ6OG0hNVVRDjCTTlQ6SmdqPES+zEceN/
	SgZ81kDWQW/9zSOODjPynsBsk17lZg==
X-Google-Smtp-Source: ADKCNb7nyvoXg5DQv7mxUfQ/95ejpzamddcTzU7t+Z8N6sCdO2prIS42BFNRFvb7AauHfVmOjowc5/DpogcAE5gmrJU=
X-Received: by 10.80.171.132 with SMTP id u4mr237353edc.211.1504811436786;
 Thu, 07 Sep 2017 12:10:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.80.142.249 with HTTP; Thu, 7 Sep 2017 12:10:06 -0700 (PDT)
In-Reply-To: <CAE1xAns8Ve1FsqadW5BxkpDLac-jC-G9APDhjFuEtY13Rw+p=g@mail.gmail.com>
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
 <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com>
 <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com> <CAE1xAns8Ve1FsqadW5BxkpDLac-jC-G9APDhjFuEtY13Rw+p=g@mail.gmail.com>
From: Taewoo Kim <wangsaeu@gmail.com>
Date: Thu, 7 Sep 2017 21:10:06 +0200
Message-ID: <CABytAGqh2cRYWDD7vUdnnDi0XDTCo9KH9Fn+3osDKLUhSQyh2g@mail.gmail.com>
Subject: Re: Time to deprecate AQL?
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="94eb2c19642824cdfa05589e37d1"

--94eb2c19642824cdfa05589e37d1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

For similarity join, we use AQL+ that is based on AQL. I think deprecating
(not removing) AQL is OK. Ultimately, AQL+ should be converted to SQL++ :-)

Best,
Taewoo

On Thu, Sep 7, 2017 at 9:04 PM, Steven Jacobs <sjaco002@ucr.edu> wrote:

> I=E2=80=99ll give the BADest +1 I can :)
> Steven
>
> On Thu, Sep 7, 2017 at 8:50 PM Gerald Sangudi <sangudi@gmail.com> wrote:
>
> > :-)
> >
> > On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:
> >
> > As AsterixDB evolves, and additional features are added - e.g., DISTINC=
T
> > aggregate support, or properly implemented query-bodied functions,
> > supporting two query languages is hugely expensive:  Updating two
> grammars,
> > parsers, rules, tests, ... IMO it is time to let go of AQL as an
> externally
> > supported interface to AsterixDB and only have SQL++ going forward.  I
> > think "everyone" has migrated - and if not we should force that
> migration.
> > (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
> > objections?  If not, I think we should make this decision officially an=
d
> > stop putting energy into carrying the AQL legacy around with us.
> Thoughts?
> >
>

--94eb2c19642824cdfa05589e37d1--

From dev-return-5198-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep  8 05:21:52 2017
Return-Path: <dev-return-5198-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id C6D0D1A415
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri,  8 Sep 2017 05:21:52 +0000 (UTC)
Received: (qmail 35131 invoked by uid 500); 8 Sep 2017 05:21:52 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 35018 invoked by uid 500); 8 Sep 2017 05:21:52 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 34998 invoked by uid 99); 8 Sep 2017 05:21:51 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Sep 2017 05:21:51 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id D985CCE5CC
	for <dev@asterixdb.apache.org>; Fri,  8 Sep 2017 05:21:50 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id tS0Vvf0nLSBe for <dev@asterixdb.apache.org>;
	Fri,  8 Sep 2017 05:21:46 +0000 (UTC)
Received: from mail-qk0-f174.google.com (mail-qk0-f174.google.com [209.85.220.174])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 006805F121
	for <dev@asterixdb.apache.org>; Fri,  8 Sep 2017 05:21:45 +0000 (UTC)
Received: by mail-qk0-f174.google.com with SMTP id o129so4026366qkd.0
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 22:21:45 -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;
        bh=ApOimENp2mYa0EAJOmLfIy0+2vApr18t9PpkyilJ8Ck=;
        b=M8BqWecNt+amQTxOQus8ay+rV35dz2f0yDY/TZ+2UvlX6efaX+lLSEa0lq+48vpRMN
         oVafTsdA7fL2ybU2867X0ug/7IwCObHsysrqTxL4My9DWJ/bChlRVUidppLP6qn0sw+7
         PDw75rhX8uAqMDxcqgXl9jDaEpIFRuVL7gvmjZ7bkmckCBqLDB5+82lCcXMXqu5AXj+5
         CbGln5OCV7cb7rYwg80uKQX55nn1QaLNVoKxgr+G0bkTJWO8zeiCbhIBzclPW2+JkI6E
         Ej9s0Ui7h66ttqJDjYvS4JJFMn+3z5kAlDgtMQ/LS1SGT2kziZdomBs3NOxrIyMwW53T
         gWFA==
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;
        bh=ApOimENp2mYa0EAJOmLfIy0+2vApr18t9PpkyilJ8Ck=;
        b=o1HsYOvJY7Koip82xvyXlS9ltc80uNXbkT/KNinf9tNcfOsHMrcPdNexkoDe7GErDU
         9VapsiSFwJR/iVOJalpyccbXs34Da4Q08dJlhiz5DCgpuHBwvgKkHf3yOvJwplTi8ge8
         4Ngt+b8ySzGujuXsXGr0TbAk6r73Xt8mGJcJ7Uk9Nej/7wO3f0ZQP5hHOj7a0MjPFPaH
         ISTYVq2352D0kYnYNuHWz5oTC0xzNjQg6780PA+Jj90BhqIds50J2harwXJu2IQ77YZo
         7ZSN0PvCexTkxskCxkzOUo5XuT82rqOlI87SV8PQio8oe/FC0oeoNgRtAQ+BV/cqIGlx
         edog==
X-Gm-Message-State: AHPjjUiTZQUn2DNnI0zh1awrJT+5c3A9c6ipED4sV60CU/IrpsXA6Ymg
	N6YqwrgG0SQ4gDmVxOjXGUKy2RuR9g==
X-Google-Smtp-Source: AOwi7QBoQHgLDrj1mM5PfSbpjJlQTyDDQ4J4s9dz7DjWPjDo8IjL0z7dDkIE2Io+3nRCSHvPixFmZE+7YVjiWiWRqCU=
X-Received: by 10.55.190.198 with SMTP id o189mr2144567qkf.103.1504848105200;
 Thu, 07 Sep 2017 22:21:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.171.198 with HTTP; Thu, 7 Sep 2017 22:21:44 -0700 (PDT)
In-Reply-To: <CABytAGqh2cRYWDD7vUdnnDi0XDTCo9KH9Fn+3osDKLUhSQyh2g@mail.gmail.com>
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
 <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com>
 <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
 <CAE1xAns8Ve1FsqadW5BxkpDLac-jC-G9APDhjFuEtY13Rw+p=g@mail.gmail.com> <CABytAGqh2cRYWDD7vUdnnDi0XDTCo9KH9Fn+3osDKLUhSQyh2g@mail.gmail.com>
From: Chen Li <chenli@gmail.com>
Date: Thu, 7 Sep 2017 22:21:44 -0700
Message-ID: <CANQf6Do1L3FUr2p_TwOT9hjdMxLWEQZfjbJXw+JiTt=V_zyE2A@mail.gmail.com>
Subject: Re: Time to deprecate AQL?
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="94eb2c044216c062c50558a6c065"

--94eb2c044216c062c50558a6c065
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Let's discuss how to move AQL+ to SQL++ after Taewoo comes back.

On Thu, Sep 7, 2017 at 12:10 PM, Taewoo Kim <wangsaeu@gmail.com> wrote:

> For similarity join, we use AQL+ that is based on AQL. I think deprecatin=
g
> (not removing) AQL is OK. Ultimately, AQL+ should be converted to SQL++ :=
-)
>
> Best,
> Taewoo
>
> On Thu, Sep 7, 2017 at 9:04 PM, Steven Jacobs <sjaco002@ucr.edu> wrote:
>
> > I=E2=80=99ll give the BADest +1 I can :)
> > Steven
> >
> > On Thu, Sep 7, 2017 at 8:50 PM Gerald Sangudi <sangudi@gmail.com> wrote=
:
> >
> > > :-)
> > >
> > > On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:
> > >
> > > As AsterixDB evolves, and additional features are added - e.g.,
> DISTINCT
> > > aggregate support, or properly implemented query-bodied functions,
> > > supporting two query languages is hugely expensive:  Updating two
> > grammars,
> > > parsers, rules, tests, ... IMO it is time to let go of AQL as an
> > externally
> > > supported interface to AsterixDB and only have SQL++ going forward.  =
I
> > > think "everyone" has migrated - and if not we should force that
> > migration.
> > > (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
> > > objections?  If not, I think we should make this decision officially
> and
> > > stop putting energy into carrying the AQL legacy around with us.
> > Thoughts?
> > >
> >
>

--94eb2c044216c062c50558a6c065--

From dev-return-5199-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep  8 05:54:54 2017
Return-Path: <dev-return-5199-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 19CCC1A4A9
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri,  8 Sep 2017 05:54:54 +0000 (UTC)
Received: (qmail 73452 invoked by uid 500); 8 Sep 2017 05:54:54 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 73403 invoked by uid 500); 8 Sep 2017 05:54:53 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 73388 invoked by uid 99); 8 Sep 2017 05:54:53 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Sep 2017 05:54:53 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 01C9118E7E4
	for <dev@asterixdb.apache.org>; Fri,  8 Sep 2017 05:54:53 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.379
X-Spam-Level: **
X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id NdJdBs_1BsLL for <dev@asterixdb.apache.org>;
	Fri,  8 Sep 2017 05:54:47 +0000 (UTC)
Received: from mail-oi0-f46.google.com (mail-oi0-f46.google.com [209.85.218.46])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 019DC5FE34
	for <dev@asterixdb.apache.org>; Fri,  8 Sep 2017 05:54:47 +0000 (UTC)
Received: by mail-oi0-f46.google.com with SMTP id l74so5306929oih.1
        for <dev@asterixdb.apache.org>; Thu, 07 Sep 2017 22:54:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-language;
        bh=KIklXcM2MmmmdHVcQnMuxNh4Wc0d6lOdC+Lwucn96Tc=;
        b=COwZELqc9iGvA4WcH5Kn5mR8GOY/X3rIMwt9kkCkofVaQoiyEANeT0ofDARD4PWIUQ
         DFqAyZNffP5CS28O+z3D1MVL2HejR76NE7my5FD5iFSKZ580Yghp6IJS/ahJ9i5KnZrn
         Olin85vYHHvgq36FYa5czj3GtPpPrZ8xdXWwAJI6nzQxhhALBIADByUefW/en9Sms/NF
         qgR8eiZ0EJG8dluHbORS/Bq9kh3gMrlhZFj7u9yPJldIq5a9Jk0XbxwpdzeMCvOx5iaP
         Jv8bJzrP3ydtPSPhJW54L/9V2pV9D5azd2lWdO3Z9kwVY8mcOcLAQtojuk+W6ltECUQK
         UCRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=KIklXcM2MmmmdHVcQnMuxNh4Wc0d6lOdC+Lwucn96Tc=;
        b=C+rsd23K+f4r4cM6+wDGbF3sILKE52rFsKjw0lA2qKuNdbjfAh/klKqBHEg1n9D+sn
         1QhJhYzwwezOxOr0PP4KMiV4Xd5CyMNewQHPNWFPFEnQYgf2LtWxAFbWKbrDtZMWt86/
         QAvCCBZ4UOlNqyaTw80LQDRBCtbcnIJFd6oNhHrrHzH4P+7Mo5qsNqUJxh7qubHKp4gM
         xr3Ciq5IhPCLcNnbBRmWcZAda1XacwYKo89RDWdLJlI47/yP13B9SN023E01tXywN9xZ
         4e2qwYOQajK9Ar5tlddOHJYyg1m9yLjLEoLP0a8rCZL1C5auJGh7E5stDTr9FXtROYTf
         r4UA==
X-Gm-Message-State: AHPjjUgm2R8nT7OsTtf56i4ongoQOEk39HQo1Ep/Lh9fVVBYYwE1jnB1
	xodTshjgCF9bSQiS
X-Google-Smtp-Source: AOwi7QAWRVnoVnyggEhxfq0BgSsQGC+Y3IAl+Frt/z5jAv6v8BbF74+KBczBjCXbkNzWVounaRW9Jw==
X-Received: by 10.202.212.2 with SMTP id l2mr1653340oig.217.1504850085449;
        Thu, 07 Sep 2017 22:54:45 -0700 (PDT)
Received: from mikejcarey.local ([2600:8802:4500:fc:349b:2a70:c350:7f79])
        by smtp.googlemail.com with ESMTPSA id q81sm1142094oih.37.2017.09.07.22.54.44
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 07 Sep 2017 22:54:44 -0700 (PDT)
Subject: Re: Time to deprecate AQL?
To: dev@asterixdb.apache.org
References: <9de0e0a5-f1a9-113c-c311-cd1fe14a7ac7@ics.uci.edu>
 <CAOhCj38_CSWp+nuttwWHa8uYmjgn8FSBH2YK60K7NCfHRGwevw@mail.gmail.com>
 <CAOhCj38Tcdnpxr7mZYSzZjZw8MyGhUhG8jsHqWap9Xbe+bBTJA@mail.gmail.com>
 <CAE1xAns8Ve1FsqadW5BxkpDLac-jC-G9APDhjFuEtY13Rw+p=g@mail.gmail.com>
 <CABytAGqh2cRYWDD7vUdnnDi0XDTCo9KH9Fn+3osDKLUhSQyh2g@mail.gmail.com>
 <CANQf6Do1L3FUr2p_TwOT9hjdMxLWEQZfjbJXw+JiTt=V_zyE2A@mail.gmail.com>
From: Mike Carey <dtabass@gmail.com>
Message-ID: <8dd28981-0627-3843-7c26-e5a97edfaeab@gmail.com>
Date: Thu, 7 Sep 2017 22:54:42 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0)
 Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <CANQf6Do1L3FUr2p_TwOT9hjdMxLWEQZfjbJXw+JiTt=V_zyE2A@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------BBFC0D2940AEF638BF778C21"
Content-Language: en-US

--------------BBFC0D2940AEF638BF778C21
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Or possibly how to retire it and then re-do similarity joins using the 
join infrastructure ideas discussed a year or so ago, perhaps.  (We 
should think about whether or not the time it would take to do SQL+++ 
might be better used to not use that approach anymore - it was an 
interesting experiment at the time it was done, but it's probably worth 
having a revisiting discussion 5 years later - and also whether the 
algorithm as it was invented is still the preferred one to support - 
though the required SQL+++ query would surely be an interesting SQL++ 
optimizer test... :-))


On 9/7/17 10:21 PM, Chen Li wrote:
> Let's discuss how to move AQL+ to SQL++ after Taewoo comes back.
>
> On Thu, Sep 7, 2017 at 12:10 PM, Taewoo Kim <wangsaeu@gmail.com> wrote:
>
>> For similarity join, we use AQL+ that is based on AQL. I think deprecating
>> (not removing) AQL is OK. Ultimately, AQL+ should be converted to SQL++ :-)
>>
>> Best,
>> Taewoo
>>
>> On Thu, Sep 7, 2017 at 9:04 PM, Steven Jacobs <sjaco002@ucr.edu> wrote:
>>
>>> I’ll give the BADest +1 I can :)
>>> Steven
>>>
>>> On Thu, Sep 7, 2017 at 8:50 PM Gerald Sangudi <sangudi@gmail.com> wrote:
>>>
>>>> :-)
>>>>
>>>> On Sep 7, 2017 11:44 AM, "Michael Carey" <mjcarey@ics.uci.edu> wrote:
>>>>
>>>> As AsterixDB evolves, and additional features are added - e.g.,
>> DISTINCT
>>>> aggregate support, or properly implemented query-bodied functions,
>>>> supporting two query languages is hugely expensive:  Updating two
>>> grammars,
>>>> parsers, rules, tests, ... IMO it is time to let go of AQL as an
>>> externally
>>>> supported interface to AsterixDB and only have SQL++ going forward.  I
>>>> think "everyone" has migrated - and if not we should force that
>>> migration.
>>>> (Cloudberry is on SQL++ nowadays, BAD is on SQL++ nowadays, ...)  Any
>>>> objections?  If not, I think we should make this decision officially
>> and
>>>> stop putting energy into carrying the AQL legacy around with us.
>>> Thoughts?


--------------BBFC0D2940AEF638BF778C21--

From dev-return-5200-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sat Sep  9 01:56:52 2017
Return-Path: <dev-return-5200-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id C8D711A652
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sat,  9 Sep 2017 01:56:52 +0000 (UTC)
Received: (qmail 61160 invoked by uid 500); 9 Sep 2017 01:56:52 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 61096 invoked by uid 500); 9 Sep 2017 01:56:51 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 61078 invoked by uid 99); 9 Sep 2017 01:56:51 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 09 Sep 2017 01:56:51 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 381D41A162C
	for <dev@asterixdb.apache.org>; Sat,  9 Sep 2017 01:56:51 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.999
X-Spam-Level: *
X-Spam-Status: No, score=1.999 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id RIAh7MaHFDBj for <dev@asterixdb.apache.org>;
	Sat,  9 Sep 2017 01:56:50 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 5D1145F121
	for <dev@asterixdb.apache.org>; Sat,  9 Sep 2017 01:56:49 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 074CC240ECE;
	Fri,  8 Sep 2017 18:56:18 -0700 (PDT)
Date: Fri, 8 Sep 2017 18:56:17 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, dmitry.lychagin@couchbase.com
Message-ID: <1873196227.16.1504922177994.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build became unstable:  asterix-integration-tests 342bd342
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/860/changes>


From dev-return-5201-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Mon Sep 11 02:29:23 2017
Return-Path: <dev-return-5201-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 5E39B1A539
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Mon, 11 Sep 2017 02:29:23 +0000 (UTC)
Received: (qmail 53553 invoked by uid 500); 11 Sep 2017 02:29:23 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 53491 invoked by uid 500); 11 Sep 2017 02:29:23 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 53480 invoked by uid 99); 11 Sep 2017 02:29:22 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Sep 2017 02:29:22 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 51EB01A301B
	for <dev@asterixdb.apache.org>; Mon, 11 Sep 2017 02:29:22 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.499
X-Spam-Level: *
X-Spam-Status: No, score=1.499 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id v3mmjyxde8mx for <dev@asterixdb.apache.org>;
	Mon, 11 Sep 2017 02:29:21 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 3A7AE60D53
	for <dev@asterixdb.apache.org>; Mon, 11 Sep 2017 02:29:20 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id DE305240E0A;
	Sun, 10 Sep 2017 19:28:46 -0700 (PDT)
Date: Sun, 10 Sep 2017 19:28:46 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, dmitry.lychagin@couchbase.com, tillw@apache.org
Message-ID: <745414043.18.1505096926880.JavaMail.jenkins@unhygienix.ics.uci.edu>
In-Reply-To: <1873196227.16.1504922177994.JavaMail.jenkins@unhygienix.ics.uci.edu>
References: <1873196227.16.1504922177994.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is still unstable: asterix-integration-tests 8c6e7cdb
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/changes>


From dev-return-5202-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Mon Sep 11 06:32:06 2017
Return-Path: <dev-return-5202-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id ED6631AB42
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Mon, 11 Sep 2017 06:32:05 +0000 (UTC)
Received: (qmail 37402 invoked by uid 500); 11 Sep 2017 06:32:05 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 37344 invoked by uid 500); 11 Sep 2017 06:32:05 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 37333 invoked by uid 99); 11 Sep 2017 06:32:05 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Sep 2017 06:32:05 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 248131915C3
	for <dev@asterixdb.apache.org>; Mon, 11 Sep 2017 06:32:05 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.499
X-Spam-Level: *
X-Spam-Status: No, score=1.499 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id kqmboVYGz4un for <dev@asterixdb.apache.org>;
	Mon, 11 Sep 2017 06:32:04 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 44F8C5FC21
	for <dev@asterixdb.apache.org>; Mon, 11 Sep 2017 06:32:03 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id B8AD5240ECE;
	Sun, 10 Sep 2017 23:31:35 -0700 (PDT)
Date: Sun, 10 Sep 2017 23:31:35 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, dmitry.lychagin@couchbase.com, 
	tillw@apache.org
Message-ID: <572295570.20.1505111495719.JavaMail.jenkins@unhygienix.ics.uci.edu>
In-Reply-To: <745414043.18.1505096926880.JavaMail.jenkins@unhygienix.ics.uci.edu>
References: <745414043.18.1505096926880.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is still unstable: asterix-integration-tests a281eeac
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/changes>


From dev-return-5203-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Wed Sep 13 21:58:27 2017
Return-Path: <dev-return-5203-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 8AEF91AF3C
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Wed, 13 Sep 2017 21:58:27 +0000 (UTC)
Received: (qmail 76722 invoked by uid 500); 13 Sep 2017 21:58:27 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 76678 invoked by uid 500); 13 Sep 2017 21:58:27 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 75901 invoked by uid 99); 13 Sep 2017 21:58:26 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Sep 2017 21:58:26 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 3D5F51A7B77
	for <dev@asterixdb.apache.org>; Wed, 13 Sep 2017 21:58:26 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.5
X-Spam-Level: *
X-Spam-Status: No, score=1.5 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id WQG0gxNrogiA for <dev@asterixdb.apache.org>;
	Wed, 13 Sep 2017 21:58:25 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id B2BC65FD7D
	for <dev@asterixdb.apache.org>; Wed, 13 Sep 2017 21:58:25 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 90F15240B54;
	Wed, 13 Sep 2017 14:57:49 -0700 (PDT)
Date: Wed, 13 Sep 2017 14:57:49 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, dmitry.lychagin@couchbase.com, 
	mblow@apache.org, mhubail@apache.org, tillw@apache.org, 
	xkkwww@gmail.com
Message-ID: <1151491378.21.1505339869551.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests 41b4519e
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/866/changes>


From dev-return-5204-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 15 01:39:08 2017
Return-Path: <dev-return-5204-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 347451AC84
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 15 Sep 2017 01:39:08 +0000 (UTC)
Received: (qmail 47148 invoked by uid 500); 15 Sep 2017 01:39:08 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 47086 invoked by uid 500); 15 Sep 2017 01:39:08 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 47075 invoked by uid 99); 15 Sep 2017 01:39:07 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Sep 2017 01:39:07 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 5E557184CEF
	for <dev@asterixdb.apache.org>; Fri, 15 Sep 2017 01:39:07 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2
X-Spam-Level: **
X-Spam-Status: No, score=2 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001]
	autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id 9Dw-chuFfltA for <dev@asterixdb.apache.org>;
	Fri, 15 Sep 2017 01:39:06 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 9402D5FC1C
	for <dev@asterixdb.apache.org>; Fri, 15 Sep 2017 01:39:06 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 6847424069F;
	Thu, 14 Sep 2017 18:38:29 -0700 (PDT)
Date: Thu, 14 Sep 2017 18:38:29 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, dmitry.lychagin@couchbase.com, 
	mblow@apache.org, mhubail@apache.org, tillw@apache.org, 
	xkkwww@gmail.com
Message-ID: <1909586019.22.1505439509303.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests f52bc588
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/868/changes>


From dev-return-5205-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Mon Sep 18 00:50:58 2017
Return-Path: <dev-return-5205-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id D56A61AD4D
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Mon, 18 Sep 2017 00:50:58 +0000 (UTC)
Received: (qmail 79291 invoked by uid 500); 18 Sep 2017 00:50:58 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 79197 invoked by uid 500); 18 Sep 2017 00:50:58 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 79185 invoked by uid 99); 18 Sep 2017 00:50:57 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Sep 2017 00:50:57 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 76CCDC37BF
	for <dev@asterixdb.apache.org>; Mon, 18 Sep 2017 00:50:55 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.401
X-Spam-Level:
X-Spam-Status: No, score=-0.401 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id 16mjgzHMupuX for <dev@asterixdb.apache.org>;
	Mon, 18 Sep 2017 00:50:54 +0000 (UTC)
Received: from mail-io0-f173.google.com (mail-io0-f173.google.com [209.85.223.173])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 66ED65FC80
	for <dev@asterixdb.apache.org>; Mon, 18 Sep 2017 00:50:53 +0000 (UTC)
Received: by mail-io0-f173.google.com with SMTP id e189so15251473ioa.4
        for <dev@asterixdb.apache.org>; Sun, 17 Sep 2017 17:50:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:mime-version:subject:message-id:date:to;
        bh=8JW+bsnEhyGvBT+Qv9VrBtIsdBfhBHuNO1/clL5zFeY=;
        b=bYrMPTap5mB+cJT098kWNDbaJScF1I52+RhbmaM6s1bay5Py4Te1sa234ttCkADVRa
         HURiqEoKPya5T9zlnMvklq/xWefhBH/i0f73ZT1HN1aJiMa2S99y8c8J+yq6fjD7FahJ
         Twt4/3chKypgP11AqAhSD+DayRCHPsiIkhkG7A95NF9/LhBRGtdqC2yJNFt6FLyS2fId
         SPhNX261kNxEKr+ZAELV5SDBBdc5Ng481oeXGnJFiutzvjqeLmY81/VTngaFOECGIb1T
         CEWMD9q5mlY7CaBLYCog/xFDwnfkCHiIjc+OBYa8d9HFBwp703VBP7THUpacLL1Jnp1X
         D1ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:subject:message-id:date:to;
        bh=8JW+bsnEhyGvBT+Qv9VrBtIsdBfhBHuNO1/clL5zFeY=;
        b=RrTjcMyfZMxOjSjwuumoYTiDidPRELXEdzh+hM4ApKinodgyJM7tMMeWehHjnzXZcJ
         EQTfGr0w1I6lZ8Vgnn/qvSk0N834hUNF7r61nvheNnX5iN9hMNYrwh92wEWemfZaLAOm
         fI1zD2vABOrMREhpp/Im7eCI55a8j7DOD1zFASsf609ghA4tWlVUtku5GKupjabRrhti
         TrgfYNq6WfJqXp+xV8yU0R+a/kcXfLDni/lyonJwiNu7/Sq234w6k4LGhyp/4y6CYxWo
         XSzYX5EOV3siIDg4J3XHuhPZ5qR3/KwhJM0LjKXBfcO3nYT2woQsWFv4T0Npq2CT0p6z
         k8dA==
X-Gm-Message-State: AHPjjUi9tSkya0Vtf72EuDJ+uIHsK20zUqAMNEtfEE2ShbMFTSIu5T/W
	UQ2NZOgMjjCfxIAUhDM=
X-Google-Smtp-Source: AOwi7QBwkHkZ/Ab/0E70Q16l0eUPpWSKtEagK5DPQAcQBzL8m0Zid9Lvh3gf4mjzlIr5mpsXqyiLKg==
X-Received: by 10.202.206.70 with SMTP id e67mr32618224oig.118.1505695851817;
        Sun, 17 Sep 2017 17:50:51 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:d0e3:1b8f:4d3:e645? ([2600:8802:1203:ae00:d0e3:1b8f:4d3:e645])
        by smtp.gmail.com with ESMTPSA id x14sm4222932oif.41.2017.09.17.17.50.49
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 17 Sep 2017 17:50:50 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_80FC7ED8-D832-495D-B8F1-8641A958190D"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Index components lifecycle
Message-Id: <8DFD716E-6F5D-4064-9176-878DE9C87217@gmail.com>
Date: Sun, 17 Sep 2017 17:50:48 -0700
To: dev@asterixdb.apache.org
X-Mailer: Apple Mail (2.3273)

--Apple-Mail=_80FC7ED8-D832-495D-B8F1-8641A958190D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi devs,
I just added a new entry in our wiki for the index components lifecycle. =
https://cwiki.apache.org/confluence/display/ASTERIXDB/Index+Component+Life=
cycle =
<https://cwiki.apache.org/confluence/display/ASTERIXDB/Index+Component+Lif=
ecycle>
Hope it helps new comers and existing community members.

Please, help keep it maintained when you make any code changes.

Cheers,
Abdullah.=

--Apple-Mail=_80FC7ED8-D832-495D-B8F1-8641A958190D--

From dev-return-5206-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 19 05:16:34 2017
Return-Path: <dev-return-5206-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id AE947C0F0
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 19 Sep 2017 05:16:34 +0000 (UTC)
Received: (qmail 54383 invoked by uid 500); 19 Sep 2017 05:16:34 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 54331 invoked by uid 500); 19 Sep 2017 05:16:34 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 54317 invoked by uid 99); 19 Sep 2017 05:16:33 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2017 05:16:33 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 671E81A2F7C
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 05:16:33 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.9
X-Spam-Level:
X-Spam-Status: No, score=-0.9 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id sYFQgBUum5CY for <dev@asterixdb.apache.org>;
	Tue, 19 Sep 2017 05:16:32 +0000 (UTC)
Received: from mail-pf0-f169.google.com (mail-pf0-f169.google.com [209.85.192.169])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id B0E0F5F3DA
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 05:16:31 +0000 (UTC)
Received: by mail-pf0-f169.google.com with SMTP id r68so403389pfj.3
        for <dev@asterixdb.apache.org>; Mon, 18 Sep 2017 22:16:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=sender:from:mime-version:subject:message-id:date:to;
        bh=QWdk4ozmD7ybjp6cfhx15b1csok+dsbaMqjywjDRpvc=;
        b=m83qZb99a9Y+OwZahMYA0xNo6VDFLxbYTqQsz1xxwWy71L8xkWRmjvc2/Md16lLAOw
         IWHXhEwRJy/s9jl3aAKAS8DTP7b6M+4Nkih3RAH/Lw8Zho/ph9DmkNSPr+yoaHsx5L7R
         ZCQnb0cdpC7tTRljSXXCcx2W5t7uhud2i+y7IAoriIWeSVZQJR5NIlS8o+HrKSI8J0V3
         A8XnET70k3CBgZMGr2LnHyAO3gaWIghfySlJe2RbXz4whTF671rUuHsZ4KJLnTpweR5b
         g3a3/PkOsALNHnXM4OOvNNu2S4QAhDu51eMLCkE21XWSA0oNA25fs3bZtW2i5KvdAYg/
         MRYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:sender:from:mime-version:subject:message-id:date
         :to;
        bh=QWdk4ozmD7ybjp6cfhx15b1csok+dsbaMqjywjDRpvc=;
        b=FnafXoHLBqORZDT1U4mDdaAdvWAtCAq2/NU38X9+5aXOFig+l2TSUZYIlV52FUbpwv
         RLHasI75ia4YwtOYZrbVYRtbyvLvLL/Ceoz8VGyPRpyUB1CyAcTgGIS5i9D3PECsRUmK
         /smiRQmZW1wu9pNq6vp2/rx9KOPFgDLX42yd2Fr+gvQDEYlB0//C2rMKq4IycOIAuAP6
         FAFVZj9Nze9PSMy+w5Vgh9VmXMxflvqSjfgY1LtF9j6vD7bWasDjEh3Ju8LfOlvpjDEl
         0QFNs6OK9ybZPxM+e4wWA56FMXeXzccWy+JCaa2Z5Mva59jl4R3H3gWpR5mLlkAYn6Jz
         yRmw==
X-Gm-Message-State: AHPjjUgHerQ83x7TkKmO0TKP+KY5xrrQ1+DrfvuWiSSKg2xv3ksZ9MvF
	zw8j2PWKu/4AS0ew6Ye0V+4wAKYR
X-Google-Smtp-Source: AOwi7QBiJ1cdDTVsYL5twWCmmx/qSXEzDVVs0atdzFnNPhqCuYY6N/68rFdTr1ghP4azsACOzsDKkQ==
X-Received: by 10.101.93.65 with SMTP id e1mr236667pgt.150.1505798189738;
        Mon, 18 Sep 2017 22:16:29 -0700 (PDT)
Received: from [192.168.1.8] ([138.229.150.71])
        by smtp.gmail.com with ESMTPSA id e185sm1592292pfg.142.2017.09.18.22.16.27
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 18 Sep 2017 22:16:28 -0700 (PDT)
Sender: Ildar Absalyamov <ty13r.derden@gmail.com>
From: Ildar Absalyamov <ildar.absalyamov@gmail.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_90EEE99C-0077-4793-8794-84E5B9B9B6C5"
Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\))
Subject: LSM storage refactoring
Message-Id: <AF971964-7B2A-472B-96CA-5F892AE86962@gmail.com>
Date: Mon, 18 Sep 2017 22:16:26 -0700
To: dev@asterixdb.apache.org
X-Mailer: Apple Mail (2.3251)

--Apple-Mail=_90EEE99C-0077-4793-8794-84E5B9B9B6C5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi Devs,

In line with earlier major structural refactorings of =
storage/index-related code [1] I would like to propose a next step in =
this cleanup [2].
The main problem that I tried to solve with this patch is that code =
responsible for LSM disk/memory component lifecycle (creation, =
destruction, bulkloading, etc) is smeared across fabric methods in =
appropriate index implementations, while much of it is duplicated =
between various types of index components (bTrees, externalBTrees, =
externalBTreesWithBuddyBTree, rTrees, antimatterRTrees, invertedIndexes, =
etc). Moreover all these different disk\memory component implementations =
have a lot of commonality in how they manage lifecycle of their parts =
(main indexes, bloom filters, buddyBTrees\deletedKeysBTrees).

This change removes much of boilerplate from LSM component-handling code =
and relies on more object-oriented design to bring in the logic of a =
particular element of the component into one place.
It also introduces a composable method of assembling bulkload pipelines, =
allowing to create a chain of operators,  responsible for bulkloading a =
piece of component, and easily extend this pipeline with additional =
operations (calculating stats\inferring schema\etc).

If your are interested or have an opinion on how this part of the =
codebase should be structured (or it will break all your code in a =
private branch ;)), please have a look [2].

[1] https://asterix-gerrit.ics.uci.edu/#/c/1728/ =
<https://asterix-gerrit.ics.uci.edu/#/c/1728/>
[2] https://asterix-gerrit.ics.uci.edu/#/c/2014/ =
<https://asterix-gerrit.ics.uci.edu/#/c/2014/>
Best regards,
Ildar


--Apple-Mail=_90EEE99C-0077-4793-8794-84E5B9B9B6C5--

From dev-return-5207-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 19 05:21:56 2017
Return-Path: <dev-return-5207-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id D7614C0F9
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 19 Sep 2017 05:21:56 +0000 (UTC)
Received: (qmail 61143 invoked by uid 500); 19 Sep 2017 05:21:56 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 61090 invoked by uid 500); 19 Sep 2017 05:21:56 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 61078 invoked by uid 99); 19 Sep 2017 05:21:56 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2017 05:21:56 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id B00FD182AB3
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 05:21:55 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -2.4
X-Spam-Level:
X-Spam-Status: No, score=-2.4 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
	autolearn=disabled
Authentication-Results: spamd3-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id WVK9wXnJgCnL for <dev@asterixdb.apache.org>;
	Tue, 19 Sep 2017 05:21:54 +0000 (UTC)
Received: from mail-io0-f177.google.com (mail-io0-f177.google.com [209.85.223.177])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 6051B5FB76
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 05:21:53 +0000 (UTC)
Received: by mail-io0-f177.google.com with SMTP id z187so7278125ioz.12
        for <dev@asterixdb.apache.org>; Mon, 18 Sep 2017 22:21:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:content-transfer-encoding:mime-version:subject:date:references
         :to:in-reply-to:message-id;
        bh=GiHiJTP/PqMWryhPr419LxE6J73IaBd/hyiwyaiXtWQ=;
        b=YSXlizwPfVmBPgMIyogFS5h+eB71g/c+2clwkycZvisMARXvgSw07xHRku0t9tHigJ
         nMOeJA89mGkgV3XlRZIZ5OFW77jGlIViFGzl2To2FtgDvq9SbCUD/bkrXUiwHQTzuDLU
         uSWrEAIAxgg1qOJ1XIp6KQ7m5PEuFUPwUDQx/QP7D/f/bE5vvPnDGTr9ebZKo20cFC7A
         ahAdMyxfXhKM4dHBX2/B7K+mPIsY2gp6nzZ1V9tDAuAcz+7DSkf60xrWXApMFfnS1r5H
         eiUCJO7xzjFbGxYD+UyIWuzKkBJa2Cu/lXXeukDrbGvOYjWjv14YkmesnkGqZPDXEWCI
         9HwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:content-transfer-encoding:mime-version
         :subject:date:references:to:in-reply-to:message-id;
        bh=GiHiJTP/PqMWryhPr419LxE6J73IaBd/hyiwyaiXtWQ=;
        b=B4lCKnA4lDGqtkKv4rsxPmLIAECPbolLPP9WxdcOK92coMUAtxnCoMzoOnjwHSFau1
         cyq6NbJGn2CFg6VzhJzmGIwSb4YL2Ck6tTR7eNIIwoBUz0nA7c2lgcC8abA2uXLuOt5r
         FX1r4aaKY7SbN9/HO8f6/1p81LcoR1K3RtyUZDF6U55wqgv7s0BmG5kQFju76fGxNyfQ
         gHhLnc8pKXL2pTbRrYmW5lE34idhV5Jq5dinJGcdN+wguUN//GdjdMGiMtKWb7dubeAP
         Q3IDF+QNqmupTlFx4X/hn/smQjEbtgtC4C0kbxv3FpjiGZW9aDXS471JU5HUtS67Fhaf
         bHyg==
X-Gm-Message-State: AHPjjUi+JZA14sWiAS815h8DnVvX9vpOMNvyiF7Vt0GdMVa/2vkjgWYZ
	p92Hr27zZpLg/9Q4zPgw/0cPgj0d
X-Google-Smtp-Source: AOwi7QCSpzTJjKif0EJshqxyFy1OeyQrdqrNRCIW+eMysuRf20441N8ntef59H3yWvr6/CXuNdJCkQ==
X-Received: by 10.202.88.86 with SMTP id m83mr216573oib.75.1505798511705;
        Mon, 18 Sep 2017 22:21:51 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:e5d8:f04:a1f6:51d8? ([2600:8802:1203:ae00:e5d8:f04:a1f6:51d8])
        by smtp.gmail.com with ESMTPSA id w192sm3255454oie.5.2017.09.18.22.21.50
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 18 Sep 2017 22:21:50 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: LSM storage refactoring
Date: Mon, 18 Sep 2017 22:21:49 -0700
References: <AF971964-7B2A-472B-96CA-5F892AE86962@gmail.com>
To: dev@asterixdb.apache.org
In-Reply-To: <AF971964-7B2A-472B-96CA-5F892AE86962@gmail.com>
Message-Id: <EBB30C34-A01A-4191-8CE5-1F0EB234FE85@gmail.com>
X-Mailer: Apple Mail (2.3273)

Thanks Ildar,
I will take a look,

Cheers,
Abdullah.

> On Sep 18, 2017, at 10:16 PM, Ildar Absalyamov =
<ildar.absalyamov@gmail.com> wrote:
>=20
> Hi Devs,
>=20
> In line with earlier major structural refactorings of =
storage/index-related code [1] I would like to propose a next step in =
this cleanup [2].
> The main problem that I tried to solve with this patch is that code =
responsible for LSM disk/memory component lifecycle (creation, =
destruction, bulkloading, etc) is smeared across fabric methods in =
appropriate index implementations, while much of it is duplicated =
between various types of index components (bTrees, externalBTrees, =
externalBTreesWithBuddyBTree, rTrees, antimatterRTrees, invertedIndexes, =
etc). Moreover all these different disk\memory component implementations =
have a lot of commonality in how they manage lifecycle of their parts =
(main indexes, bloom filters, buddyBTrees\deletedKeysBTrees).
>=20
> This change removes much of boilerplate from LSM component-handling =
code and relies on more object-oriented design to bring in the logic of =
a particular element of the component into one place.
> It also introduces a composable method of assembling bulkload =
pipelines, allowing to create a chain of operators,  responsible for =
bulkloading a piece of component, and easily extend this pipeline with =
additional operations (calculating stats\inferring schema\etc).
>=20
> If your are interested or have an opinion on how this part of the =
codebase should be structured (or it will break all your code in a =
private branch ;)), please have a look [2].
>=20
> [1] https://asterix-gerrit.ics.uci.edu/#/c/1728/ =
<https://asterix-gerrit.ics.uci.edu/#/c/1728/>
> [2] https://asterix-gerrit.ics.uci.edu/#/c/2014/ =
<https://asterix-gerrit.ics.uci.edu/#/c/2014/>
> Best regards,
> Ildar
>=20


From dev-return-5208-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 19 17:08:14 2017
Return-Path: <dev-return-5208-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 7E8C2C02E
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 19 Sep 2017 17:08:14 +0000 (UTC)
Received: (qmail 75286 invoked by uid 500); 19 Sep 2017 17:08:14 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 75232 invoked by uid 500); 19 Sep 2017 17:08:14 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 75221 invoked by uid 99); 19 Sep 2017 17:08:14 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2017 17:08:14 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 9E40D180AAE
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 17:08:13 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.198
X-Spam-Level:
X-Spam-Status: No, score=0.198 tagged_above=-999 required=6.31
	tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5,
	RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id ipSn3w0LOm62 for <dev@asterixdb.apache.org>;
	Tue, 19 Sep 2017 17:08:11 +0000 (UTC)
Received: from mx2.ucr.edu (mx2.ucr.edu [138.23.62.3])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 2D23B5FBE5
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 17:08:10 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2BoBgCxTcFZf8XYVdFbHRgHhDJuLoNugTaYYTsGAQEBBoEmgnUBinmCe4dQAQkjiW4HVwECAQEBAQECEwEBCQsLCCYxhUJ1AQY3AiQSAQUBFopFDRCaGYNFQIwLgieIBwEHgz8FEoMZggKBCIsXgkeCYAWBLQEBAZESjkAIAQGBX4V9jHqSepUjFAUfgRWBZDIhJnYGVoFaggVEHIIHIIkjAQEB
X-IPAS-Result: A2BoBgCxTcFZf8XYVdFbHRgHhDJuLoNugTaYYTsGAQEBBoEmgnUBinmCe4dQAQkjiW4HVwECAQEBAQECEwEBCQsLCCYxhUJ1AQY3AiQSAQUBFopFDRCaGYNFQIwLgieIBwEHgz8FEoMZggKBCIsXgkeCYAWBLQEBAZESjkAIAQGBX4V9jHqSepUjFAUfgRWBZDIhJnYGVoFaggVEHIIHIIkjAQEB
X-IronPort-AV: E=Sophos;i="5.42,418,1500966000"; 
   d="scan'208,217";a="807097825"
Received: from mail-qt0-f197.google.com ([209.85.216.197])
  by smtp2.ucr.edu with ESMTP/TLS/AES128-SHA; 19 Sep 2017 10:08:02 -0700
Received: by mail-qt0-f197.google.com with SMTP id q30so296767qtj.1
        for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 10:08:02 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=FFA033n5/EwcLnafeQ15qeodUAk/OKr0vDy6VfmHJLY=;
        b=Z1JIo+Ojzg1m4081OHNRh0ybdaD6+fprbf5BsFkaCWs4hBQkQE62JT0FEHap43Kre8
         3wgVNjLOdru6DzxJ8uKvZhr8q2KKxyxbYM4wldOTILW0B5uJ5n8SpwTGUCBIJOkWlQRY
         pPTU5zjtYu9EotfE7m0tPg6U+mGLs0g22mcl6B0/er9Z4NJ9MiuGz5Oq7mpGGk6YeQFm
         S6gsiGuFfRntp1mR8dK21U2DDmRgcx1jO8WknEp4ae8feLFLtq7GRXwCU4xv79WlxzCw
         tgytrR1wk187OlW8krCRmBDVulvYadP/yFv8o/LS7soovoHpav3vrmz3lnSMVNAqFgNU
         adpw==
X-Gm-Message-State: AHPjjUgqXnJHO2wWbKlCWp7axtkEA6LNBG5AMJiGUDkV3V0IDO5bGRn4
	R8VFpt0t7Xnl35Ew//0tDla/cBty6quGxo9dY0YS1I/LbIyQ2IsVYL+Ghn2TSldlJ9wyE6SZCPF
	5dVVKX9kxZsjcRXkPfc6I3dSzya/FiFANEayj
X-Received: by 10.55.191.129 with SMTP id p123mr3001155qkf.47.1505840881888;
        Tue, 19 Sep 2017 10:08:01 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QDb0i2hq6HWOrWuQ2/iNgl8s2wf+O/oAhUG8And1TXb+rLxg0ap/ew7V80US/DDl/xnf3kEUQ13WG4P5LlfPv4=
X-Received: by 10.55.191.129 with SMTP id p123mr3001144qkf.47.1505840881632;
 Tue, 19 Sep 2017 10:08:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.200.58.225 with HTTP; Tue, 19 Sep 2017 10:08:01 -0700 (PDT)
From: Steven Jacobs <sjaco002@ucr.edu>
Date: Tue, 19 Sep 2017 10:08:01 -0700
Message-ID: <CAE1xAnsUUuXiFxBczvT6=oBrt7NrRZ1TKJNsz0CLd+Xaqg-SPw@mail.gmail.com>
Subject: inserting into an autogenerated key dataset from a query result
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="94eb2c043700d6a29805598de6b2"

--94eb2c043700d6a29805598de6b2
Content-Type: text/plain; charset="UTF-8"

Hi all,
I'm seeing a strange issue when inserting into a dataset with an
autogenerated key the result of a query. I was wondering if anyone has had
success with such a case. I have a simple example below which fails on
master (The full JIRA issue is here:
https://issues.apache.org/jira/browse/ASTERIXDB-2101)


drop dataverse channels if exists;
create dataverse channels;
use channels;
create type result as {
  id:uuid
};
create type subscriptionType as {
  subscriptionId:uuid,
  param0:int
};
create dataset roomRecordsResults(result)
primary key id autogenerated;
create dataset roomRecordsSubscriptions(subscriptionType)
primary key subscriptionId autogenerated;
use channels;
insert into channels.roomRecordsResults (
  select sub.subscriptionId
  from channels.roomRecordsSubscriptions sub
);

--94eb2c043700d6a29805598de6b2--

From dev-return-5209-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 19 17:49:12 2017
Return-Path: <dev-return-5209-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 11A4EC255
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 19 Sep 2017 17:49:12 +0000 (UTC)
Received: (qmail 12458 invoked by uid 500); 19 Sep 2017 17:49:12 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 12404 invoked by uid 500); 19 Sep 2017 17:49:12 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 12389 invoked by uid 99); 19 Sep 2017 17:49:11 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2017 17:49:11 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 385CD1A597C
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 17:49:11 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.901
X-Spam-Level:
X-Spam-Status: No, score=-0.901 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	SPF_PASS=-0.001] autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id vVAZCvR5JGmM for <dev@asterixdb.apache.org>;
	Tue, 19 Sep 2017 17:49:10 +0000 (UTC)
Received: from mail-pg0-f43.google.com (mail-pg0-f43.google.com [74.125.83.43])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id A36EC5FB62
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 17:49:09 +0000 (UTC)
Received: by mail-pg0-f43.google.com with SMTP id b11so200558pgn.12
        for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 10:49:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-language;
        bh=PCnWkoelN/NwudBb6FVh2WsQWZo2qVpuJIETzyQhS78=;
        b=qQzXNtomSTFU7lp4/O8nIG0tencVkkJvX3H7LMCM389ZmyML/kBt3SAVU2xCmQS8oE
         tKC2jeYQT/5Lk1uLxROf+lWV/FrOKtflroYlcL8Nw7gtBDjVef6HZq6VoCPf0ySdvENk
         Sk6vuJXO5TpxC7Lv4R5Rvw54HHW5P18mf7Uv3zflgYwSmJc10Reh0VLrZdnufTI6HGDv
         N1WLpRqKFRz2WBguQEdk8YZjEgrqrJ74jsdFq4OohRJPUygp3gJvYh0mqt0A5JzYyYyH
         Jj1Bf7okFRSDh69V7vIkE3Ve1Lby68u360rVyMkD7dHuV4KCPSrCXwFnmgMgogq7x04a
         rrxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=PCnWkoelN/NwudBb6FVh2WsQWZo2qVpuJIETzyQhS78=;
        b=EeIQ1XBMcAaApLCtLSUk/KdpjBDwrOVrGRlMV1QVzSquo21aQYGFEDXXOO6V8E9LZA
         7fJwUp7lCAy9tw5WuXEG43JFBXcUe05f8wet+ADAFOc8PmW3WnCqCRCORdKYDMhaBXlF
         PmdeQioZN2W31LbFQNwymtHElB8aPsm/P9HKEhcr/qYINAjck3fZ3r0RCg62R7qDH1ct
         yZPnZZpNmehmyFQJHPVoN2d4YtWZ18K80V5JNm1a2ywOnA7m0VFZwvfAMoQkfdH5Vijl
         AEs+JKP6zQoVekTVIcWqD+sSs6BcQ8VBw51xh/nYssyEe3i6u4kf6LEUAlNL7Gozsagi
         3e8Q==
X-Gm-Message-State: AHPjjUha9ig3PjII6EYxYssNSFSCugdHYuiW5JNQCuyB02OWOCO9pfVN
	JOjvunLnT0/ivjPqjsMY5gAACQ==
X-Google-Smtp-Source: AOwi7QA8KsxO/mw17bkOPF5ROEg4b9DA6pz5TvYg03lbFTxZNKRP1doRAbFdsGwXnzkZ+4xrw1VXNw==
X-Received: by 10.98.56.74 with SMTP id f71mr2058303pfa.44.1505843347953;
        Tue, 19 Sep 2017 10:49:07 -0700 (PDT)
Received: from dhcp-053198.ics.uci.edu (dhcp-053198.ics.uci.edu. [128.195.53.198])
        by smtp.googlemail.com with ESMTPSA id l85sm4869567pfb.176.2017.09.19.10.49.06
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Tue, 19 Sep 2017 10:49:06 -0700 (PDT)
Subject: Re: inserting into an autogenerated key dataset from a query result
To: dev@asterixdb.apache.org
References: <CAE1xAnsUUuXiFxBczvT6=oBrt7NrRZ1TKJNsz0CLd+Xaqg-SPw@mail.gmail.com>
From: Mike Carey <dtabass@gmail.com>
Message-ID: <8e1dbe8e-09bc-583b-3cac-b8b6d966acb2@gmail.com>
Date: Tue, 19 Sep 2017 10:49:06 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0)
 Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <CAE1xAnsUUuXiFxBczvT6=oBrt7NrRZ1TKJNsz0CLd+Xaqg-SPw@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------F2AD86C3839709F1D2F95F04"
Content-Language: en-US

--------------F2AD86C3839709F1D2F95F04
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Note that this works on the release from a couple of weeks ago, so this 
is a regression that got missed by our tests (surprise!) it seems.


On 9/19/17 10:08 AM, Steven Jacobs wrote:
> Hi all,
> I'm seeing a strange issue when inserting into a dataset with an
> autogenerated key the result of a query. I was wondering if anyone has had
> success with such a case. I have a simple example below which fails on
> master (The full JIRA issue is here:
> https://issues.apache.org/jira/browse/ASTERIXDB-2101)
>
>
> drop dataverse channels if exists;
> create dataverse channels;
> use channels;
> create type result as {
>    id:uuid
> };
> create type subscriptionType as {
>    subscriptionId:uuid,
>    param0:int
> };
> create dataset roomRecordsResults(result)
> primary key id autogenerated;
> create dataset roomRecordsSubscriptions(subscriptionType)
> primary key subscriptionId autogenerated;
> use channels;
> insert into channels.roomRecordsResults (
>    select sub.subscriptionId
>    from channels.roomRecordsSubscriptions sub
> );
>


--------------F2AD86C3839709F1D2F95F04--

From dev-return-5210-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 19 18:21:00 2017
Return-Path: <dev-return-5210-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id C50E1C3E5
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 19 Sep 2017 18:20:59 +0000 (UTC)
Received: (qmail 8816 invoked by uid 500); 19 Sep 2017 18:20:59 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 8761 invoked by uid 500); 19 Sep 2017 18:20:59 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 8750 invoked by uid 99); 19 Sep 2017 18:20:59 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2017 18:20:59 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id B34F4184A72
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 18:20:58 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.198
X-Spam-Level:
X-Spam-Status: No, score=0.198 tagged_above=-999 required=6.31
	tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5,
	RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id 2mTQkeg8W6Nv for <dev@asterixdb.apache.org>;
	Tue, 19 Sep 2017 18:20:57 +0000 (UTC)
Received: from mx1.ucr.edu (mx1.ucr.edu [138.23.248.2])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id A970F5F640
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 18:20:56 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2D6AgDyXsFZf8XYVdFbHAEBBAEBCgEBhD5uJweDboE2mGE7BgEBAQaBJgSIO4UwgnuHUAEJI4UYAoRUB0IVAQIBAQEBAQEBEwEBCQsLCCYxhRgBAQEBAgEjWwsLBAcFCCoCAiEBEgEFARwZihsDCAUIEJ0DQIwLgieHNA1FAQeDEgEBCAIBIAUSgxmCAoEIhVOCWIJsgkeCYAWBLQEBAZESjg4yCAEBgV+FfYgDhHeSeoxciEcUBR+BFTWBLzIhJnYGVoFaghA5HIIHIDaIbQEBAQ
X-IPAS-Result: A2D6AgDyXsFZf8XYVdFbHAEBBAEBCgEBhD5uJweDboE2mGE7BgEBAQaBJgSIO4UwgnuHUAEJI4UYAoRUB0IVAQIBAQEBAQEBEwEBCQsLCCYxhRgBAQEBAgEjWwsLBAcFCCoCAiEBEgEFARwZihsDCAUIEJ0DQIwLgieHNA1FAQeDEgEBCAIBIAUSgxmCAoEIhVOCWIJsgkeCYAWBLQEBAZESjg4yCAEBgV+FfYgDhHeSeoxciEcUBR+BFTWBLzIhJnYGVoFaghA5HIIHIDaIbQEBAQ
X-IronPort-AV: E=Sophos;i="5.42,418,1500966000"; 
   d="scan'208,217";a="812320508"
Received: from mail-qt0-f197.google.com ([209.85.216.197])
  by smtp1.ucr.edu with ESMTP/TLS/AES128-SHA; 19 Sep 2017 11:20:49 -0700
Received: by mail-qt0-f197.google.com with SMTP id 43so498503qtr.6
        for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 11:20:49 -0700 (PDT)
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;
        bh=bJ4PG/suc+ve97BdrQVugOtButeRjiGqDyJm0pAvJTk=;
        b=Pa+MGIjc34QplZI5wptzVQRE7RErLOfpfN1e3+FrV7xPMSP35GLGqPxYO1B5/BYmAC
         mHzqZrBMJpzTz4tJdVGn0Ry/NUwxJhUUpoNzuKvL6TISJIrGzQEoSRjmbpq5vtVtlz7a
         f5HgSgCxSIwMHqWbyte0sSJ4ZX1Fxv5yKWPTkXjpdh9X9GUH/dP5F3SLui5T7vTJt0KR
         LwqsUs80124sFah3KXLICzlWC8m9ku3bzlxKoyhFmP2dc4w15WF4CUr6t3Pow95ddR6B
         0PUXPiQjvNl9sXiOb5GAwlanRB3wfrhb+WTrPfHsmPRbLDGTUtRnRsWDKUUfPWR721NW
         cKpA==
X-Gm-Message-State: AHPjjUiX9uGm0lxRAiDLTmjUb5MOzxuZo7kiv329Nm3WsYEcvyNne3jF
	j01WjFPEChoB4IpN1VhZ54+imspd6ZtBLBu6pCsYiHukoh+oUYvzP4AUx0M7+uLKoMCsWAS/Mit
	33mPsA3drPFIDVPNsSs0vMykkJxza+bzrbEn/
X-Received: by 10.55.82.194 with SMTP id g185mr3181271qkb.282.1505845248396;
        Tue, 19 Sep 2017 11:20:48 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QBfrh0oN0idd7FSK+HyOJ0oCEbhsAiRigFqope2OYy644FZX655KbZg/nwUCahUIcKgxnXTaHE0TWdNRTbwm8o=
X-Received: by 10.55.82.194 with SMTP id g185mr3181250qkb.282.1505845248095;
 Tue, 19 Sep 2017 11:20:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.200.58.225 with HTTP; Tue, 19 Sep 2017 11:20:47 -0700 (PDT)
In-Reply-To: <8e1dbe8e-09bc-583b-3cac-b8b6d966acb2@gmail.com>
References: <CAE1xAnsUUuXiFxBczvT6=oBrt7NrRZ1TKJNsz0CLd+Xaqg-SPw@mail.gmail.com>
 <8e1dbe8e-09bc-583b-3cac-b8b6d966acb2@gmail.com>
From: Steven Jacobs <sjaco002@ucr.edu>
Date: Tue, 19 Sep 2017 11:20:47 -0700
Message-ID: <CAE1xAnvxg_es=1WzrGHeJfMrxo-JdAWRQ7fZSiei5QDxD5=ixg@mail.gmail.com>
Subject: Re: inserting into an autogenerated key dataset from a query result
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a114a6886198e7b05598eebe8"

--001a114a6886198e7b05598eebe8
Content-Type: text/plain; charset="UTF-8"

Apologies, this appears to be only happening on my local copy of master.
I've cleaned and rebuilt several times and still can't get it to resolve
locally, but it seems to be my problem and not the code base.
Steven

On Tue, Sep 19, 2017 at 10:49 AM, Mike Carey <dtabass@gmail.com> wrote:

> Note that this works on the release from a couple of weeks ago, so this is
> a regression that got missed by our tests (surprise!) it seems.
>
>
>
> On 9/19/17 10:08 AM, Steven Jacobs wrote:
>
>> Hi all,
>> I'm seeing a strange issue when inserting into a dataset with an
>> autogenerated key the result of a query. I was wondering if anyone has had
>> success with such a case. I have a simple example below which fails on
>> master (The full JIRA issue is here:
>> https://issues.apache.org/jira/browse/ASTERIXDB-2101)
>>
>>
>> drop dataverse channels if exists;
>> create dataverse channels;
>> use channels;
>> create type result as {
>>    id:uuid
>> };
>> create type subscriptionType as {
>>    subscriptionId:uuid,
>>    param0:int
>> };
>> create dataset roomRecordsResults(result)
>> primary key id autogenerated;
>> create dataset roomRecordsSubscriptions(subscriptionType)
>> primary key subscriptionId autogenerated;
>> use channels;
>> insert into channels.roomRecordsResults (
>>    select sub.subscriptionId
>>    from channels.roomRecordsSubscriptions sub
>> );
>>
>>
>

--001a114a6886198e7b05598eebe8--

From dev-return-5211-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 19 21:49:31 2017
Return-Path: <dev-return-5211-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 0667BCE9A
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 19 Sep 2017 21:49:31 +0000 (UTC)
Received: (qmail 30775 invoked by uid 500); 19 Sep 2017 21:49:30 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 30718 invoked by uid 500); 19 Sep 2017 21:49:30 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 30706 invoked by uid 99); 19 Sep 2017 21:49:30 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2017 21:49:30 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 36A5118492E
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 21:49:30 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2
X-Spam-Level: **
X-Spam-Status: No, score=2 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001]
	autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id UJqiizYLEug0 for <dev@asterixdb.apache.org>;
	Tue, 19 Sep 2017 21:49:29 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id AABEC610E2
	for <dev@asterixdb.apache.org>; Tue, 19 Sep 2017 21:49:29 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id BF3FA2411F4;
	Tue, 19 Sep 2017 14:48:47 -0700 (PDT)
Date: Tue, 19 Sep 2017 14:48:47 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, dmitry.lychagin@couchbase.com, 
	ildar.absalyamov@gmail.com, mblow@apache.org, mhubail@apache.org, 
	tillw@apache.org, xkkwww@gmail.com
Message-ID: <810302152.23.1505857727742.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is back to stable : asterix-integration-tests
 7a4b5681
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: SUCCESS

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/870/changes>


From dev-return-5212-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 22 11:37:47 2017
Return-Path: <dev-return-5212-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id E705E10D03
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 22 Sep 2017 11:37:47 +0000 (UTC)
Received: (qmail 1417 invoked by uid 500); 22 Sep 2017 11:37:47 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 1343 invoked by uid 500); 22 Sep 2017 11:37:47 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 1332 invoked by uid 99); 22 Sep 2017 11:37:47 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Sep 2017 11:37:47 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 109BDD56D4
	for <dev@asterixdb.apache.org>; Fri, 22 Sep 2017 11:37:47 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.999
X-Spam-Level: *
X-Spam-Status: No, score=1.999 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id DdsQfpxnSb9p for <dev@asterixdb.apache.org>;
	Fri, 22 Sep 2017 11:37:45 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 41F015FD02
	for <dev@asterixdb.apache.org>; Fri, 22 Sep 2017 11:37:44 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 8E3E7241923;
	Fri, 22 Sep 2017 04:36:59 -0700 (PDT)
Date: Fri, 22 Sep 2017 04:36:59 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, mhubail@apache.org, 
	tillw@apache.org, xkkwww@gmail.com
Message-ID: <375630540.24.1506080219533.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests ae0b3fe8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/873/changes>


From dev-return-5213-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sat Sep 23 00:50:23 2017
Return-Path: <dev-return-5213-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 02921100AD
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sat, 23 Sep 2017 00:50:23 +0000 (UTC)
Received: (qmail 71741 invoked by uid 500); 23 Sep 2017 00:50:22 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 71637 invoked by uid 500); 23 Sep 2017 00:50:22 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 71625 invoked by uid 99); 23 Sep 2017 00:50:22 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Sep 2017 00:50:22 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id ED416D609C
	for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 00:50:21 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -1.302
X-Spam-Level:
X-Spam-Status: No, score=-1.302 tagged_above=-999 required=6.31
	tests=[KAM_NUMSUBJECT=0.5, RCVD_IN_DNSWL_MED=-2.3,
	RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001]
	autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id zCJYDQDIt7u4 for <dev@asterixdb.apache.org>;
	Sat, 23 Sep 2017 00:50:20 +0000 (UTC)
Received: from mx2.ucr.edu (mx2.ucr.edu [138.23.62.3])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 5311B6125C
	for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 00:50:20 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2AzAwBersVZf0dTfUpcHAEBBAEBCgEBhD6FC4sUjwdBAQEBBn8JjhKIR4IEAQmJYVcBAgEBAQEBAhMBAQkLCwgmMYVCDwEFdgImAjYBBQEvCAEBiiINmmhAjAuCJ4gIAQeDPQkBCHyCHYICgQmCVwuHOgESAQmDKYJgBYEtAQEBkReORggBAYFgDZJxi0iHOpUXAgQCBAUCBhQkgRWBWgtTJ4FShkeIR4IzAQEB
X-IPAS-Result: A2AzAwBersVZf0dTfUpcHAEBBAEBCgEBhD6FC4sUjwdBAQEBBn8JjhKIR4IEAQmJYVcBAgEBAQEBAhMBAQkLCwgmMYVCDwEFdgImAjYBBQEvCAEBiiINmmhAjAuCJ4gIAQeDPQkBCHyCHYICgQmCVwuHOgESAQmDKYJgBYEtAQEBkReORggBAYFgDZJxi0iHOpUXAgQCBAUCBhQkgRWBWgtTJ4FShkeIR4IzAQEB
X-IronPort-AV: E=Sophos;i="5.42,428,1500966000"; 
   d="scan'208";a="809220960"
Received: from mail-pg0-f71.google.com ([74.125.83.71])
  by smtp2.ucr.edu with ESMTP/TLS/AES128-SHA; 22 Sep 2017 17:50:13 -0700
Received: by mail-pg0-f71.google.com with SMTP id d8so4891222pgt.1
        for <dev@asterixdb.apache.org>; Fri, 22 Sep 2017 17:50:13 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:to:subject:message-id:date:user-agent
         :mime-version:content-transfer-encoding:content-language;
        bh=S7SYC1l8Uwc3G2YHJZsWllC+NO6QZpJq8gZw7WKbcUE=;
        b=CkQ0klQXtBud3UNKo+i/t1s2AiwrfzFSSEBINa90H10bCinO/B6wB66jHQ3G4PRXgc
         sS+YB3lCbineVUJHntde6OO2MHn9Y7mWVa15tvlxq04H5PxVrcwtBg43FfiHTKTLshRs
         TWtBfKmoWF5WPInWadVwLmyNuPGV+4hnlFoOFhIfLWa1qMu0sd1t3+t0EfsiQR26gtWR
         9XtLub8FplR7dD4HgZGp5nsFoAvsvJ8XQTMyJc/GAgvxD13PuKYtEow3JUtJW8WaN9Cc
         bn+hWtOzKMbAqmUQl02Mvn5+WAJxs20EdhDfdC3pHa+p7WuDdPpgQdtcWP6+huoJSKed
         Y8Gw==
X-Gm-Message-State: AHPjjUjNGnr7MNFdw/0K/ke7JmySrm8qgqffkHzx0sBwwtt/yI2ucrjz
	XiPk/tyENHsQD33ku5u3lMpBXWz4sRb/32iDHgbxs+OE4Oet7NicsEW64n+ZViu2QYmoefJ4ITr
	ppuL3jZAxsocT7JO1SksW
X-Received: by 10.101.82.202 with SMTP id z10mr726052pgp.176.1506127813039;
        Fri, 22 Sep 2017 17:50:13 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QC/0XYHOIZdlTAoZqUiVikpjS0ZKocjk80ArbeNoop3C8ctnl42N5YZnH253yeyah00Y/OVxg==
X-Received: by 10.101.82.202 with SMTP id z10mr726040pgp.176.1506127812680;
        Fri, 22 Sep 2017 17:50:12 -0700 (PDT)
Received: from tulip.cs.ucr.edu (tulip.cs.ucr.edu. [169.235.27.252])
        by smtp.gmail.com with ESMTPSA id f8sm1052359pgs.7.2017.09.22.17.50.11
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Fri, 22 Sep 2017 17:50:12 -0700 (PDT)
From: Zacharias Chasparis <zchas001@ucr.edu>
To: dev@asterixdb.apache.org
Subject: Problem after updating to 0.9.3
Message-ID: <34145299-0a0f-5f05-163f-f348f22a1f8b@ucr.edu>
Date: Fri, 22 Sep 2017 17:49:43 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.3.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

Hi all,

I'm a PhD student at UCR advised by Dr Eldawy and I have started working 
on AsterixDB.
Since I have updated to the last version, I cannot even run the SQL++ 
examples from the Asterix website. More specific, when I'm trying to 
create datasets/indexes, I'm getting the following errors (copy-paste 
from IntelliJ IDE):

Sep 22, 2017 5:28:00 PM 
org.apache.asterix.app.active.ActiveNotificationHandler getEventListeners
INFO: getEventListeners() was called
Sep 22, 2017 5:28:00 PM 
org.apache.asterix.app.active.ActiveNotificationHandler getEventListeners
INFO: returning 0 Listeners
Sep 22, 2017 5:28:00 PM org.apache.hyracks.http.server.AbstractServlet 
handle
WARNING: Unhandled throwable
java.lang.ExceptionInInitializerError
     at 
org.apache.asterix.runtime.functions.FunctionManagerHolder.createFunctionManager(FunctionManagerHolder.java:33)
     at 
org.apache.asterix.runtime.functions.FunctionManagerHolder.<clinit>(FunctionManagerHolder.java:25)
     at 
org.apache.asterix.runtime.formats.NonTaggedDataFormat.getFieldAccessEvaluatorFactory(NonTaggedDataFormat.java:176)
     at 
org.apache.asterix.metadata.utils.SecondaryBTreeOperationsHelper.setSecondaryRecDescAndComparators(SecondaryBTreeOperationsHelper.java:216)
     at 
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.init(SecondaryIndexOperationsHelper.java:197)
     at 
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.createIndexOperationsHelper(SecondaryIndexOperationsHelper.java:163)
     at 
org.apache.asterix.metadata.utils.IndexUtil.buildSecondaryIndexCreationJobSpec(IndexUtil.java:119)
     at 
org.apache.asterix.app.translator.QueryTranslator.doCreateIndex(QueryTranslator.java:951)
     at 
org.apache.asterix.app.translator.QueryTranslator.handleCreateIndexStatement(QueryTranslator.java:854)
     at 
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:297)
     at 
org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
     at 
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:78)
     at 
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:70)
     at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:55)
     at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:36)
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
     at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
     at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: 
java.lang.ClassNotFoundException: 
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndexDescriptor$_Gen
     at 
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFunctionDescriptorFactory(FunctionCollection.java:740)
     at 
org.apache.asterix.runtime.functions.FunctionCollection.<clinit>(FunctionCollection.java:715)
     ... 19 more
Caused by: java.lang.ClassNotFoundException: 
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndexDescriptor$_Gen
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
     at 
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFunctionDescriptorFactory(FunctionCollection.java:736)
     ... 20 more

Sep 22, 2017 5:28:00 PM 
org.apache.hyracks.http.server.HttpRequestHandler call
SEVERE: Failure handling HTTP Request
java.lang.ExceptionInInitializerError
     at 
org.apache.asterix.runtime.functions.FunctionManagerHolder.createFunctionManager(FunctionManagerHolder.java:33)
     at 
org.apache.asterix.runtime.functions.FunctionManagerHolder.<clinit>(FunctionManagerHolder.java:25)
     at 
org.apache.asterix.runtime.formats.NonTaggedDataFormat.getFieldAccessEvaluatorFactory(NonTaggedDataFormat.java:176)
     at 
org.apache.asterix.metadata.utils.SecondaryBTreeOperationsHelper.setSecondaryRecDescAndComparators(SecondaryBTreeOperationsHelper.java:216)
     at 
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.init(SecondaryIndexOperationsHelper.java:197)
     at 
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.createIndexOperationsHelper(SecondaryIndexOperationsHelper.java:163)
     at 
org.apache.asterix.metadata.utils.IndexUtil.buildSecondaryIndexCreationJobSpec(IndexUtil.java:119)
     at 
org.apache.asterix.app.translator.QueryTranslator.doCreateIndex(QueryTranslator.java:951)
     at 
org.apache.asterix.app.translator.QueryTranslator.handleCreateIndexStatement(QueryTranslator.java:854)
     at 
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:297)
     at 
org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
     at 
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:78)
     at 
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:70)
     at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:55)
     at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:36)
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
     at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
     at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: 
java.lang.ClassNotFoundException: 
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndexDescriptor$_Gen
     at 
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFunctionDescriptorFactory(FunctionCollection.java:740)
     at 
org.apache.asterix.runtime.functions.FunctionCollection.<clinit>(FunctionCollection.java:715)
     ... 19 more
Caused by: java.lang.ClassNotFoundException: 
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndexDescriptor$_Gen
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
     at 
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFunctionDescriptorFactory(FunctionCollection.java:736)
     ... 20 more


Cleaned and rebuilt several times with no result. Any ideas why I'm 
getting these errors?
(I'm sorry for the long email and if the answer is obvious, but it's not 
a while since I had started working with AsterixDB)

Thank you in advance,
Zacharias Chasparis

-- 
Zacharias (Harry) Chasparis
Graduate PhD Student


From dev-return-5214-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sat Sep 23 00:59:48 2017
Return-Path: <dev-return-5214-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 4338E100D7
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sat, 23 Sep 2017 00:59:48 +0000 (UTC)
Received: (qmail 84057 invoked by uid 500); 23 Sep 2017 00:59:48 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 84004 invoked by uid 500); 23 Sep 2017 00:59:48 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 83992 invoked by uid 99); 23 Sep 2017 00:59:47 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Sep 2017 00:59:47 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 4F50E1A0234
	for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 00:59:47 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.099
X-Spam-Level:
X-Spam-Status: No, score=0.099 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, KAM_NUMSUBJECT=0.5, RCVD_IN_DNSWL_NONE=-0.0001,
	RCVD_IN_MSPIKE_H2=-2.8, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id fR-VyG_X5yKs for <dev@asterixdb.apache.org>;
	Sat, 23 Sep 2017 00:59:44 +0000 (UTC)
Received: from mail-oi0-f48.google.com (mail-oi0-f48.google.com [209.85.218.48])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 44F835FD02
	for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 00:59:43 +0000 (UTC)
Received: by mail-oi0-f48.google.com with SMTP id p126so721430oih.9
        for <dev@asterixdb.apache.org>; Fri, 22 Sep 2017 17:59:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:mime-version:subject:date:references:to:in-reply-to:message-id;
        bh=vccqZ5PKK+BpORdBv99idcwaPzpQ7DfK53K7YUTCekM=;
        b=PTkWLvSlF+cMMsyHzUyh+pvTr5ofrx58ZcEO8LHZyikxiNOTsGWAYflNPm4gFZrMIK
         /ZQDcpI4y/HmcsqqHtsQC5dhwbqSPqmtgyDMvszqBSM3Umrk6OQs/IlG80E+WnsQRiQc
         LoUn4QD69nfjN0mLwbck04cPtv5ewrzSSguVYtOxCxEEl+eVlGxV7is4X1d3d6RYUpG7
         L/dzqF/dLyGwcVIjAPzCFbBnvDiy8fW4TWoDgC1m6VWorKSL8c1zIA3fAHDgR+YxrVhg
         bfR7BGUQuUPOFfqAMa/N5H2mhfs0ZRu8e9h4DjTP+f1mmwSdOS8To7ap1j8U2NvewO+H
         HfQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:subject:date:references:to
         :in-reply-to:message-id;
        bh=vccqZ5PKK+BpORdBv99idcwaPzpQ7DfK53K7YUTCekM=;
        b=EGTFpIy5lCfaJiFUtQKNZvb1VtPdJIpsx+Rn7OM6sW33aNl6V2+bLfYLKsBRrZQ1At
         TShpcZAsRWVBoAdwVjAKmTbTa8LfRE0Qymp/kGGQtwm88EbuOQ4aLsGvTl5UmMwnQUAz
         fuUK/a+bAldMePsgxLKqAt2p6Sa6GSHqqf32kZLZ+hKSbnJBTc9AuN3WSd2KI43lei8F
         8vR2R4M13JrUvjwBPvy/qtt35XOUA+gNtAEavnQJYkKxOf4SYoKQXOBNZNXbw6l27R3Q
         iw5z2AG4QQ2bQ3NEo3B4HWj8W5FbTQiwc6OguVwWKDcb9IDOczt2x9WFAUgkwOBxYeY2
         lKoQ==
X-Gm-Message-State: AHPjjUiHvNOS29qj8+3TRzidKSqCp3zr87IGLsZP3RemI/KPz+U7E8tl
	W4WdIIJpFZXgyH28B4ZN5MfS3YLx
X-Google-Smtp-Source: AOwi7QDDqI5K0iL+2gpEzBkEoapjxJqdYv6MG3uT54na7UVYfuWwMWF1kEY0hAUhK8CAC3U7qy1tpA==
X-Received: by 10.202.172.67 with SMTP id v64mr1087413oie.93.1506128375345;
        Fri, 22 Sep 2017 17:59:35 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:55e0:b308:86c4:3ac0? ([2600:8802:1203:ae00:55e0:b308:86c4:3ac0])
        by smtp.gmail.com with ESMTPSA id q185sm1918622oib.23.2017.09.22.17.59.33
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Fri, 22 Sep 2017 17:59:33 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_6712F02F-A5B1-4496-8ED2-9AF19B32DA97"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Problem after updating to 0.9.3
Date: Fri, 22 Sep 2017 17:59:32 -0700
References: <34145299-0a0f-5f05-163f-f348f22a1f8b@ucr.edu>
To: dev@asterixdb.apache.org
In-Reply-To: <34145299-0a0f-5f05-163f-f348f22a1f8b@ucr.edu>
Message-Id: <1237975E-FFAE-4725-AAF9-1AC95951FD77@gmail.com>
X-Mailer: Apple Mail (2.3273)

--Apple-Mail=_6712F02F-A5B1-4496-8ED2-9AF19B32DA97
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Using commandline, from the root asterixdb dir:

cd asterixdb/asterix-runtime/
mvn clean install -o -DskipTests

Then try again and it should work. This error is due to not having IDE =
integration for the source code generation part of asterixdb.

Let's know if you need further help,
Abdullah.

> On Sep 22, 2017, at 5:49 PM, Zacharias Chasparis <zchas001@ucr.edu> =
wrote:
>=20
> Hi all,
>=20
> I'm a PhD student at UCR advised by Dr Eldawy and I have started =
working on AsterixDB.
> Since I have updated to the last version, I cannot even run the SQL++ =
examples from the Asterix website. More specific, when I'm trying to =
create datasets/indexes, I'm getting the following errors (copy-paste =
from IntelliJ IDE):
>=20
> Sep 22, 2017 5:28:00 PM =
org.apache.asterix.app.active.ActiveNotificationHandler =
getEventListeners
> INFO: getEventListeners() was called
> Sep 22, 2017 5:28:00 PM =
org.apache.asterix.app.active.ActiveNotificationHandler =
getEventListeners
> INFO: returning 0 Listeners
> Sep 22, 2017 5:28:00 PM org.apache.hyracks.http.server.AbstractServlet =
handle
> WARNING: Unhandled throwable
> java.lang.ExceptionInInitializerError
>     at =
org.apache.asterix.runtime.functions.FunctionManagerHolder.createFunctionM=
anager(FunctionManagerHolder.java:33)
>     at =
org.apache.asterix.runtime.functions.FunctionManagerHolder.<clinit>(Functi=
onManagerHolder.java:25)
>     at =
org.apache.asterix.runtime.formats.NonTaggedDataFormat.getFieldAccessEvalu=
atorFactory(NonTaggedDataFormat.java:176)
>     at =
org.apache.asterix.metadata.utils.SecondaryBTreeOperationsHelper.setSecond=
aryRecDescAndComparators(SecondaryBTreeOperationsHelper.java:216)
>     at =
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.init(Seco=
ndaryIndexOperationsHelper.java:197)
>     at =
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.createInd=
exOperationsHelper(SecondaryIndexOperationsHelper.java:163)
>     at =
org.apache.asterix.metadata.utils.IndexUtil.buildSecondaryIndexCreationJob=
Spec(IndexUtil.java:119)
>     at =
org.apache.asterix.app.translator.QueryTranslator.doCreateIndex(QueryTrans=
lator.java:951)
>     at =
org.apache.asterix.app.translator.QueryTranslator.handleCreateIndexStateme=
nt(QueryTranslator.java:854)
>     at =
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryT=
ranslator.java:297)
>     at =
org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
>     at =
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java=
:78)
>     at =
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandle=
r.java:70)
>     at =
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.=
java:55)
>     at =
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.=
java:36)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     at =
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:=
1149)
>     at =
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java=
:624)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalStateException: =
java.lang.ClassNotFoundException: =
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndex=
Descriptor$_Gen
>     at =
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFuncti=
onDescriptorFactory(FunctionCollection.java:740)
>     at =
org.apache.asterix.runtime.functions.FunctionCollection.<clinit>(FunctionC=
ollection.java:715)
>     ... 19 more
> Caused by: java.lang.ClassNotFoundException: =
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndex=
Descriptor$_Gen
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>     at =
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFuncti=
onDescriptorFactory(FunctionCollection.java:736)
>     ... 20 more
>=20
> Sep 22, 2017 5:28:00 PM =
org.apache.hyracks.http.server.HttpRequestHandler call
> SEVERE: Failure handling HTTP Request
> java.lang.ExceptionInInitializerError
>     at =
org.apache.asterix.runtime.functions.FunctionManagerHolder.createFunctionM=
anager(FunctionManagerHolder.java:33)
>     at =
org.apache.asterix.runtime.functions.FunctionManagerHolder.<clinit>(Functi=
onManagerHolder.java:25)
>     at =
org.apache.asterix.runtime.formats.NonTaggedDataFormat.getFieldAccessEvalu=
atorFactory(NonTaggedDataFormat.java:176)
>     at =
org.apache.asterix.metadata.utils.SecondaryBTreeOperationsHelper.setSecond=
aryRecDescAndComparators(SecondaryBTreeOperationsHelper.java:216)
>     at =
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.init(Seco=
ndaryIndexOperationsHelper.java:197)
>     at =
org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.createInd=
exOperationsHelper(SecondaryIndexOperationsHelper.java:163)
>     at =
org.apache.asterix.metadata.utils.IndexUtil.buildSecondaryIndexCreationJob=
Spec(IndexUtil.java:119)
>     at =
org.apache.asterix.app.translator.QueryTranslator.doCreateIndex(QueryTrans=
lator.java:951)
>     at =
org.apache.asterix.app.translator.QueryTranslator.handleCreateIndexStateme=
nt(QueryTranslator.java:854)
>     at =
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryT=
ranslator.java:297)
>     at =
org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
>     at =
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java=
:78)
>     at =
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandle=
r.java:70)
>     at =
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.=
java:55)
>     at =
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.=
java:36)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     at =
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:=
1149)
>     at =
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java=
:624)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalStateException: =
java.lang.ClassNotFoundException: =
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndex=
Descriptor$_Gen
>     at =
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFuncti=
onDescriptorFactory(FunctionCollection.java:740)
>     at =
org.apache.asterix.runtime.functions.FunctionCollection.<clinit>(FunctionC=
ollection.java:715)
>     ... 19 more
> Caused by: java.lang.ClassNotFoundException: =
org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByIndex=
Descriptor$_Gen
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>     at =
org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFuncti=
onDescriptorFactory(FunctionCollection.java:736)
>     ... 20 more
>=20
>=20
> Cleaned and rebuilt several times with no result. Any ideas why I'm =
getting these errors?
> (I'm sorry for the long email and if the answer is obvious, but it's =
not a while since I had started working with AsterixDB)
>=20
> Thank you in advance,
> Zacharias Chasparis
>=20
> --=20
> Zacharias (Harry) Chasparis
> Graduate PhD Student
>=20


--Apple-Mail=_6712F02F-A5B1-4496-8ED2-9AF19B32DA97--

From dev-return-5215-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sat Sep 23 01:12:02 2017
Return-Path: <dev-return-5215-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 5D59710114
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sat, 23 Sep 2017 01:12:02 +0000 (UTC)
Received: (qmail 98236 invoked by uid 500); 23 Sep 2017 01:12:02 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 98173 invoked by uid 500); 23 Sep 2017 01:12:02 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 98160 invoked by uid 99); 23 Sep 2017 01:12:02 -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, 23 Sep 2017 01:12:02 +0000
Received: from [10.17.0.33] (unknown [206.169.106.2])
	by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 898201A012F
	for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 01:12:00 +0000 (UTC)
From: "Till Westmann" <tillw@apache.org>
To: dev@asterixdb.apache.org
Subject: Re: Problem after updating to 0.9.3
Date: Fri, 22 Sep 2017 18:11:59 -0700
Message-ID: <710018FB-CE02-4B9A-BC36-A6B3A9A23CAD@apache.org>
In-Reply-To: <1237975E-FFAE-4725-AAF9-1AC95951FD77@gmail.com>
References: <34145299-0a0f-5f05-163f-f348f22a1f8b@ucr.edu>
 <1237975E-FFAE-4725-AAF9-1AC95951FD77@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Mailer: MailMate (1.9.7r5419)

While we have this step in the instructions [1] before the IDE setup, we =

might want to make is more explicit why it is there and should be done =

before the IDE setup :)

Cheers,
Till

[1] http://asterixdb.apache.org/dev-setup.html

On 22 Sep 2017, at 17:59, abdullah alamoudi wrote:

> Using commandline, from the root asterixdb dir:
>
> cd asterixdb/asterix-runtime/
> mvn clean install -o -DskipTests
>
> Then try again and it should work. This error is due to not having IDE =

> integration for the source code generation part of asterixdb.
>
> Let's know if you need further help,
> Abdullah.
>
>> On Sep 22, 2017, at 5:49 PM, Zacharias Chasparis <zchas001@ucr.edu> =

>> wrote:
>>
>> Hi all,
>>
>> I'm a PhD student at UCR advised by Dr Eldawy and I have started =

>> working on AsterixDB.
>> Since I have updated to the last version, I cannot even run the SQL++ =

>> examples from the Asterix website. More specific, when I'm trying to =

>> create datasets/indexes, I'm getting the following errors (copy-paste =

>> from IntelliJ IDE):
>>
>> Sep 22, 2017 5:28:00 PM =

>> org.apache.asterix.app.active.ActiveNotificationHandler =

>> getEventListeners
>> INFO: getEventListeners() was called
>> Sep 22, 2017 5:28:00 PM =

>> org.apache.asterix.app.active.ActiveNotificationHandler =

>> getEventListeners
>> INFO: returning 0 Listeners
>> Sep 22, 2017 5:28:00 PM =

>> org.apache.hyracks.http.server.AbstractServlet handle
>> WARNING: Unhandled throwable
>> java.lang.ExceptionInInitializerError
>>     at =

>> org.apache.asterix.runtime.functions.FunctionManagerHolder.createFunct=
ionManager(FunctionManagerHolder.java:33)
>>     at =

>> org.apache.asterix.runtime.functions.FunctionManagerHolder.<clinit>(Fu=
nctionManagerHolder.java:25)
>>     at =

>> org.apache.asterix.runtime.formats.NonTaggedDataFormat.getFieldAccessE=
valuatorFactory(NonTaggedDataFormat.java:176)
>>     at =

>> org.apache.asterix.metadata.utils.SecondaryBTreeOperationsHelper.setSe=
condaryRecDescAndComparators(SecondaryBTreeOperationsHelper.java:216)
>>     at =

>> org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.init(=
SecondaryIndexOperationsHelper.java:197)
>>     at =

>> org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.creat=
eIndexOperationsHelper(SecondaryIndexOperationsHelper.java:163)
>>     at =

>> org.apache.asterix.metadata.utils.IndexUtil.buildSecondaryIndexCreatio=
nJobSpec(IndexUtil.java:119)
>>     at =

>> org.apache.asterix.app.translator.QueryTranslator.doCreateIndex(QueryT=
ranslator.java:951)
>>     at =

>> org.apache.asterix.app.translator.QueryTranslator.handleCreateIndexSta=
tement(QueryTranslator.java:854)
>>     at =

>> org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(Qu=
eryTranslator.java:297)
>>     at =

>> org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162=
)
>>     at =

>> org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.=
java:78)
>>     at =

>> org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHa=
ndler.java:70)
>>     at =

>> org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHand=
ler.java:55)
>>     at =

>> org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHand=
ler.java:36)
>>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>     at =

>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j=
ava:1149)
>>     at =

>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.=
java:624)
>>     at java.lang.Thread.run(Thread.java:748)
>> Caused by: java.lang.IllegalStateException: =

>> java.lang.ClassNotFoundException: =

>> org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByI=
ndexDescriptor$_Gen
>>     at =

>> org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFu=
nctionDescriptorFactory(FunctionCollection.java:740)
>>     at =

>> org.apache.asterix.runtime.functions.FunctionCollection.<clinit>(Funct=
ionCollection.java:715)
>>     ... 19 more
>> Caused by: java.lang.ClassNotFoundException: =

>> org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByI=
ndexDescriptor$_Gen
>>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>     at =

>> org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFu=
nctionDescriptorFactory(FunctionCollection.java:736)
>>     ... 20 more
>>
>> Sep 22, 2017 5:28:00 PM =

>> org.apache.hyracks.http.server.HttpRequestHandler call
>> SEVERE: Failure handling HTTP Request
>> java.lang.ExceptionInInitializerError
>>     at =

>> org.apache.asterix.runtime.functions.FunctionManagerHolder.createFunct=
ionManager(FunctionManagerHolder.java:33)
>>     at =

>> org.apache.asterix.runtime.functions.FunctionManagerHolder.<clinit>(Fu=
nctionManagerHolder.java:25)
>>     at =

>> org.apache.asterix.runtime.formats.NonTaggedDataFormat.getFieldAccessE=
valuatorFactory(NonTaggedDataFormat.java:176)
>>     at =

>> org.apache.asterix.metadata.utils.SecondaryBTreeOperationsHelper.setSe=
condaryRecDescAndComparators(SecondaryBTreeOperationsHelper.java:216)
>>     at =

>> org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.init(=
SecondaryIndexOperationsHelper.java:197)
>>     at =

>> org.apache.asterix.metadata.utils.SecondaryIndexOperationsHelper.creat=
eIndexOperationsHelper(SecondaryIndexOperationsHelper.java:163)
>>     at =

>> org.apache.asterix.metadata.utils.IndexUtil.buildSecondaryIndexCreatio=
nJobSpec(IndexUtil.java:119)
>>     at =

>> org.apache.asterix.app.translator.QueryTranslator.doCreateIndex(QueryT=
ranslator.java:951)
>>     at =

>> org.apache.asterix.app.translator.QueryTranslator.handleCreateIndexSta=
tement(QueryTranslator.java:854)
>>     at =

>> org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(Qu=
eryTranslator.java:297)
>>     at =

>> org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162=
)
>>     at =

>> org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.=
java:78)
>>     at =

>> org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHa=
ndler.java:70)
>>     at =

>> org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHand=
ler.java:55)
>>     at =

>> org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHand=
ler.java:36)
>>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>     at =

>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j=
ava:1149)
>>     at =

>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.=
java:624)
>>     at java.lang.Thread.run(Thread.java:748)
>> Caused by: java.lang.IllegalStateException: =

>> java.lang.ClassNotFoundException: =

>> org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByI=
ndexDescriptor$_Gen
>>     at =

>> org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFu=
nctionDescriptorFactory(FunctionCollection.java:740)
>>     at =

>> org.apache.asterix.runtime.functions.FunctionCollection.<clinit>(Funct=
ionCollection.java:715)
>>     ... 19 more
>> Caused by: java.lang.ClassNotFoundException: =

>> org.apache.asterix.runtime.evaluators.functions.records.FieldAccessByI=
ndexDescriptor$_Gen
>>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>     at =

>> org.apache.asterix.runtime.functions.FunctionCollection.getGeneratedFu=
nctionDescriptorFactory(FunctionCollection.java:736)
>>     ... 20 more
>>
>>
>> Cleaned and rebuilt several times with no result. Any ideas why I'm =

>> getting these errors?
>> (I'm sorry for the long email and if the answer is obvious, but it's =

>> not a while since I had started working with AsterixDB)
>>
>> Thank you in advance,
>> Zacharias Chasparis
>>
>> -- =

>> Zacharias (Harry) Chasparis
>> Graduate PhD Student
>>

From dev-return-5216-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep 24 01:25:19 2017
Return-Path: <dev-return-5216-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 3BF8210E37
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun, 24 Sep 2017 01:25:19 +0000 (UTC)
Received: (qmail 63290 invoked by uid 500); 24 Sep 2017 01:25:19 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 63226 invoked by uid 500); 24 Sep 2017 01:25:19 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 63214 invoked by uid 99); 24 Sep 2017 01:25:19 -0000
Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Sep 2017 01:25:19 +0000
Received: from [192.168.1.82] (172-10-235-13.lightspeed.sntcca.sbcglobal.net [172.10.235.13])
	by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 806BA1A012F
	for <dev@asterixdb.apache.org>; Sun, 24 Sep 2017 01:25:18 +0000 (UTC)
From: "Till Westmann" <tillw@apache.org>
To: dev@asterixdb.apache.org
Subject: Missing BAD change
Date: Sat, 23 Sep 2017 18:25:16 -0700
Message-ID: <6D84F738-EF80-4BA9-AEFF-47C21CA11467@apache.org>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
X-Mailer: MailMate (1.9.7r5419)

Hi,

apparently something went wrong with one of the recent BAD changes [1]:
The Gerrit review has been merged, but the change is not in the ASF git 
repository [2] (or the GitHub mirror [3]).
How can we fix this?

Thanks,
Till

[1] https://asterix-gerrit.ics.uci.edu/#/c/2012/
[2] https://git-wip-us.apache.org/repos/asf?p=asterixdb-bad.git
[3] https://github.com/apache/asterixdb-bad/commits/master

From dev-return-5217-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep 24 01:28:20 2017
Return-Path: <dev-return-5217-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 7F4E410E3D
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun, 24 Sep 2017 01:28:20 +0000 (UTC)
Received: (qmail 64098 invoked by uid 500); 24 Sep 2017 01:28:20 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 64040 invoked by uid 500); 24 Sep 2017 01:28:20 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 64026 invoked by uid 99); 24 Sep 2017 01:28:20 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Sep 2017 01:28:20 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 93F781A2D23
	for <dev@asterixdb.apache.org>; Sun, 24 Sep 2017 01:28:19 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.379
X-Spam-Level:
X-Spam-Status: No, score=0.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id ee-HUiNjK0aL for <dev@asterixdb.apache.org>;
	Sun, 24 Sep 2017 01:28:18 +0000 (UTC)
Received: from mail-oi0-f54.google.com (mail-oi0-f54.google.com [209.85.218.54])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 0625B5FB2E
	for <dev@asterixdb.apache.org>; Sun, 24 Sep 2017 01:28:18 +0000 (UTC)
Received: by mail-oi0-f54.google.com with SMTP id b184so2921380oii.13
        for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 18:28:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:content-transfer-encoding:mime-version:subject:date:references
         :to:in-reply-to:message-id;
        bh=WYqfUsMaQEsNl2zZn4A7HDPzrTaFZCYxaM28vRI553c=;
        b=TGlckmPknVwEiLqjH8aWCzBIPB2w8KHQKauaMpY5us8/O4I9HOaHDEJpYP/msAhFPN
         mFdNdHB8Pki0xsczcWq0ANuTd6WTbWFfqNhNh/sxGnnAFt1/TnEVyeOGICtTXO5qzFdm
         L8JNF5vVaVCkND9zSSLlwFqWUawZNCPYPijuc+iIjuCj1voLGSIOW+1o3rEkHR/nMQ27
         i7/e7x/bi/fZF2fXVZZc5DHogb/oCE7ygUPggBYXpOEDSLP9c0WhXOwo6UFEfBc8kCEo
         isYUmqReimQASRt0z759GVmV8jSXTb1sy++7XuVX6bn9ZodZyPv/jVQIBzRdpH8ylgJp
         Leog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:content-transfer-encoding:mime-version
         :subject:date:references:to:in-reply-to:message-id;
        bh=WYqfUsMaQEsNl2zZn4A7HDPzrTaFZCYxaM28vRI553c=;
        b=iVqhTsVcJ2S9EXF0C40Giua4Ka7wwzphVmeYo4vZI8ZmD2Y/75FEZhj8bRULVhgslk
         6SObcc68UMB3R1qMsjNhHi1gWOnrvuUZlY2wJTeakWvRSVe5lY1noZwE5pRlg4u8l+VK
         HwRaUyfR/M/HEpJtZXTnyAyASv1IoFmTTnWiG2GKNxyBSIllhDslFRAhbf0zewSDj1mn
         LMJ+ngyoEm4bfOs5p3tkH1jUoicTTIc6lCwj7+mOYCPvq6+vDW7YCVEShUr5m2k55nLT
         oJXzcNsIl9t2TLOlavg31Ktzm/ALNLC/OIVfG3tG+byao27A2ZEUfYZgdFnF3YsiZysY
         feSw==
X-Gm-Message-State: AHPjjUjBWGAD6JWswsmmXgogR8/ByT51w9DzfCtZNm/SXpOnyZJRI2M4
	Q4Q4qk+e8880czEWE3JtEf0QVIb3
X-Google-Smtp-Source: AOwi7QDDihbi26GIaZK+//ISy1ZTHB0faRK1hoAvdj4cdG7R83ZkZwkSwaH9WNVL6LKTCfnRBuC8qA==
X-Received: by 10.202.79.149 with SMTP id d143mr4079898oib.202.1506216490269;
        Sat, 23 Sep 2017 18:28:10 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:db3:6a3d:da00:cd7d? ([2600:8802:1203:ae00:db3:6a3d:da00:cd7d])
        by smtp.gmail.com with ESMTPSA id x137sm3784233oia.13.2017.09.23.18.28.07
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sat, 23 Sep 2017 18:28:08 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Missing BAD change
Date: Sat, 23 Sep 2017 18:28:07 -0700
References: <6D84F738-EF80-4BA9-AEFF-47C21CA11467@apache.org>
To: dev@asterixdb.apache.org
In-Reply-To: <6D84F738-EF80-4BA9-AEFF-47C21CA11467@apache.org>
Message-Id: <E8CF05A0-0B7B-4A35-80C8-AC5C2D9F52D2@gmail.com>
X-Mailer: Apple Mail (2.3273)

I just fixed it.

As with asterixdb, once a gerrit change has been submitted, we should do =
git asf commit <SHA>.

Cheers,
Abdullah.

> On Sep 23, 2017, at 6:25 PM, Till Westmann <tillw@apache.org> wrote:
>=20
> Hi,
>=20
> apparently something went wrong with one of the recent BAD changes =
[1]:
> The Gerrit review has been merged, but the change is not in the ASF =
git repository [2] (or the GitHub mirror [3]).
> How can we fix this?
>=20
> Thanks,
> Till
>=20
> [1] https://asterix-gerrit.ics.uci.edu/#/c/2012/
> [2] https://git-wip-us.apache.org/repos/asf?p=3Dasterixdb-bad.git
> [3] https://github.com/apache/asterixdb-bad/commits/master


From dev-return-5218-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep 24 01:44:42 2017
Return-Path: <dev-return-5218-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 2170C10E7B
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun, 24 Sep 2017 01:44:42 +0000 (UTC)
Received: (qmail 77652 invoked by uid 500); 24 Sep 2017 01:44:42 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 77594 invoked by uid 500); 24 Sep 2017 01:44:42 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 77579 invoked by uid 99); 24 Sep 2017 01:44:41 -0000
Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Sep 2017 01:44:41 +0000
Received: from [10.191.142.183] (mobile-166-170-43-24.mycingular.net [166.170.43.24])
	by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 6F9121A012F;
	Sun, 24 Sep 2017 01:44:41 +0000 (UTC)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (1.0)
Subject: Re: Missing BAD change
From: Till Westmann <tillw@apache.org>
X-Mailer: iPhone Mail (15A372)
In-Reply-To: <E8CF05A0-0B7B-4A35-80C8-AC5C2D9F52D2@gmail.com>
Date: Sat, 23 Sep 2017 18:44:39 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <592AE72A-9611-4FAA-BA72-3FFF155FF5CD@apache.org>
References: <6D84F738-EF80-4BA9-AEFF-47C21CA11467@apache.org> <E8CF05A0-0B7B-4A35-80C8-AC5C2D9F52D2@gmail.com>
To: dev@asterixdb.apache.org

Ok, but I didn=E2=80=99t see the SHA displayed on the review. Did I miss it o=
r is this configured differently for BAD or ..?

> On Sep 23, 2017, at 18:28, abdullah alamoudi <bamousaa@gmail.com> wrote:
>=20
> I just fixed it.
>=20
> As with asterixdb, once a gerrit change has been submitted, we should do g=
it asf commit <SHA>.
>=20
> Cheers,
> Abdullah.
>=20
>> On Sep 23, 2017, at 6:25 PM, Till Westmann <tillw@apache.org> wrote:
>>=20
>> Hi,
>>=20
>> apparently something went wrong with one of the recent BAD changes [1]:
>> The Gerrit review has been merged, but the change is not in the ASF git r=
epository [2] (or the GitHub mirror [3]).
>> How can we fix this?
>>=20
>> Thanks,
>> Till
>>=20
>> [1] https://asterix-gerrit.ics.uci.edu/#/c/2012/
>> [2] https://git-wip-us.apache.org/repos/asf?p=3Dasterixdb-bad.git
>> [3] https://github.com/apache/asterixdb-bad/commits/master
>=20


From dev-return-5219-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sun Sep 24 01:46:00 2017
Return-Path: <dev-return-5219-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id CE80010E7E
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sun, 24 Sep 2017 01:46:00 +0000 (UTC)
Received: (qmail 78585 invoked by uid 500); 24 Sep 2017 01:46:00 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 78518 invoked by uid 500); 24 Sep 2017 01:46:00 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 78503 invoked by uid 99); 24 Sep 2017 01:46:00 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Sep 2017 01:46:00 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id DB1C4C999F
	for <dev@asterixdb.apache.org>; Sun, 24 Sep 2017 01:45:59 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.379
X-Spam-Level:
X-Spam-Status: No, score=0.379 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001]
	autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id o940mXnzTbCx for <dev@asterixdb.apache.org>;
	Sun, 24 Sep 2017 01:45:59 +0000 (UTC)
Received: from mail-oi0-f41.google.com (mail-oi0-f41.google.com [209.85.218.41])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id E5C7E5F4E5
	for <dev@asterixdb.apache.org>; Sun, 24 Sep 2017 01:45:58 +0000 (UTC)
Received: by mail-oi0-f41.google.com with SMTP id f195so2973694oih.8
        for <dev@asterixdb.apache.org>; Sat, 23 Sep 2017 18:45:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:content-transfer-encoding:mime-version:subject:date:references
         :to:in-reply-to:message-id;
        bh=Hxo3Cz5Eia+9zEYLMIVLsoF6k7Lmg0DNmdIaUizjoyk=;
        b=p1hqVJ3KWdGTfiybPs/3MLdHvfotgRO7fxgPBdC+l40PXYKRWscIjNrMU0XDiNcSKo
         3Emq05d6pOVhEctksIjcs0/N9mvQrUXW3e5I51aGbKQHmkKVLDNhSWYmrKRu78m/dtZY
         gyKAWCooCQJFGHMw+E4nOy1vLMje0dIeh5N3Ljx9qtn289iEIHx4aDUl6WQiHTdPBO6/
         4CbtdBV0WcfWOk9CcfmtF8zZ6JN4adr7bJckykBgeWxpb2jqaBxUvncZUZmc7Z+5IuBi
         LHFCbuo7P3/oEdadPgFygyidOk9YBi2CC5DzYNL9BVsxYfN+KqLCUWmT1ZSLBFy2qRtR
         7yvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:content-transfer-encoding:mime-version
         :subject:date:references:to:in-reply-to:message-id;
        bh=Hxo3Cz5Eia+9zEYLMIVLsoF6k7Lmg0DNmdIaUizjoyk=;
        b=lN3J3aZcE28ZgzTo8onbfSv5puNoZ2vAmyjOdFAQiJC4NHJbTOI2oJqUjwViltKaEN
         peDkIX3GpL46ppO9dOeqGvD/FHSOowMeY46nrp+sPpR2InT+16Zp4AOajhI2P+4+pCuV
         3xj04nwrFgXDIXTLQ/PlFb+hvG41dpa28VPoSQQh5wkqFfDdHXgfw/GLZMB3/nUb+qXV
         ppky2hAE1SmDhpavqv+RbBVGAnWi3vEhFCVGXIIOs1xfZpW5hq/vT0XStI1PuVfuzd4f
         7lW6jDKlEFFZqYVr8HlmvsT+0Jie967uh1cumlgvSchTe4MJwQyPeIrWfJNI4IK8HU7w
         w6EQ==
X-Gm-Message-State: AHPjjUg9Qvj68E5+p1a4LgMnw6WNrhHWTBZMYmmmPgljVpEBmQEccps2
	YVaoMMNz/TLVAlENokPghsNfWOu5
X-Google-Smtp-Source: AOwi7QAJ9LIg2wWiUrz0nX4FLkjGt1mghy4+SlLU1PxKI7kbxCM7cNVoX/yO33yu93z1H/Uh/W0QGQ==
X-Received: by 10.202.97.68 with SMTP id v65mr1656888oib.212.1506217557950;
        Sat, 23 Sep 2017 18:45:57 -0700 (PDT)
Received: from ?IPv6:2600:8802:1203:ae00:db3:6a3d:da00:cd7d? ([2600:8802:1203:ae00:db3:6a3d:da00:cd7d])
        by smtp.gmail.com with ESMTPSA id j194sm1847856oih.22.2017.09.23.18.45.56
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sat, 23 Sep 2017 18:45:56 -0700 (PDT)
From: abdullah alamoudi <bamousaa@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Missing BAD change
Date: Sat, 23 Sep 2017 18:45:54 -0700
References: <6D84F738-EF80-4BA9-AEFF-47C21CA11467@apache.org>
 <E8CF05A0-0B7B-4A35-80C8-AC5C2D9F52D2@gmail.com>
 <592AE72A-9611-4FAA-BA72-3FFF155FF5CD@apache.org>
To: dev@asterixdb.apache.org
In-Reply-To: <592AE72A-9611-4FAA-BA72-3FFF155FF5CD@apache.org>
Message-Id: <35DA2D0E-9330-4FFF-98C6-A767BA557884@gmail.com>
X-Mailer: Apple Mail (2.3273)

That is correct. It is not configured to be posted for BAD. So I just =
copy it from the top of the review.

Cheers,
Abdullah.

> On Sep 23, 2017, at 6:44 PM, Till Westmann <tillw@apache.org> wrote:
>=20
> Ok, but I didn=E2=80=99t see the SHA displayed on the review. Did I =
miss it or is this configured differently for BAD or ..?
>=20
>> On Sep 23, 2017, at 18:28, abdullah alamoudi <bamousaa@gmail.com> =
wrote:
>>=20
>> I just fixed it.
>>=20
>> As with asterixdb, once a gerrit change has been submitted, we should =
do git asf commit <SHA>.
>>=20
>> Cheers,
>> Abdullah.
>>=20
>>> On Sep 23, 2017, at 6:25 PM, Till Westmann <tillw@apache.org> wrote:
>>>=20
>>> Hi,
>>>=20
>>> apparently something went wrong with one of the recent BAD changes =
[1]:
>>> The Gerrit review has been merged, but the change is not in the ASF =
git repository [2] (or the GitHub mirror [3]).
>>> How can we fix this?
>>>=20
>>> Thanks,
>>> Till
>>>=20
>>> [1] https://asterix-gerrit.ics.uci.edu/#/c/2012/
>>> [2] https://git-wip-us.apache.org/repos/asf?p=3Dasterixdb-bad.git
>>> [3] https://github.com/apache/asterixdb-bad/commits/master
>>=20
>=20


From dev-return-5220-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Tue Sep 26 09:44:52 2017
Return-Path: <dev-return-5220-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id DFF2510938
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Tue, 26 Sep 2017 09:44:51 +0000 (UTC)
Received: (qmail 38885 invoked by uid 500); 26 Sep 2017 09:44:51 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 38828 invoked by uid 500); 26 Sep 2017 09:44:51 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 38817 invoked by uid 99); 26 Sep 2017 09:44:51 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Sep 2017 09:44:51 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 16D601A17C9
	for <dev@asterixdb.apache.org>; Tue, 26 Sep 2017 09:44:51 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.999
X-Spam-Level: *
X-Spam-Status: No, score=1.999 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id rhHaK9N8Lptm for <dev@asterixdb.apache.org>;
	Tue, 26 Sep 2017 09:44:50 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 9E4E25F4A9
	for <dev@asterixdb.apache.org>; Tue, 26 Sep 2017 09:44:50 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 51357240735;
	Tue, 26 Sep 2017 02:44:02 -0700 (PDT)
Date: Tue, 26 Sep 2017 02:44:02 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, dmitry.lychagin@couchbase.com, 
	mblow@apache.org, mhubail@apache.org, tillw@apache.org, 
	xkkwww@gmail.com
Message-ID: <1735211819.25.1506419042212.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests 62cdcc25
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/877/changes>


From dev-return-5221-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Wed Sep 27 08:15:25 2017
Return-Path: <dev-return-5221-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id B17FEF327
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Wed, 27 Sep 2017 08:15:25 +0000 (UTC)
Received: (qmail 94004 invoked by uid 500); 27 Sep 2017 08:15:25 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 93956 invoked by uid 500); 27 Sep 2017 08:15:25 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 93944 invoked by uid 99); 27 Sep 2017 08:15:25 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 27 Sep 2017 08:15:25 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id BE4D3CAD54
	for <dev@asterixdb.apache.org>; Wed, 27 Sep 2017 08:15:24 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.499
X-Spam-Level: *
X-Spam-Status: No, score=1.499 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id R6hrV71oZOQ1 for <dev@asterixdb.apache.org>;
	Wed, 27 Sep 2017 08:15:24 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 7186861B21
	for <dev@asterixdb.apache.org>; Wed, 27 Sep 2017 08:12:59 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 84E88240E5F;
	Wed, 27 Sep 2017 01:12:14 -0700 (PDT)
Date: Wed, 27 Sep 2017 01:12:14 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, dmitry.lychagin@couchbase.com, 
	mblow@apache.org, mhubail@apache.org, tillw@apache.org, 
	xkkwww@gmail.com
Message-ID: <1056175601.26.1506499934502.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests 2c13bdcc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/879/changes>


From dev-return-5222-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep 28 03:43:32 2017
Return-Path: <dev-return-5222-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 811B910F41
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu, 28 Sep 2017 03:43:32 +0000 (UTC)
Received: (qmail 74058 invoked by uid 500); 28 Sep 2017 03:43:32 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 74001 invoked by uid 500); 28 Sep 2017 03:43:32 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 73989 invoked by uid 99); 28 Sep 2017 03:43:31 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Sep 2017 03:43:31 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 4BBEA1A5012
	for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 03:43:31 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.48
X-Spam-Level: **
X-Spam-Status: No, score=2.48 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5] autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=uci-edu.20150623.gappssmtp.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id kv-aHM34stl1 for <dev@asterixdb.apache.org>;
	Thu, 28 Sep 2017 03:43:30 +0000 (UTC)
Received: from mail-it0-f44.google.com (mail-it0-f44.google.com [209.85.214.44])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 92E305F1D5
	for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 03:43:29 +0000 (UTC)
Received: by mail-it0-f44.google.com with SMTP id y138so725958itc.5
        for <dev@asterixdb.apache.org>; Wed, 27 Sep 2017 20:43:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=uci-edu.20150623.gappssmtp.com; s=20150623;
        h=mime-version:from:date:message-id:subject:to;
        bh=7W76VrAH2ViXqm4kADpkKessWYck/0NxG8GC7yZkfyw=;
        b=a6Q+jqJC2j1BQhGjv6YcQvXKmljCd8Si3NjrRLp4zvD/dyVPE7n3kTXCLgRuE183Mx
         Lv7HolhRIvHwTR7LP28SvD/dvzvalvAzLQtSbizibmh8H/B1e3ccnglgBCatD822sa6W
         mKAuC3TUxTETzB1hgj8KnEViP1N8J5wLLM1Whbax9rTZ7DMYhmIjmHxfNhG/+12W9bog
         NDRQVg2sxJyHoRpONDsm3cZPAUGEgzpWAPc+IE6ZLN2h7hWZX3yKoBR7L1BFKmWWuIqS
         3mkzhgyOuzkIrHzf+gKtzqc5j0p0kcCycG3/LUWaUngHBhGLyevVjAVTXEkQ/rbXNKJC
         VfSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=7W76VrAH2ViXqm4kADpkKessWYck/0NxG8GC7yZkfyw=;
        b=UrchJk9YXHNd/HTzaKRWI6mlPAZELYU+eAuwC7zwYOnYWmZkY69LSbBISZEM85W8wb
         /rwsd3QUkmlLwzNrkbKRdy13nEs5lY3n4ciVMSooPzquvOVTf4hLdKx5XbUMMy9XxBOl
         KiWbTl/QHTvaa8FE4ZOqcfwmqh1hMIlLPAe4wedzrNtr2eJRk9mlAwGQUlayHeHhBH6w
         8Qy0VJrZGHAkYICRD81VHNjv4ggwfnvwfN8VNk9BQ858RIbTsDJPSmzepuj/XczlHuZ3
         ja6osXuqkUI4fewzQHIXiU5iOy9Adg/CsTVFubc0Q5GCFAMALQ6RwaZZEYXyGYu7VQA3
         h6qA==
X-Gm-Message-State: AHPjjUiLEk1jTN5Dk3DK3tLrx8nlxUFnXTq3LGLyoSG5bCzp3pHHQYuB
	BVA8RA0F42pdhN7C/z9SPwJJdAhhWhXZPSCxM1h2QA==
X-Google-Smtp-Source: AOwi7QDe0NDKEpLwEN8d2hHEUYt2W3BMymulc6tC2eU2dSz6WrOQdEt8SOtqQAbGypCfjofMUrjvvS8l+k9e+u+2K40=
X-Received: by 10.36.57.70 with SMTP id l67mr4222500ita.56.1506570208096; Wed,
 27 Sep 2017 20:43:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.92.65 with HTTP; Wed, 27 Sep 2017 20:43:27 -0700 (PDT)
From: Chen Luo <cluo8@uci.edu>
Date: Wed, 27 Sep 2017 20:43:27 -0700
Message-ID: <CAEGOuq0QFZRtBWnR9dm-J00a7W1GF2VikuF=wC3hJaXFReFoWA@mail.gmail.com>
Subject: Question about AsterixDB Functions
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a114a9c6615563d055a37b6f1"

--001a114a9c6615563d055a37b6f1
Content-Type: text/plain; charset="UTF-8"

Hi Devs,

Recently I was facing a problem with the IntersectOperator. Previously
we've used the IntersectOperator to intersects primary keys returned from
searching multiple secondary indexes, and use them to perform primary key
lookups. However, with component Id-based acceleration, each primary key
returned from a secondary index would carry a component Id (which is two
numbers). Thus, inside the IntersectOperator, we only intersect the primary
keys, while need to select a proper component Id based on these inputs. For
example, for 3 input tuples (a, [1, 3]), (a, [0, 2]) and (a, [2, 2]), where
'a' is the primary key and the interval is the component Id, we may return
(a, [2, 2]) as the output of the intersection.

Thus, my question is that *is there any function interface inside AsterixDB
which takes a list of input tuples and produce a tuple as a result*? With
this functionality, we can devise strategies to select the best component
Id for each primary key. Any help is appreciated!

Best regards,
Chen Luo

--001a114a9c6615563d055a37b6f1--

From dev-return-5223-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep 28 06:15:38 2017
Return-Path: <dev-return-5223-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 7C1781085D
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu, 28 Sep 2017 06:15:38 +0000 (UTC)
Received: (qmail 61602 invoked by uid 500); 28 Sep 2017 06:15:38 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 61536 invoked by uid 500); 28 Sep 2017 06:15:38 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 61519 invoked by uid 99); 28 Sep 2017 06:15:37 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Sep 2017 06:15:37 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 7CA6C1A188F
	for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 06:15:37 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.299
X-Spam-Level:
X-Spam-Status: No, score=-0.299 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	RCVD_IN_SORBS_SPAM=0.5, URIBL_BLOCKED=0.001] autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=uci-edu.20150623.gappssmtp.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id DTnuIgmIWDKU for <dev@asterixdb.apache.org>;
	Thu, 28 Sep 2017 06:15:35 +0000 (UTC)
Received: from mail-io0-f171.google.com (mail-io0-f171.google.com [209.85.223.171])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id A369D5F1D5
	for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 06:15:34 +0000 (UTC)
Received: by mail-io0-f171.google.com with SMTP id z187so652963ioz.12
        for <dev@asterixdb.apache.org>; Wed, 27 Sep 2017 23:15:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=uci-edu.20150623.gappssmtp.com; s=20150623;
        h=mime-version:in-reply-to:references:from:date:message-id:subject:to;
        bh=rNpfZsKqa5gfjeupqY41ZiQg56X2Xe0LA7Eqqymkr+A=;
        b=HerPHPSNd0dr+Whzhf0oBiExN/+i4wWF4yirXQAq4jFzAiB9gZ55dB9h+mu81wsoGz
         M5moCV5yXS1ff3Vy3NKMpst6Lekz2gNSnf8mBefoqVXh85ZXcfvZkBeGi5iHr1fy32wx
         XydUSsW08z9wpb/92WN0uaPbMGtCklgoJ0rwaw4FZCCOt8zPd1t+FCTomt8xZQGzrhz6
         TDpPUeMhn/7lO0ATihyCpHEs69eCokaK+FzYcQ+Kz7bLynr3npIuIqHjz8yDVBkt/qkx
         rgZbWIVK8fjTy6CWDdE8jNuTkhAkMQ97ku0bNl5mlYXFIOSpyv4A6HatOPl/ykW6IPtw
         jGnA==
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;
        bh=rNpfZsKqa5gfjeupqY41ZiQg56X2Xe0LA7Eqqymkr+A=;
        b=fmx35wpS9fkBvcFizsHvW6x0Y59n8ff0CAyQ3KJoja1u8Q4B5BsLCgAo7E1+e0rqyi
         W8jJeqnDuJxyD1cP2fOCzwBNygLYBoS9FcaMSWoZjE6l/kFXln7dTcumuLtmHYc1I3Qa
         9KG7RPRJT49S2MLsS1MA11gqNYDF1FhqKUCE95Thttil3t7qpXFYoBNeAktpDqxgrppu
         lzWscDwIyhIONffm2647tsQXQViq65cbsztxRGdzprJVVlSnz4n/+8RKU70P08Hz0WG8
         +yX510QFuneRd6Re/I/QMx+R/voP5y+RsU21no5geiJA6Q7lfpXz5wSYsBWU/ehoWpjM
         ideA==
X-Gm-Message-State: AMCzsaU88uywQ676FP014NXF0FJlmHce3z9CvWfWXh2lIRee44GEJdq1
	e7zw0BtUD1M0ZycHzkNpgV+rmdLZIYioOlR9DkicGw==
X-Google-Smtp-Source: AOwi7QAhQ9rSc8Ml3z1NAzpcI3Veeym1o0mBIdZaGruja82JhSYI++VjHoKetRVDWowfri9C7TZF05nLpOvtIY2hEyY=
X-Received: by 10.107.135.147 with SMTP id r19mr5984793ioi.26.1506579333102;
 Wed, 27 Sep 2017 23:15:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.92.65 with HTTP; Wed, 27 Sep 2017 23:15:32 -0700 (PDT)
In-Reply-To: <CAEGOuq0QFZRtBWnR9dm-J00a7W1GF2VikuF=wC3hJaXFReFoWA@mail.gmail.com>
References: <CAEGOuq0QFZRtBWnR9dm-J00a7W1GF2VikuF=wC3hJaXFReFoWA@mail.gmail.com>
From: Chen Luo <cluo8@uci.edu>
Date: Wed, 27 Sep 2017 23:15:32 -0700
Message-ID: <CAEGOuq3iTPqLb9QNngh_0d5hp7ui-MOA7jc5ncOS5SB1J-AJVw@mail.gmail.com>
Subject: Re: Question about AsterixDB Functions
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a113ec75af9ffc0055a39d572"

--001a113ec75af9ffc0055a39d572
Content-Type: text/plain; charset="UTF-8"

NVM, I think I can implement a customized aggregate function for this
purpose (though it's semantics is slightly different from traditional SQL
aggregate functions which only produce one result value). Please correct me
if my understanding is wrong...

On Wed, Sep 27, 2017 at 8:43 PM, Chen Luo <cluo8@uci.edu> wrote:

> Hi Devs,
>
> Recently I was facing a problem with the IntersectOperator. Previously
> we've used the IntersectOperator to intersects primary keys returned from
> searching multiple secondary indexes, and use them to perform primary key
> lookups. However, with component Id-based acceleration, each primary key
> returned from a secondary index would carry a component Id (which is two
> numbers). Thus, inside the IntersectOperator, we only intersect the primary
> keys, while need to select a proper component Id based on these inputs. For
> example, for 3 input tuples (a, [1, 3]), (a, [0, 2]) and (a, [2, 2]), where
> 'a' is the primary key and the interval is the component Id, we may return
> (a, [2, 2]) as the output of the intersection.
>
> Thus, my question is that *is there any function interface inside
> AsterixDB which takes a list of input tuples and produce a tuple as a
> result*? With this functionality, we can devise strategies to select the
> best component Id for each primary key. Any help is appreciated!
>
> Best regards,
> Chen Luo
>

--001a113ec75af9ffc0055a39d572--

From dev-return-5224-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Thu Sep 28 21:26:44 2017
Return-Path: <dev-return-5224-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id BB9B110F0A
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Thu, 28 Sep 2017 21:26:44 +0000 (UTC)
Received: (qmail 55596 invoked by uid 500); 28 Sep 2017 21:26:44 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 55536 invoked by uid 500); 28 Sep 2017 21:26:44 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 55521 invoked by uid 99); 28 Sep 2017 21:26:43 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Sep 2017 21:26:43 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 0CB6D1A2B47
	for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 21:26:43 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.198
X-Spam-Level:
X-Spam-Status: No, score=0.198 tagged_above=-999 required=6.31
	tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5,
	RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id wdeeSj3hKeBj for <dev@asterixdb.apache.org>;
	Thu, 28 Sep 2017 21:26:40 +0000 (UTC)
Received: from mx1.ucr.edu (mx1.ucr.edu [138.23.248.2])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 9E6DA5FAEA
	for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 21:26:39 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2C+AQApaM1Zf8jcVdFdgx+BUW4ug3GBNphJPAkGgSeCeQGIS4IxiDmCEgEJiVsHPxgBAgEBAQEBAQETAQEJCwsIJjGFQm8NLQoCJBIBBQE9DIoQDYkrjVaDRUCMC4IniBABB4NeEoMZggKBCYpIgymCYAWBLQEBAZEcjlIIAQGBYA2Sc5MGlTkUBR+BFR+BRjIhJ3YGVoNUDIJnIIk6AQEB
X-IPAS-Result: A2C+AQApaM1Zf8jcVdFdgx+BUW4ug3GBNphJPAkGgSeCeQGIS4IxiDmCEgEJiVsHPxgBAgEBAQEBAQETAQEJCwsIJjGFQm8NLQoCJBIBBQE9DIoQDYkrjVaDRUCMC4IniBABB4NeEoMZggKBCYpIgymCYAWBLQEBAZEcjlIIAQGBYA2Sc5MGlTkUBR+BFR+BRjIhJ3YGVoNUDIJnIIk6AQEB
X-IronPort-AV: E=Sophos;i="5.42,451,1500966000"; 
   d="scan'208,217";a="817250535"
Received: from mail-qk0-f200.google.com ([209.85.220.200])
  by smtp1.ucr.edu with ESMTP/TLS/AES128-SHA; 28 Sep 2017 14:26:32 -0700
Received: by mail-qk0-f200.google.com with SMTP id r141so2662047qke.7
        for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 14:26:32 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=i45dE+6Qplp5Butp4x393SZOf7KI11Lj3WJDqunsFSc=;
        b=fTT1vqwtbYYGrkHcw8GsSmNWNtDPPd2N0Z1naDt+KRKAROZP7QUhEuEgOeHm3PcIWL
         kENYVSjSN3LNAGjK0K97Nsykxz5vKSCXFvqcxEtxtH/eseZhEcCjxFCTgui0+0nZAqJl
         FAujGuJpaAGlHaHA1ZAsjLTkAVeQ11yOh8APweN3OdwEjjZZ69ir296kxo5YhLgdIMvt
         py/qTSxE2cKjRRa+J68qUn1wiMX4hHaFd3n3gikep8HQDfpUAbfYzUY+yIurPIV8A/WU
         59Ph7GuYe1Oim2WqMFKSYTcUsQ/0n8kWa4zLt8n98b9fi9dQYcwO0g6KI69OkdtP01Fo
         ORfw==
X-Gm-Message-State: AMCzsaUxwhG6h7oqO6zNiqLUhixa+kYRKEfDQBkFHka+qrVlraQlGF2X
	iNEMm8QU8U+f+0BkMxxy94lbWH8kyQvE58jtYxyUQmiPcPjBiMpog22BZIsdLpUf1ff90368azw
	2wOZTeIteGQn0pooyqCVNYJQgRTs3CVTiHRqG
X-Received: by 10.55.191.129 with SMTP id p123mr470172qkf.47.1506633988767;
        Thu, 28 Sep 2017 14:26:28 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QBiWVPVelQXAYGG/9/chXKLRjkJs2B3Z5TSnlX8Ra24idvtglp6k6nDeG12PnOiAaxDMerniPr06bzUJfzlAh4=
X-Received: by 10.55.191.129 with SMTP id p123mr469864qkf.47.1506633983453;
 Thu, 28 Sep 2017 14:26:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.200.58.225 with HTTP; Thu, 28 Sep 2017 14:26:22 -0700 (PDT)
From: Steven Jacobs <sjaco002@ucr.edu>
Date: Thu, 28 Sep 2017 14:26:22 -0700
Message-ID: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
Subject: Strange error trying to run Asterix master
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="94eb2c043700640c45055a468f29"

--94eb2c043700640c45055a468f29
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,
I've been stuck for some time now trying to get master Asterix to debug
correctly for me in Eclipse on my machine. It seems to deal with the class
generation being done by maven, but that's as far as I can see so far. No
one I've talked to has a similar issue, so I was wondering if anyone from
the community at large has had such an issue. It manifests itself when
tying to create the evaluator for a function. The stack trace is attached
below. If anyone has seen such an issue, I would love to get any advice you
may have.


java.lang.VerifyError: Bad return type

Exception Details:

  Location:


org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescript=
or$_EvaluatorFactoryGen.access$0(Lorg/apache/asterix/runtime/evaluators/fun=
ctions/records/RecordMergeDescriptor$_EvaluatorFactoryGen;)Lorg/apache/aste=
rix/runtime/evaluators/functions/records/RecordMergeDescriptor;
@4: areturn

  Reason:

    Type
'org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescrip=
tor$_Gen'
(current frame, stack[0]) is not assignable to
'org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescrip=
tor'
(from method signature)

  Current Frame:

    bci: @4

    flags: { }

    locals: {
'org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescrip=
tor$_EvaluatorFactoryGen'
}

    stack: {
'org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescrip=
tor$_Gen'
}

  Bytecode:

    0x0000000: 2ab4 0063 b0


at
org.apache.asterix.runtime.evaluators.functions.records.RecordMergeDescript=
or$_Gen.createEvaluatorFactory(
RecordMergeDescriptor.java:86)

at
org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.createScalarFunction=
EvaluatorFactory(
QueryLogicalExpressionJobGen.java:144)

at
org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.createEvaluatorFacto=
ry(
QueryLogicalExpressionJobGen.java:109)

at org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.codegenArguments(
QueryLogicalExpressionJobGen.java:161)

at
org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.createScalarFunction=
EvaluatorFactory(
QueryLogicalExpressionJobGen.java:134)

at
org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.createEvaluatorFacto=
ry(
QueryLogicalExpressionJobGen.java:109)

at
org.apache.hyracks.algebricks.core.algebra.expressions.ExpressionRuntimePro=
vider.createEvaluatorFactory(
ExpressionRuntimeProvider.java:41)

at
org.apache.hyracks.algebricks.core.algebra.operators.physical.AssignPOperat=
or.contributeRuntimeOperator(
AssignPOperator.java:84)

at
org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogica=
lOperator.contributeRuntimeOperator(
AbstractLogicalOperator.java:166)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:97)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compileOpRef=
(
PlanCompiler.java:84)

at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.compilePlan(
PlanCompiler.java:60)

at
org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$=
1$1.createJob(
HeuristicCompilerFactoryBuilder.java:107)

at org.apache.asterix.api.common.APIFramework.compileQuery(
APIFramework.java:333)

at
org.apache.asterix.app.translator.QueryTranslator.rewriteCompileInsertUpser=
t(
QueryTranslator.java:1864)

at org.apache.asterix.app.translator.QueryTranslator.lambda$0(
QueryTranslator.java:1752)

at
org.apache.asterix.app.translator.QueryTranslator.handleInsertUpsertStateme=
nt(
QueryTranslator.java:1778)

at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(
QueryTranslator.java:336)

at org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)

at org.apache.hyracks.http.server.AbstractServlet.handle(
AbstractServlet.java:78)

at org.apache.hyracks.http.server.HttpRequestHandler.handle(
HttpRequestHandler.java:70)

at org.apache.hyracks.http.server.HttpRequestHandler.call(
HttpRequestHandler.java:55)

at org.apache.hyracks.http.server.HttpRequestHandler.call(
HttpRequestHandler.java:36)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

--94eb2c043700640c45055a468f29--

From dev-return-5225-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 03:19:59 2017
Return-Path: <dev-return-5225-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id B089A10ECF
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 03:19:57 +0000 (UTC)
Received: (qmail 38420 invoked by uid 500); 29 Sep 2017 03:19:57 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 38358 invoked by uid 500); 29 Sep 2017 03:19:57 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 38345 invoked by uid 99); 29 Sep 2017 03:19:57 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 03:19:57 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 99B89C1BBE
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 03:19:56 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: -0.401
X-Spam-Level:
X-Spam-Status: No, score=-0.401 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8,
	RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id 8aG2aTXA5lto for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 03:19:55 +0000 (UTC)
Received: from mail-oi0-f44.google.com (mail-oi0-f44.google.com [209.85.218.44])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 4CC825FB2E
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 03:19:54 +0000 (UTC)
Received: by mail-oi0-f44.google.com with SMTP id p187so125872oif.4
        for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 20:19:54 -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;
        bh=FTakEWOgDXQi3KFYWR1g5em9+BSfxOWLNmPYA9Ghu7c=;
        b=CzLIQhM2dLVYxPI04nsy+BQMx5KugbeHn205LIzjSY5qscTk9h2paZ3PymECJHC2Gy
         KmL2GQSDzhY/Ljzd4pPtJtT3KRQGCxD7CtxxMFoA8lYp9Qmc8IoYPEt99e1cGpJgUlmR
         OQkPkoO9dce1cgqWGbYwTB2+X00py56CDFCumDJ0/ZcEr5/z1g3GzSB25c6Pwtc//ljB
         twCQ8yLJ3GW1l3OFBgkcKkTHMDfzKn/YQrsn+HFKMGEGkwyAmIQpZ9OBgUa4RbesWvGA
         jlMNNg4eSWN+QQUSKQ3911bUtsTAqQeVJColaVbATl7jz1idqaFFw4dRJVcs6WsypeOy
         cXhQ==
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;
        bh=FTakEWOgDXQi3KFYWR1g5em9+BSfxOWLNmPYA9Ghu7c=;
        b=VuHVPlVnAwa9D/f1hwosevIinkdEj+LTyq9KylpuGXVuUncUxepAaayFsj0wSNN5a+
         pZBfSc/JpYiCHQAQtV/I9mglfXTyPEZ2T+fWu1kmzYAvgpJTokVkhj+mL9IwY28D2R2t
         c9/RFe/sOSYR+5c4BYmbFg6Xm6XxLsH5hk9K9Lnbvn8KWpp2UoDad0yqHaJzJsgFdWxp
         cEXRTdS1/dgYkjIeiJLlfX29nIGopwfr1vpenzunS3SG8DA18rygveX/bfe1njlzAgQs
         hL10Uyw0P+BfeJlI62MQe0HBbfXrApKluO6HiOpgLPKK2BLFzYxK1eID/9gnyrgXiEGP
         h//g==
X-Gm-Message-State: AMCzsaVoB/1tuoTeIif9J66SsRNn75heFXN9bhz2HTkQFFyo6js4xfsF
	b3IHgThAsap1e6X26RmfVzqNHWI4rHabWuJrgAw=
X-Google-Smtp-Source: AOwi7QAO42p9QNE0hGHwpQUUKxjF3WHaioj/DiiC5aGQOrQxjuGT4UovlwvjaPCCTnxVUVwJeogpMseCAPm5xkvC67g=
X-Received: by 10.202.81.66 with SMTP id f63mr1523670oib.440.1506655192407;
 Thu, 28 Sep 2017 20:19:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.157.73.146 with HTTP; Thu, 28 Sep 2017 20:19:51 -0700 (PDT)
In-Reply-To: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
References: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
From: Wail Alkowaileet <wael.y.k@gmail.com>
Date: Thu, 28 Sep 2017 20:19:51 -0700
Message-ID: <CALgBV_cpqDwtSH6A4L9v5kE2g_E-+3zGTjD+qK1orm0nPZ1iUQ@mail.gmail.com>
Subject: Re: Strange error trying to run Asterix master
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a113d822c8aec0c055a4b7ffc"

--001a113d822c8aec0c055a4b7ffc
Content-Type: text/plain; charset="UTF-8"

I got the same issue before. I did "clean project" and the issue seems to
be resolved.

On Thu, Sep 28, 2017 at 2:26 PM, Steven Jacobs <sjaco002@ucr.edu> wrote:

> Hi all,
> I've been stuck for some time now trying to get master Asterix to debug
> correctly for me in Eclipse on my machine. It seems to deal with the class
> generation being done by maven, but that's as far as I can see so far. No
> one I've talked to has a similar issue, so I was wondering if anyone from
> the community at large has had such an issue. It manifests itself when
> tying to create the evaluator for a function. The stack trace is attached
> below. If anyone has seen such an issue, I would love to get any advice you
> may have.
>
>
> java.lang.VerifyError: Bad return type
>
> Exception Details:
>
>   Location:
>
>
> org/apache/asterix/runtime/evaluators/functions/records/
> RecordMergeDescriptor$_EvaluatorFactoryGen.access$0(
> Lorg/apache/asterix/runtime/evaluators/functions/records/
> RecordMergeDescriptor$_EvaluatorFactoryGen;)Lorg/apache/asterix/runtime/
> evaluators/functions/records/RecordMergeDescriptor;
> @4: areturn
>
>   Reason:
>
>     Type
> 'org/apache/asterix/runtime/evaluators/functions/records/
> RecordMergeDescriptor$_Gen'
> (current frame, stack[0]) is not assignable to
> 'org/apache/asterix/runtime/evaluators/functions/records/
> RecordMergeDescriptor'
> (from method signature)
>
>   Current Frame:
>
>     bci: @4
>
>     flags: { }
>
>     locals: {
> 'org/apache/asterix/runtime/evaluators/functions/records/
> RecordMergeDescriptor$_EvaluatorFactoryGen'
> }
>
>     stack: {
> 'org/apache/asterix/runtime/evaluators/functions/records/
> RecordMergeDescriptor$_Gen'
> }
>
>   Bytecode:
>
>     0x0000000: 2ab4 0063 b0
>
>
> at
> org.apache.asterix.runtime.evaluators.functions.records.
> RecordMergeDescriptor$_Gen.createEvaluatorFactory(
> RecordMergeDescriptor.java:86)
>
> at
> org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> createScalarFunctionEvaluatorFactory(
> QueryLogicalExpressionJobGen.java:144)
>
> at
> org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> createEvaluatorFactory(
> QueryLogicalExpressionJobGen.java:109)
>
> at org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> codegenArguments(
> QueryLogicalExpressionJobGen.java:161)
>
> at
> org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> createScalarFunctionEvaluatorFactory(
> QueryLogicalExpressionJobGen.java:134)
>
> at
> org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> createEvaluatorFactory(
> QueryLogicalExpressionJobGen.java:109)
>
> at
> org.apache.hyracks.algebricks.core.algebra.expressions.
> ExpressionRuntimeProvider.createEvaluatorFactory(
> ExpressionRuntimeProvider.java:41)
>
> at
> org.apache.hyracks.algebricks.core.algebra.operators.
> physical.AssignPOperator.contributeRuntimeOperator(
> AssignPOperator.java:84)
>
> at
> org.apache.hyracks.algebricks.core.algebra.operators.logical.
> AbstractLogicalOperator.contributeRuntimeOperator(
> AbstractLogicalOperator.java:166)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:97)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compileOpRef(
> PlanCompiler.java:84)
>
> at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> compilePlan(
> PlanCompiler.java:60)
>
> at
> org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilde
> r$1$1.createJob(
> HeuristicCompilerFactoryBuilder.java:107)
>
> at org.apache.asterix.api.common.APIFramework.compileQuery(
> APIFramework.java:333)
>
> at
> org.apache.asterix.app.translator.QueryTranslator.
> rewriteCompileInsertUpsert(
> QueryTranslator.java:1864)
>
> at org.apache.asterix.app.translator.QueryTranslator.lambda$0(
> QueryTranslator.java:1752)
>
> at
> org.apache.asterix.app.translator.QueryTranslator.
> handleInsertUpsertStatement(
> QueryTranslator.java:1778)
>
> at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(
> QueryTranslator.java:336)
>
> at org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
>
> at org.apache.hyracks.http.server.AbstractServlet.handle(
> AbstractServlet.java:78)
>
> at org.apache.hyracks.http.server.HttpRequestHandler.handle(
> HttpRequestHandler.java:70)
>
> at org.apache.hyracks.http.server.HttpRequestHandler.call(
> HttpRequestHandler.java:55)
>
> at org.apache.hyracks.http.server.HttpRequestHandler.call(
> HttpRequestHandler.java:36)
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>
> at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
>
> at java.lang.Thread.run(Thread.java:745)
>



-- 

*Regards,*
Wail Alkowaileet

--001a113d822c8aec0c055a4b7ffc--

From dev-return-5226-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 04:37:58 2017
Return-Path: <dev-return-5226-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 98294C17F
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 04:37:58 +0000 (UTC)
Received: (qmail 49348 invoked by uid 500); 29 Sep 2017 04:37:58 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 49290 invoked by uid 500); 29 Sep 2017 04:37:58 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 49279 invoked by uid 99); 29 Sep 2017 04:37:58 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 04:37:58 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 9486DCE453
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 04:37:56 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.198
X-Spam-Level:
X-Spam-Status: No, score=0.198 tagged_above=-999 required=6.31
	tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5,
	RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id aCKt93rgSeqr for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 04:37:55 +0000 (UTC)
Received: from mx1.ucr.edu (mx1.ucr.edu [138.23.248.2])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 617205F29A
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 04:37:54 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2AqAQDJzM1Zf8bYVdFdHQEFAQsBhEBuJ4N4gTaIaY9gPAYBAQEGgScEiEKFMIJ7hT6CEgEJhTsChCU/GAECAQEBAQEBARMBAQkLCwgmMYUYAQEBAQIBI1sLCwsFCB0NAgIhARIBBQEcGQgMigUDCAUIml1AjAuCJ4c8DUUBB4M4JhKDGYICgQmFWoJeghCDKYJgBYEtAQEBnz8yCAEBgWCOCYR5kweMbYhNFCSBFR+BRjIhJ3YGVoQkHIFnQDYBiDoBAQE
X-IPAS-Result: A2AqAQDJzM1Zf8bYVdFdHQEFAQsBhEBuJ4N4gTaIaY9gPAYBAQEGgScEiEKFMIJ7hT6CEgEJhTsChCU/GAECAQEBAQEBARMBAQkLCwgmMYUYAQEBAQIBI1sLCwsFCB0NAgIhARIBBQEcGQgMigUDCAUIml1AjAuCJ4c8DUUBB4M4JhKDGYICgQmFWoJeghCDKYJgBYEtAQEBnz8yCAEBgWCOCYR5kweMbYhNFCSBFR+BRjIhJ3YGVoQkHIFnQDYBiDoBAQE
X-IronPort-AV: E=Sophos;i="5.42,451,1500966000"; 
   d="scan'208,217";a="817413704"
Received: from mail-qt0-f198.google.com ([209.85.216.198])
  by smtp1.ucr.edu with ESMTP/TLS/AES128-SHA; 28 Sep 2017 21:37:46 -0700
Received: by mail-qt0-f198.google.com with SMTP id l25so68098qtf.7
        for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 21:37:46 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=aZw6+42Hbsjl9PfOD0QhZ9+1qDhW7F/gr+Av7fUB54Y=;
        b=km44DqhEvnO5ne7ogvdFLm3J4mM9fX00sty5GOeHPELmbfxSzNfsf6YGnl/1d0RUdR
         Wf4brauHog0toEgXx7FXH5aJGwz0TsVYVt8jkYzSd+y4x5me07r7fUzwEcb4diE4BJYv
         UHkjpdr+utZrAXyMNxjq/720SmY+KoQaXnROoOja31bf26Ff1B6HF0k50TFfYnjAJ4Qs
         NtuEthnRVyFLsXci84dFeAz/wLVzzBexHIqQPS93EUE6jpSNH8zq4wl61501IWuPPO6R
         xROmX7FteienUJtw8aS7Rtj8h+Q2XivCDSY7Vk+NtUN/IBYrFhkh8OamPhbukU4ZGatJ
         mAbw==
X-Gm-Message-State: AMCzsaUgpB/Lmc+Dypib3T3Nt6Bys39Y7PmhJXSlZnJR7cwpocJFeILJ
	7hmBJ1b9yFRWpEPwOd3eSuYB6O5VrqYj7p/WHPxbNm+5yF5D8WZSkcgK055gTL3ulHkhNqIwW4O
	FNv3sMM8cFghGowMlWPtlqAfHY7rFc3jWBvE9
X-Received: by 10.237.36.61 with SMTP id r58mr4435358qtc.10.1506659866144;
        Thu, 28 Sep 2017 21:37:46 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QAgNpY0g/K4Xj9V+ENI93DIaFFtBfBNOQlhTJjVF7ngqVRpbaedW62rLgU8VqG4fy6ZF2f8veZTijavJroHEGI=
X-Received: by 10.237.36.61 with SMTP id r58mr4435346qtc.10.1506659865851;
 Thu, 28 Sep 2017 21:37:45 -0700 (PDT)
MIME-Version: 1.0
References: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
 <CALgBV_cpqDwtSH6A4L9v5kE2g_E-+3zGTjD+qK1orm0nPZ1iUQ@mail.gmail.com>
In-Reply-To: <CALgBV_cpqDwtSH6A4L9v5kE2g_E-+3zGTjD+qK1orm0nPZ1iUQ@mail.gmail.com>
From: Steven Jacobs <sjaco002@ucr.edu>
Date: Fri, 29 Sep 2017 04:37:35 +0000
Message-ID: <CAE1xAnt_M4D2yA1wNffGGWJAOD6s7AXr1_6cVkgcWLNLfgfmHw@mail.gmail.com>
Subject: Re: Strange error trying to run Asterix master
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a11406dee1a1184055a4c9658"

--001a11406dee1a1184055a4c9658
Content-Type: text/plain; charset="UTF-8"

If only that worked for me :( I have even tried deleting the m2 repository
cache completely.
Steven

On Thu, Sep 28, 2017 at 8:19 PM Wail Alkowaileet <wael.y.k@gmail.com> wrote:

> I got the same issue before. I did "clean project" and the issue seems to
> be resolved.
>
> On Thu, Sep 28, 2017 at 2:26 PM, Steven Jacobs <sjaco002@ucr.edu> wrote:
>
> > Hi all,
> > I've been stuck for some time now trying to get master Asterix to debug
> > correctly for me in Eclipse on my machine. It seems to deal with the
> class
> > generation being done by maven, but that's as far as I can see so far. No
> > one I've talked to has a similar issue, so I was wondering if anyone from
> > the community at large has had such an issue. It manifests itself when
> > tying to create the evaluator for a function. The stack trace is attached
> > below. If anyone has seen such an issue, I would love to get any advice
> you
> > may have.
> >
> >
> > java.lang.VerifyError: Bad return type
> >
> > Exception Details:
> >
> >   Location:
> >
> >
> > org/apache/asterix/runtime/evaluators/functions/records/
> > RecordMergeDescriptor$_EvaluatorFactoryGen.access$0(
> > Lorg/apache/asterix/runtime/evaluators/functions/records/
> > RecordMergeDescriptor$_EvaluatorFactoryGen;)Lorg/apache/asterix/runtime/
> > evaluators/functions/records/RecordMergeDescriptor;
> > @4: areturn
> >
> >   Reason:
> >
> >     Type
> > 'org/apache/asterix/runtime/evaluators/functions/records/
> > RecordMergeDescriptor$_Gen'
> > (current frame, stack[0]) is not assignable to
> > 'org/apache/asterix/runtime/evaluators/functions/records/
> > RecordMergeDescriptor'
> > (from method signature)
> >
> >   Current Frame:
> >
> >     bci: @4
> >
> >     flags: { }
> >
> >     locals: {
> > 'org/apache/asterix/runtime/evaluators/functions/records/
> > RecordMergeDescriptor$_EvaluatorFactoryGen'
> > }
> >
> >     stack: {
> > 'org/apache/asterix/runtime/evaluators/functions/records/
> > RecordMergeDescriptor$_Gen'
> > }
> >
> >   Bytecode:
> >
> >     0x0000000: 2ab4 0063 b0
> >
> >
> > at
> > org.apache.asterix.runtime.evaluators.functions.records.
> > RecordMergeDescriptor$_Gen.createEvaluatorFactory(
> > RecordMergeDescriptor.java:86)
> >
> > at
> > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > createScalarFunctionEvaluatorFactory(
> > QueryLogicalExpressionJobGen.java:144)
> >
> > at
> > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > createEvaluatorFactory(
> > QueryLogicalExpressionJobGen.java:109)
> >
> > at org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > codegenArguments(
> > QueryLogicalExpressionJobGen.java:161)
> >
> > at
> > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > createScalarFunctionEvaluatorFactory(
> > QueryLogicalExpressionJobGen.java:134)
> >
> > at
> > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > createEvaluatorFactory(
> > QueryLogicalExpressionJobGen.java:109)
> >
> > at
> > org.apache.hyracks.algebricks.core.algebra.expressions.
> > ExpressionRuntimeProvider.createEvaluatorFactory(
> > ExpressionRuntimeProvider.java:41)
> >
> > at
> > org.apache.hyracks.algebricks.core.algebra.operators.
> > physical.AssignPOperator.contributeRuntimeOperator(
> > AssignPOperator.java:84)
> >
> > at
> > org.apache.hyracks.algebricks.core.algebra.operators.logical.
> > AbstractLogicalOperator.contributeRuntimeOperator(
> > AbstractLogicalOperator.java:166)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:97)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compileOpRef(
> > PlanCompiler.java:84)
> >
> > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > compilePlan(
> > PlanCompiler.java:60)
> >
> > at
> > org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilde
> > r$1$1.createJob(
> > HeuristicCompilerFactoryBuilder.java:107)
> >
> > at org.apache.asterix.api.common.APIFramework.compileQuery(
> > APIFramework.java:333)
> >
> > at
> > org.apache.asterix.app.translator.QueryTranslator.
> > rewriteCompileInsertUpsert(
> > QueryTranslator.java:1864)
> >
> > at org.apache.asterix.app.translator.QueryTranslator.lambda$0(
> > QueryTranslator.java:1752)
> >
> > at
> > org.apache.asterix.app.translator.QueryTranslator.
> > handleInsertUpsertStatement(
> > QueryTranslator.java:1778)
> >
> > at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(
> > QueryTranslator.java:336)
> >
> > at
> org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
> >
> > at org.apache.hyracks.http.server.AbstractServlet.handle(
> > AbstractServlet.java:78)
> >
> > at org.apache.hyracks.http.server.HttpRequestHandler.handle(
> > HttpRequestHandler.java:70)
> >
> > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > HttpRequestHandler.java:55)
> >
> > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > HttpRequestHandler.java:36)
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> >
> > at java.util.concurrent.ThreadPoolExecutor.runWorker(
> > ThreadPoolExecutor.java:1142)
> >
> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > ThreadPoolExecutor.java:617)
> >
> > at java.lang.Thread.run(Thread.java:745)
> >
>
>
>
> --
>
> *Regards,*
> Wail Alkowaileet
>

--001a11406dee1a1184055a4c9658--

From dev-return-5227-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 05:22:22 2017
Return-Path: <dev-return-5227-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 53EB3C30F
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 05:22:22 +0000 (UTC)
Received: (qmail 18540 invoked by uid 500); 29 Sep 2017 05:22:22 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 17987 invoked by uid 500); 29 Sep 2017 05:22:21 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 17959 invoked by uid 99); 29 Sep 2017 05:22:21 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 05:22:20 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 797A5C4BD7
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 05:22:20 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.879
X-Spam-Level: *
X-Spam-Status: No, score=1.879 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id BsRYttZLjwBj for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 05:22:18 +0000 (UTC)
Received: from mail-pg0-f41.google.com (mail-pg0-f41.google.com [74.125.83.41])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id E68AF5FE6B
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 05:22:17 +0000 (UTC)
Received: by mail-pg0-f41.google.com with SMTP id p5so200968pgn.7
        for <dev@asterixdb.apache.org>; Thu, 28 Sep 2017 22:22:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
        bh=ocK/SuqZdHiPInuS9/XlTOXk+uA4xxlDt47MYwooYc4=;
        b=ZyShmvtdEucjUmJBrEpBarsrlSfKrwAMQascXcVm6b3c5nV/qQZ/fpXiX8aZAU6rUZ
         XiGDxqNc2VFzNUAZyte1uI6PpOP8M4khrXy7wtzBTc/njXHRFwnldUFGzPAiz/SIccjT
         kK79yoD2sZOda/uZD8xqui8inMVqz3+mB2bLs0YryzwoaplINcTBLRyu0ZRyyi6X94eh
         Z9ZbDyO1GSw+ZFzgcwC8NlWH/98PW7Q0v1atAWKvM0KgudxEDVdYwo5agPruw0JF+2GW
         7iBq2mtNdt9Yp+N3eyo+UYjI+ned2GBFr0stjfTAnhmLuccAnZCTqzwDP0JndH0/FITz
         H1Ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to;
        bh=ocK/SuqZdHiPInuS9/XlTOXk+uA4xxlDt47MYwooYc4=;
        b=KnSeetYLpgd8pO2RjIUj4a2a4R+VZ0jZGUxnGRT23vSgcJMqf8Pq9NrKglG3/KNDhZ
         x2TfWih8aAkouKDwf0p+P2b0114BnRV4KRcfO5iaBlMuJB/FI324Mul4sVjqeheuWvsx
         JBrLr91rXm2MxYeA89uXsgP7QURYi0d3jq0OXIRTNQYSoNSBvdAZIjoZ+k5oU2Gt3/vP
         2l0jZkDj8XpHCpPsXvzJTx5MQ4ScRp7wF9hZdj8HiqBuX21c1W7OSF2eIFqlXYF8kU+4
         vWgRl7MqdOUho5SaGsGiz3jU524hNFDHil37kgCluOcbxQ2+wteojOmK2kq13Xnjj2Hx
         J0iA==
X-Gm-Message-State: AHPjjUgg8GL1X9602cZVojLfMd1hXYYFZPdik/OqZeTy8GkR2fBWS+ww
	ZUrgRmSVMJlTs/KyqYLcai0ezlRa4mvQgkoCJEs=
X-Google-Smtp-Source: AOwi7QAkpqoh02jWts1rEqhY7UHvGlm6ortgN8k/cKW02KfWEfuJwn7r8saD/dJrkjB/YJVVVU+TAczmjqSwWzAmQCU=
X-Received: by 10.101.80.140 with SMTP id r12mr6099605pgp.267.1506662536344;
 Thu, 28 Sep 2017 22:22:16 -0700 (PDT)
MIME-Version: 1.0
References: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
 <CALgBV_cpqDwtSH6A4L9v5kE2g_E-+3zGTjD+qK1orm0nPZ1iUQ@mail.gmail.com> <CAE1xAnt_M4D2yA1wNffGGWJAOD6s7AXr1_6cVkgcWLNLfgfmHw@mail.gmail.com>
In-Reply-To: <CAE1xAnt_M4D2yA1wNffGGWJAOD6s7AXr1_6cVkgcWLNLfgfmHw@mail.gmail.com>
From: Michael Blow <mblow.apache@gmail.com>
Date: Fri, 29 Sep 2017 05:22:05 +0000
Message-ID: <CAFUTFea5KqyC1PAPb6PHQ3OJZ4aq7HL7twb+L97r6JAwZRMcNQ@mail.gmail.com>
Subject: Re: Strange error trying to run Asterix master
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="089e08200840467838055a4d3518"

--089e08200840467838055a4d3518
Content-Type: text/plain; charset="UTF-8"

What JVM is this?  Try Oracle latest Java 8 if not already using.

-MDB

On Fri, Sep 29, 2017 at 12:37 AM Steven Jacobs <sjaco002@ucr.edu> wrote:

> If only that worked for me :( I have even tried deleting the m2 repository
> cache completely.
> Steven
>
> On Thu, Sep 28, 2017 at 8:19 PM Wail Alkowaileet <wael.y.k@gmail.com>
> wrote:
>
> > I got the same issue before. I did "clean project" and the issue seems to
> > be resolved.
> >
> > On Thu, Sep 28, 2017 at 2:26 PM, Steven Jacobs <sjaco002@ucr.edu> wrote:
> >
> > > Hi all,
> > > I've been stuck for some time now trying to get master Asterix to debug
> > > correctly for me in Eclipse on my machine. It seems to deal with the
> > class
> > > generation being done by maven, but that's as far as I can see so far.
> No
> > > one I've talked to has a similar issue, so I was wondering if anyone
> from
> > > the community at large has had such an issue. It manifests itself when
> > > tying to create the evaluator for a function. The stack trace is
> attached
> > > below. If anyone has seen such an issue, I would love to get any advice
> > you
> > > may have.
> > >
> > >
> > > java.lang.VerifyError: Bad return type
> > >
> > > Exception Details:
> > >
> > >   Location:
> > >
> > >
> > > org/apache/asterix/runtime/evaluators/functions/records/
> > > RecordMergeDescriptor$_EvaluatorFactoryGen.access$0(
> > > Lorg/apache/asterix/runtime/evaluators/functions/records/
> > >
> RecordMergeDescriptor$_EvaluatorFactoryGen;)Lorg/apache/asterix/runtime/
> > > evaluators/functions/records/RecordMergeDescriptor;
> > > @4: areturn
> > >
> > >   Reason:
> > >
> > >     Type
> > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > RecordMergeDescriptor$_Gen'
> > > (current frame, stack[0]) is not assignable to
> > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > RecordMergeDescriptor'
> > > (from method signature)
> > >
> > >   Current Frame:
> > >
> > >     bci: @4
> > >
> > >     flags: { }
> > >
> > >     locals: {
> > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > RecordMergeDescriptor$_EvaluatorFactoryGen'
> > > }
> > >
> > >     stack: {
> > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > RecordMergeDescriptor$_Gen'
> > > }
> > >
> > >   Bytecode:
> > >
> > >     0x0000000: 2ab4 0063 b0
> > >
> > >
> > > at
> > > org.apache.asterix.runtime.evaluators.functions.records.
> > > RecordMergeDescriptor$_Gen.createEvaluatorFactory(
> > > RecordMergeDescriptor.java:86)
> > >
> > > at
> > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > createScalarFunctionEvaluatorFactory(
> > > QueryLogicalExpressionJobGen.java:144)
> > >
> > > at
> > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > createEvaluatorFactory(
> > > QueryLogicalExpressionJobGen.java:109)
> > >
> > > at org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > codegenArguments(
> > > QueryLogicalExpressionJobGen.java:161)
> > >
> > > at
> > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > createScalarFunctionEvaluatorFactory(
> > > QueryLogicalExpressionJobGen.java:134)
> > >
> > > at
> > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > createEvaluatorFactory(
> > > QueryLogicalExpressionJobGen.java:109)
> > >
> > > at
> > > org.apache.hyracks.algebricks.core.algebra.expressions.
> > > ExpressionRuntimeProvider.createEvaluatorFactory(
> > > ExpressionRuntimeProvider.java:41)
> > >
> > > at
> > > org.apache.hyracks.algebricks.core.algebra.operators.
> > > physical.AssignPOperator.contributeRuntimeOperator(
> > > AssignPOperator.java:84)
> > >
> > > at
> > > org.apache.hyracks.algebricks.core.algebra.operators.logical.
> > > AbstractLogicalOperator.contributeRuntimeOperator(
> > > AbstractLogicalOperator.java:166)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:97)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compileOpRef(
> > > PlanCompiler.java:84)
> > >
> > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > compilePlan(
> > > PlanCompiler.java:60)
> > >
> > > at
> > >
> org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilde
> > > r$1$1.createJob(
> > > HeuristicCompilerFactoryBuilder.java:107)
> > >
> > > at org.apache.asterix.api.common.APIFramework.compileQuery(
> > > APIFramework.java:333)
> > >
> > > at
> > > org.apache.asterix.app.translator.QueryTranslator.
> > > rewriteCompileInsertUpsert(
> > > QueryTranslator.java:1864)
> > >
> > > at org.apache.asterix.app.translator.QueryTranslator.lambda$0(
> > > QueryTranslator.java:1752)
> > >
> > > at
> > > org.apache.asterix.app.translator.QueryTranslator.
> > > handleInsertUpsertStatement(
> > > QueryTranslator.java:1778)
> > >
> > > at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(
> > > QueryTranslator.java:336)
> > >
> > > at
> > org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:162)
> > >
> > > at org.apache.hyracks.http.server.AbstractServlet.handle(
> > > AbstractServlet.java:78)
> > >
> > > at org.apache.hyracks.http.server.HttpRequestHandler.handle(
> > > HttpRequestHandler.java:70)
> > >
> > > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > > HttpRequestHandler.java:55)
> > >
> > > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > > HttpRequestHandler.java:36)
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > >
> > > at java.util.concurrent.ThreadPoolExecutor.runWorker(
> > > ThreadPoolExecutor.java:1142)
> > >
> > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > ThreadPoolExecutor.java:617)
> > >
> > > at java.lang.Thread.run(Thread.java:745)
> > >
> >
> >
> >
> > --
> >
> > *Regards,*
> > Wail Alkowaileet
> >
>

--089e08200840467838055a4d3518--

From dev-return-5228-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 18:56:12 2017
Return-Path: <dev-return-5228-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id A326B10CD9
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 18:56:12 +0000 (UTC)
Received: (qmail 3718 invoked by uid 500); 29 Sep 2017 18:56:12 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 3647 invoked by uid 500); 29 Sep 2017 18:56:12 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 3636 invoked by uid 99); 29 Sep 2017 18:56:12 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 18:56:12 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id C4D27D4A59
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 18:56:11 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 0.198
X-Spam-Level:
X-Spam-Status: No, score=0.198 tagged_above=-999 required=6.31
	tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5,
	RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id Rz1IQDCFDaIO for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 18:56:09 +0000 (UTC)
Received: from mx1.ucr.edu (mx1.ucr.edu [138.23.248.2])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id C51805F29A
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 18:56:08 +0000 (UTC)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2B0AwCxls5ZgMjYVdFdHAEBBAEBCgEBgm+BUW4nB4NxgTaYSjwJBoEnBIhCgn+CMYJ7hT6CEgEJhTsChCwHQBcBAgEBAQEBAQETAQEJDQkIJjGFGAEBAQECASNbCwsLBQgqAgIhARIBBQEcGRSKBQMIBQiZPUCMC4Inhz8NRQEHgzMmEoMbggKBCYVagl6CEIMpgmAFgS0BAQGRH44kMggBAYFgjguEeZMHjG6IThQFH4EVIQKBQjIhJ3YGVoQkHIIHIDYBiDkBAQE
X-IPAS-Result: A2B0AwCxls5ZgMjYVdFdHAEBBAEBCgEBgm+BUW4nB4NxgTaYSjwJBoEnBIhCgn+CMYJ7hT6CEgEJhTsChCwHQBcBAgEBAQEBAQETAQEJDQkIJjGFGAEBAQECASNbCwsLBQgqAgIhARIBBQEcGRSKBQMIBQiZPUCMC4Inhz8NRQEHgzMmEoMbggKBCYVagl6CEIMpgmAFgS0BAQGRH44kMggBAYFgjguEeZMHjG6IThQFH4EVIQKBQjIhJ3YGVoQkHIIHIDYBiDkBAQE
X-IronPort-AV: E=Sophos;i="5.42,453,1500966000"; 
   d="scan'208,217";a="817774821"
Received: from mail-qt0-f200.google.com ([209.85.216.200])
  by smtp1.ucr.edu with ESMTP/TLS/AES128-SHA; 29 Sep 2017 11:56:06 -0700
Received: by mail-qt0-f200.google.com with SMTP id y57so29589qta.2
        for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 11:56:07 -0700 (PDT)
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;
        bh=R29c5Fi/Vi9H4JWDXTzvQQ+Y9izWG4TnoXiXYysaok4=;
        b=kL0juT/GX2cB7hR0y1c/nJ+C92yasAT0Gm0qSG9K741GBcaHnCgVdJ5118Wt7lzreM
         yLSnEP3F2i9Zpalyul/KxUWlDiGNEHLkogy9hEUzhqCIWtfHUUC74vFdchOIyUPPhqG7
         Fd43z6c2hVMppW6usS7DlEJRtvQCNmtvwUr3yRxP35/HuJFruBvJOX9+MQ89SuUW3AvB
         qpIfRvq9PvOiie4AkfH9yCx87MbAqPOdkcHX4KFr2dW2SIR29zSQic/poc6NGU1x9J+u
         td8VWbS74UpsvQBA8YPPMM9hcZ4CS3+GBc8MwwHszXCXc0Rz4peuO1JWsuEZNQXQ6ZGj
         1ovg==
X-Gm-Message-State: AMCzsaXdlEtFCXGKO3Qyg83MjJT71DGCWXpyekuQ39OasyzWDL8nTv0b
	Foz7zDOTeqiDieYJIikk3tkhkv+s5oj0oIbsHlCW5dcctFy4pwgi4WEdxYBcOe3fR/Y/Jbe6MDt
	dICzGupsYlzseY+QObZQh6lLeLSw95lbuErq5
X-Received: by 10.55.155.203 with SMTP id d194mr4430342qke.288.1506711366108;
        Fri, 29 Sep 2017 11:56:06 -0700 (PDT)
X-Google-Smtp-Source: AOwi7QDzoUSLOahzZ3egqHJ/Ya4MZgNcMdnE6hmKxORXWpcoHA8EU4AzyxQQBwdJqoft1fBrHQ9QfrInECxue+7KPqo=
X-Received: by 10.55.155.203 with SMTP id d194mr4430323qke.288.1506711365793;
 Fri, 29 Sep 2017 11:56:05 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.200.58.225 with HTTP; Fri, 29 Sep 2017 11:56:05 -0700 (PDT)
In-Reply-To: <CAFUTFea5KqyC1PAPb6PHQ3OJZ4aq7HL7twb+L97r6JAwZRMcNQ@mail.gmail.com>
References: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
 <CALgBV_cpqDwtSH6A4L9v5kE2g_E-+3zGTjD+qK1orm0nPZ1iUQ@mail.gmail.com>
 <CAE1xAnt_M4D2yA1wNffGGWJAOD6s7AXr1_6cVkgcWLNLfgfmHw@mail.gmail.com> <CAFUTFea5KqyC1PAPb6PHQ3OJZ4aq7HL7twb+L97r6JAwZRMcNQ@mail.gmail.com>
From: Steven Jacobs <sjaco002@ucr.edu>
Date: Fri, 29 Sep 2017 11:56:05 -0700
Message-ID: <CAE1xAnvU4_2rZuBuGYEm=Gqi4bxgLmDwMKc3iXLdy+V_MNsVEQ@mail.gmail.com>
Subject: Re: Strange error trying to run Asterix master
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="94eb2c07714ebcd3eb055a5893d2"

--94eb2c07714ebcd3eb055a5893d2
Content-Type: text/plain; charset="UTF-8"

I'm on build build 1.8.0_65-b17. I've switched to Intellij and the problem
doesn't occur there so it seems to be related to Eclipse specifically.
Steven

On Thu, Sep 28, 2017 at 10:22 PM, Michael Blow <mblow.apache@gmail.com>
wrote:

> What JVM is this?  Try Oracle latest Java 8 if not already using.
>
> -MDB
>
> On Fri, Sep 29, 2017 at 12:37 AM Steven Jacobs <sjaco002@ucr.edu> wrote:
>
> > If only that worked for me :( I have even tried deleting the m2
> repository
> > cache completely.
> > Steven
> >
> > On Thu, Sep 28, 2017 at 8:19 PM Wail Alkowaileet <wael.y.k@gmail.com>
> > wrote:
> >
> > > I got the same issue before. I did "clean project" and the issue seems
> to
> > > be resolved.
> > >
> > > On Thu, Sep 28, 2017 at 2:26 PM, Steven Jacobs <sjaco002@ucr.edu>
> wrote:
> > >
> > > > Hi all,
> > > > I've been stuck for some time now trying to get master Asterix to
> debug
> > > > correctly for me in Eclipse on my machine. It seems to deal with the
> > > class
> > > > generation being done by maven, but that's as far as I can see so
> far.
> > No
> > > > one I've talked to has a similar issue, so I was wondering if anyone
> > from
> > > > the community at large has had such an issue. It manifests itself
> when
> > > > tying to create the evaluator for a function. The stack trace is
> > attached
> > > > below. If anyone has seen such an issue, I would love to get any
> advice
> > > you
> > > > may have.
> > > >
> > > >
> > > > java.lang.VerifyError: Bad return type
> > > >
> > > > Exception Details:
> > > >
> > > >   Location:
> > > >
> > > >
> > > > org/apache/asterix/runtime/evaluators/functions/records/
> > > > RecordMergeDescriptor$_EvaluatorFactoryGen.access$0(
> > > > Lorg/apache/asterix/runtime/evaluators/functions/records/
> > > >
> > RecordMergeDescriptor$_EvaluatorFactoryGen;)Lorg/apache/asterix/runtime/
> > > > evaluators/functions/records/RecordMergeDescriptor;
> > > > @4: areturn
> > > >
> > > >   Reason:
> > > >
> > > >     Type
> > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > RecordMergeDescriptor$_Gen'
> > > > (current frame, stack[0]) is not assignable to
> > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > RecordMergeDescriptor'
> > > > (from method signature)
> > > >
> > > >   Current Frame:
> > > >
> > > >     bci: @4
> > > >
> > > >     flags: { }
> > > >
> > > >     locals: {
> > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > RecordMergeDescriptor$_EvaluatorFactoryGen'
> > > > }
> > > >
> > > >     stack: {
> > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > RecordMergeDescriptor$_Gen'
> > > > }
> > > >
> > > >   Bytecode:
> > > >
> > > >     0x0000000: 2ab4 0063 b0
> > > >
> > > >
> > > > at
> > > > org.apache.asterix.runtime.evaluators.functions.records.
> > > > RecordMergeDescriptor$_Gen.createEvaluatorFactory(
> > > > RecordMergeDescriptor.java:86)
> > > >
> > > > at
> > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > createScalarFunctionEvaluatorFactory(
> > > > QueryLogicalExpressionJobGen.java:144)
> > > >
> > > > at
> > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > createEvaluatorFactory(
> > > > QueryLogicalExpressionJobGen.java:109)
> > > >
> > > > at org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > codegenArguments(
> > > > QueryLogicalExpressionJobGen.java:161)
> > > >
> > > > at
> > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > createScalarFunctionEvaluatorFactory(
> > > > QueryLogicalExpressionJobGen.java:134)
> > > >
> > > > at
> > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > createEvaluatorFactory(
> > > > QueryLogicalExpressionJobGen.java:109)
> > > >
> > > > at
> > > > org.apache.hyracks.algebricks.core.algebra.expressions.
> > > > ExpressionRuntimeProvider.createEvaluatorFactory(
> > > > ExpressionRuntimeProvider.java:41)
> > > >
> > > > at
> > > > org.apache.hyracks.algebricks.core.algebra.operators.
> > > > physical.AssignPOperator.contributeRuntimeOperator(
> > > > AssignPOperator.java:84)
> > > >
> > > > at
> > > > org.apache.hyracks.algebricks.core.algebra.operators.logical.
> > > > AbstractLogicalOperator.contributeRuntimeOperator(
> > > > AbstractLogicalOperator.java:166)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:97)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compileOpRef(
> > > > PlanCompiler.java:84)
> > > >
> > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > compilePlan(
> > > > PlanCompiler.java:60)
> > > >
> > > > at
> > > >
> > org.apache.hyracks.algebricks.compiler.api.
> HeuristicCompilerFactoryBuilde
> > > > r$1$1.createJob(
> > > > HeuristicCompilerFactoryBuilder.java:107)
> > > >
> > > > at org.apache.asterix.api.common.APIFramework.compileQuery(
> > > > APIFramework.java:333)
> > > >
> > > > at
> > > > org.apache.asterix.app.translator.QueryTranslator.
> > > > rewriteCompileInsertUpsert(
> > > > QueryTranslator.java:1864)
> > > >
> > > > at org.apache.asterix.app.translator.QueryTranslator.lambda$0(
> > > > QueryTranslator.java:1752)
> > > >
> > > > at
> > > > org.apache.asterix.app.translator.QueryTranslator.
> > > > handleInsertUpsertStatement(
> > > > QueryTranslator.java:1778)
> > > >
> > > > at org.apache.asterix.app.translator.QueryTranslator.
> compileAndExecute(
> > > > QueryTranslator.java:336)
> > > >
> > > > at
> > > org.apache.asterix.api.http.server.ApiServlet.post(
> ApiServlet.java:162)
> > > >
> > > > at org.apache.hyracks.http.server.AbstractServlet.handle(
> > > > AbstractServlet.java:78)
> > > >
> > > > at org.apache.hyracks.http.server.HttpRequestHandler.handle(
> > > > HttpRequestHandler.java:70)
> > > >
> > > > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > > > HttpRequestHandler.java:55)
> > > >
> > > > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > > > HttpRequestHandler.java:36)
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > > >
> > > > at java.util.concurrent.ThreadPoolExecutor.runWorker(
> > > > ThreadPoolExecutor.java:1142)
> > > >
> > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > > ThreadPoolExecutor.java:617)
> > > >
> > > > at java.lang.Thread.run(Thread.java:745)
> > > >
> > >
> > >
> > >
> > > --
> > >
> > > *Regards,*
> > > Wail Alkowaileet
> > >
> >
>

--94eb2c07714ebcd3eb055a5893d2--

From dev-return-5229-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 21:37:22 2017
Return-Path: <dev-return-5229-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 8C5FD104A8
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 21:37:22 +0000 (UTC)
Received: (qmail 44932 invoked by uid 500); 29 Sep 2017 21:37:22 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 44872 invoked by uid 500); 29 Sep 2017 21:37:22 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 44860 invoked by uid 99); 29 Sep 2017 21:37:22 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 21:37:22 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 9EBFCCA8BA
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 21:37:21 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.48
X-Spam-Level: **
X-Spam-Status: No, score=2.48 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5] autolearn=disabled
Authentication-Results: spamd1-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=uci-edu.20150623.gappssmtp.com
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024)
	with ESMTP id nwXvNkdNUrZV for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 21:37:20 +0000 (UTC)
Received: from mail-pg0-f54.google.com (mail-pg0-f54.google.com [74.125.83.54])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 594D55FB4E
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 21:37:20 +0000 (UTC)
Received: by mail-pg0-f54.google.com with SMTP id p5so438720pgn.7
        for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 14:37:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=uci-edu.20150623.gappssmtp.com; s=20150623;
        h=mime-version:from:date:message-id:subject:to;
        bh=0QHzB5LqFln/hsTDIloBKfyKXtLYceKTmDE/K8wL72I=;
        b=TjHU+5+3Y/tXKffUhNTTWgTYzYxqXoonMpdgFGcKV90kZ86v4lJ4rMAo39IkuIwnjd
         MhH6oLTJjyvnc4++9knugjRc9VTfvoRuYkb9NmluFc2wGzCA8UYBXL2r+IeLOkrf8nVs
         F87C+NUd6TnA/7f81y0Ep/kgvQWfV2fnsC9l0nCjB35ZmRt/BdUMpEo1EwR+mFNHgwxP
         9F603zUP9mvuCM4Np+aj0Rb4xpnu8SSicLGvKskbY/ea5o/kukFviqHSfoV9/lLattGB
         JJSK7sjfUl2EN0dwtlGVGitPkiWgkw+7qRunw1MkxlsvahEgn8m6PCiwoQ2bAW9uRMdz
         69zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=0QHzB5LqFln/hsTDIloBKfyKXtLYceKTmDE/K8wL72I=;
        b=Fmv7FIrIBM34kMuw8zMBatTC6EgVOttGw9fjxKyOa9s83k0VNVKMQ9l9e24uwTUqVT
         WNuuLHaWd8wbv39gmt4scErAAKW7oK+bmE4Y5CH5DzK5KwbL1q3AdJJaixhSwM5jE4xm
         PzcnxEqLh2YHOts+2VWkLsXoC4S0kxtA+Xx0dxcmcCy++WEIc69w4NjeCWVzlv6mo97L
         317q2IUU06SBgcxK7WlovNCYtiSQe4YLDEOCOwwEXg1SpPaBO6M6VKaSgsP1aOVbeBTD
         d2lU6b8aQ/1LRvrcf/LHXfQqbeYBJWqOKXKV8KWpCEWh1YDHv4+vM8j93n5ZaEnN2KON
         iY0A==
X-Gm-Message-State: AHPjjUjyjUniVyQtGmVR0fe/6eC4ncyJ1NjES9NctaB81YsMbKwa99ub
	CzjDT8JWnpONYZixJ3dtTBLHec96+grva98kF1eMIqMr
X-Google-Smtp-Source: AOwi7QD1adrdB3hzD8CYT2tRAaVM8Mr1AiCoOe+tpJligm6DM8oCTNyAkvYmd3qg9MKtXJRHaAMQMDXK6dyvMYPJzDY=
X-Received: by 10.98.13.151 with SMTP id 23mr9280379pfn.39.1506721038510; Fri,
 29 Sep 2017 14:37:18 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.180.99 with HTTP; Fri, 29 Sep 2017 14:37:18 -0700 (PDT)
From: Xikui Wang <xikuiw@uci.edu>
Date: Fri, 29 Sep 2017 14:37:18 -0700
Message-ID: <CAN-bgPq1F+9Gw_s=F2vV5B7nUnKwc7ok1cFie7okpbXNOGKSXw@mail.gmail.com>
Subject: Deprecating '#' as line comment character
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a11431aa046be47055a5ad470"

--001a11431aa046be47055a5ad470
Content-Type: text/plain; charset="UTF-8"

Hi Devs,

With the patch in [1], we will no longer support using '#'  for line
comment. You may use '--' or '//' as alternatives. Meanwhile, backquoting
function name for invoking external UDF in SQLPP is not enforced now. You
can use either

testlib#getCapital("England") or `testlib#getCapital`("England")

to invoke your external UDF.

[1] https://asterix-gerrit.ics.uci.edu/#/c/2037/

Best,
Xikui

--001a11431aa046be47055a5ad470--

From dev-return-5230-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 21:41:34 2017
Return-Path: <dev-return-5230-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id E9405104E9
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 21:41:34 +0000 (UTC)
Received: (qmail 50222 invoked by uid 500); 29 Sep 2017 21:41:34 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 50153 invoked by uid 500); 29 Sep 2017 21:41:34 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 50140 invoked by uid 99); 29 Sep 2017 21:41:34 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 21:41:34 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 0A61A1A437E
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 21:41:34 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.879
X-Spam-Level: *
X-Spam-Status: No, score=1.879 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
	HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=gmail.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id 74uBkg-ivQt6 for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 21:41:33 +0000 (UTC)
Received: from mail-pg0-f45.google.com (mail-pg0-f45.google.com [74.125.83.45])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id CD3CB5FC99
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 21:41:32 +0000 (UTC)
Received: by mail-pg0-f45.google.com with SMTP id v23so444597pgc.5
        for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 14:41:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:content-language;
        bh=gqhU84/q6U3MEnwxycrYCJ94h2jUJkohcBlbLzUm+O8=;
        b=oogBVnhQ3ilHLy+GHep0Kisi20wZLkHKP244EjjYKbNr7cin4QLPp/5zFLh8WjONA3
         bZ9lRSsIQr0WXpGsBKvM3aNhmEdOo79XyCodIelv+xYGF47GmdyDkOp3HjjDgczzhjm4
         sgQKQxgex2xLbmgoxaVNFp3l5pDI+5H0/qMy4hCJXgQJmCPyo0cF/AAP3kQAXmYRYDom
         Tv2voB9x/fKSjvOJcIf5oLL61q76IApU/KgnnRgpPeG+IISKOGf7Zh3MWeubPB5Ya3+v
         X0AGHFDstYW/aMUUG4sgMi9WG9fa+UvJmlBz7pWB1VCoAnUkWtLj1YlFdBhdPdukql8+
         2zPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:content-language;
        bh=gqhU84/q6U3MEnwxycrYCJ94h2jUJkohcBlbLzUm+O8=;
        b=rgRb6qSzQLe7XifTuao+QL4H4BgNHo73furSD+uv0H9MrJjUUs3R/NP1Kc/TBm6RTF
         gulmRgv94ZATL8J6kYy2M2CdODrTuZm/25jPQkbbHeaA08kLl3VI+Z1kmm57oiXYqh7u
         74xiiVUKQH8rmo5DaNqswtV9gQM1W9dMCbU8RXQPb4+wZOfpk0tHvV3vBNElNIrqX64h
         nXn5XfwHcX2wtaBiJBJHxBKOtv//s/09Hlp56Y/8J7Bgn2TSKo8YCNgDwg7KjeEM5Cmb
         wSoDDcyH+wb61Pu5EcG9x6ajgcxPVoYix7QqZ8aXUASju+KjuvKe6VeFeXRZfSPaxgOh
         LuUA==
X-Gm-Message-State: AHPjjUhDfJYN73BDPxgTjsCRmUO91Qy6sCf4yZsz1RkX3RVgWTYVl0QC
	1HhEapDcsRLzRJM1br9g9BUZ/A==
X-Google-Smtp-Source: AOwi7QCbaXxwsvtjW/K2NyyKafIvMgXpk3zuMVNlidZhHrFX2EWxuEXNahlABe+vHyeNTlLt5gaK9w==
X-Received: by 10.84.232.76 with SMTP id f12mr8321533pln.297.1506721285520;
        Fri, 29 Sep 2017 14:41:25 -0700 (PDT)
Received: from dhcp-053198.ics.uci.edu (dhcp-053198.ics.uci.edu. [128.195.53.198])
        by smtp.googlemail.com with ESMTPSA id 125sm7545985pff.5.2017.09.29.14.41.24
        for <dev@asterixdb.apache.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Fri, 29 Sep 2017 14:41:24 -0700 (PDT)
Subject: Re: Deprecating '#' as line comment character
To: dev@asterixdb.apache.org
References: <CAN-bgPq1F+9Gw_s=F2vV5B7nUnKwc7ok1cFie7okpbXNOGKSXw@mail.gmail.com>
From: Mike Carey <dtabass@gmail.com>
Message-ID: <5eddb13b-9d32-da0d-79b0-c07f05e8fb7c@gmail.com>
Date: Fri, 29 Sep 2017 14:41:23 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0)
 Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <CAN-bgPq1F+9Gw_s=F2vV5B7nUnKwc7ok1cFie7okpbXNOGKSXw@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------A39374A9FEED028F4E89C193"
Content-Language: en-US

--------------A39374A9FEED028F4E89C193
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

#goodnews

:-)


On 9/29/17 2:37 PM, Xikui Wang wrote:
> Hi Devs,
>
> With the patch in [1], we will no longer support using '#'  for line
> comment. You may use '--' or '//' as alternatives. Meanwhile, backquoting
> function name for invoking external UDF in SQLPP is not enforced now. You
> can use either
>
> testlib#getCapital("England") or `testlib#getCapital`("England")
>
> to invoke your external UDF.
>
> [1] https://asterix-gerrit.ics.uci.edu/#/c/2037/
>
> Best,
> Xikui
>


--------------A39374A9FEED028F4E89C193--

From dev-return-5231-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Fri Sep 29 22:26:56 2017
Return-Path: <dev-return-5231-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 6A39310735
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Fri, 29 Sep 2017 22:26:56 +0000 (UTC)
Received: (qmail 92991 invoked by uid 500); 29 Sep 2017 22:26:56 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 92927 invoked by uid 500); 29 Sep 2017 22:26:56 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 92915 invoked by uid 99); 29 Sep 2017 22:26:56 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2017 22:26:56 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 94ED11A210C
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 22:26:55 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 2.48
X-Spam-Level: **
X-Spam-Status: No, score=2.48 tagged_above=-999 required=6.31
	tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2,
	RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01,
	RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5] autolearn=disabled
Authentication-Results: spamd2-us-west.apache.org (amavisd-new);
	dkim=pass (2048-bit key) header.d=uci-edu.20150623.gappssmtp.com
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id SmaNE4hORyic for <dev@asterixdb.apache.org>;
	Fri, 29 Sep 2017 22:26:52 +0000 (UTC)
Received: from mail-it0-f51.google.com (mail-it0-f51.google.com [209.85.214.51])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id C8AD35F4A9
	for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 22:26:51 +0000 (UTC)
Received: by mail-it0-f51.google.com with SMTP id e134so1437348ite.3
        for <dev@asterixdb.apache.org>; Fri, 29 Sep 2017 15:26:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=uci-edu.20150623.gappssmtp.com; s=20150623;
        h=mime-version:in-reply-to:references:from:date:message-id:subject:to;
        bh=2xvzTVwCOX/ZLZouqQfySlxnhP9AtGOahamrNuU9N7c=;
        b=M2Ep6rJJfdI6eZjkeHMpU5GyIJUZtKyjhaR4L5gqJkZciCGJlhSc7ndF1vwInexRv0
         J+4npQ2RHZX1j1nrYpz+AzZNcZ3jEQUjqduBMKTqe3dvqGk5IfM0j6Bia5YdS4Aidrlw
         0u18FuTd49Ha8n9AydVB/21k7MbqHrBRu6lT5WKeefgBxyR4ckQDWuwjpSCfZL4MpFfi
         by5Aqrv+WbSaiA4eIwF6y3Wp+XiADa1DS3n/qa6VTLX4RBsqTz6l4QDmEdCn/TAMFvWO
         GlGTl1Q0afVjN+fzCYwRbPfIl4SEc2sYzK3qyaJFxss7WTb9FgakZNEd1YI9IAk19F+s
         BaUw==
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;
        bh=2xvzTVwCOX/ZLZouqQfySlxnhP9AtGOahamrNuU9N7c=;
        b=MxnOpUtpPpbG4HxZ0vxXUnhgxOwRio8xOQNz4XotvmDEgchnZM3H4eNB6L4wPXTukA
         wzB77GvjWVtSHo5feV2YQwBdEUb8UWv5/T0cK54Jj2GIsyx1gEVlbkcQhT3vI90nbWJ/
         HYrUDudxxC974Vf4lPMFyzKZFkHLedVh4rKR9c99Ow9jZUb5DFc2YBXlayvPRGNwSbox
         Y5QPev7CH7/I55iJ/ivx7hsQtJDgtQfQSXXj8g7U3/PDVin7lMQPOv0qe7fkYXDjFfWc
         yH3Z4Lh3aG2rI3Jau5K9NVOJjI5r8tI24rihZicgf80XkXT6TeY1D2Jx+qR3wJXRDgOA
         4Dqw==
X-Gm-Message-State: AHPjjUgZyNpUjDj7Awx3CiuCk5Qwz1tfjJOUJvYV0FBc9XifqSjYHMo8
	MSvQFhdIkiSv7XnrL8ooLNyRWnCZHYJupfHhNGwt1g==
X-Google-Smtp-Source: AOwi7QBh0WRI7ZWgFIlkgwPR63W3uxWRu2QUpGXDrKCq1Vk4MSt1Yl3pXQXHq1CMMH3nr7M35rSR3ASy3hI6vo7f1dE=
X-Received: by 10.36.110.3 with SMTP id w3mr9678066itc.113.1506724010905; Fri,
 29 Sep 2017 15:26:50 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.92.65 with HTTP; Fri, 29 Sep 2017 15:26:50 -0700 (PDT)
In-Reply-To: <CAE1xAnvU4_2rZuBuGYEm=Gqi4bxgLmDwMKc3iXLdy+V_MNsVEQ@mail.gmail.com>
References: <CAE1xAnvp_O8WCveJ25DiSpfQGMoKhAmzxuhbpOomDu0OyjJHWQ@mail.gmail.com>
 <CALgBV_cpqDwtSH6A4L9v5kE2g_E-+3zGTjD+qK1orm0nPZ1iUQ@mail.gmail.com>
 <CAE1xAnt_M4D2yA1wNffGGWJAOD6s7AXr1_6cVkgcWLNLfgfmHw@mail.gmail.com>
 <CAFUTFea5KqyC1PAPb6PHQ3OJZ4aq7HL7twb+L97r6JAwZRMcNQ@mail.gmail.com> <CAE1xAnvU4_2rZuBuGYEm=Gqi4bxgLmDwMKc3iXLdy+V_MNsVEQ@mail.gmail.com>
From: Chen Luo <cluo8@uci.edu>
Date: Fri, 29 Sep 2017 15:26:50 -0700
Message-ID: <CAEGOuq0r-pL+4rY5j-1UV=qEPxo135BCMM8X=D5PKSbnxM_5vQ@mail.gmail.com>
Subject: Re: Strange error trying to run Asterix master
To: dev@asterixdb.apache.org
Content-Type: multipart/alternative; boundary="001a114a918c722096055a5b853d"

--001a114a918c722096055a5b853d
Content-Type: text/plain; charset="UTF-8"

Hi Steven,

I was using Eclipse (on mac) to debug AsterixDB's code, and things work
well for me. After switch to another branch, I think we need to run "mvn
clean install" to rebuild class files, and in the meanwhile need to refresh
the workspace in Eclipse to rebuild things in Eclipse.

Best regards,
Chen Luo

On Fri, Sep 29, 2017 at 11:56 AM, Steven Jacobs <sjaco002@ucr.edu> wrote:

> I'm on build build 1.8.0_65-b17. I've switched to Intellij and the problem
> doesn't occur there so it seems to be related to Eclipse specifically.
> Steven
>
> On Thu, Sep 28, 2017 at 10:22 PM, Michael Blow <mblow.apache@gmail.com>
> wrote:
>
> > What JVM is this?  Try Oracle latest Java 8 if not already using.
> >
> > -MDB
> >
> > On Fri, Sep 29, 2017 at 12:37 AM Steven Jacobs <sjaco002@ucr.edu> wrote:
> >
> > > If only that worked for me :( I have even tried deleting the m2
> > repository
> > > cache completely.
> > > Steven
> > >
> > > On Thu, Sep 28, 2017 at 8:19 PM Wail Alkowaileet <wael.y.k@gmail.com>
> > > wrote:
> > >
> > > > I got the same issue before. I did "clean project" and the issue
> seems
> > to
> > > > be resolved.
> > > >
> > > > On Thu, Sep 28, 2017 at 2:26 PM, Steven Jacobs <sjaco002@ucr.edu>
> > wrote:
> > > >
> > > > > Hi all,
> > > > > I've been stuck for some time now trying to get master Asterix to
> > debug
> > > > > correctly for me in Eclipse on my machine. It seems to deal with
> the
> > > > class
> > > > > generation being done by maven, but that's as far as I can see so
> > far.
> > > No
> > > > > one I've talked to has a similar issue, so I was wondering if
> anyone
> > > from
> > > > > the community at large has had such an issue. It manifests itself
> > when
> > > > > tying to create the evaluator for a function. The stack trace is
> > > attached
> > > > > below. If anyone has seen such an issue, I would love to get any
> > advice
> > > > you
> > > > > may have.
> > > > >
> > > > >
> > > > > java.lang.VerifyError: Bad return type
> > > > >
> > > > > Exception Details:
> > > > >
> > > > >   Location:
> > > > >
> > > > >
> > > > > org/apache/asterix/runtime/evaluators/functions/records/
> > > > > RecordMergeDescriptor$_EvaluatorFactoryGen.access$0(
> > > > > Lorg/apache/asterix/runtime/evaluators/functions/records/
> > > > >
> > > RecordMergeDescriptor$_EvaluatorFactoryGen;)Lorg/
> apache/asterix/runtime/
> > > > > evaluators/functions/records/RecordMergeDescriptor;
> > > > > @4: areturn
> > > > >
> > > > >   Reason:
> > > > >
> > > > >     Type
> > > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > > RecordMergeDescriptor$_Gen'
> > > > > (current frame, stack[0]) is not assignable to
> > > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > > RecordMergeDescriptor'
> > > > > (from method signature)
> > > > >
> > > > >   Current Frame:
> > > > >
> > > > >     bci: @4
> > > > >
> > > > >     flags: { }
> > > > >
> > > > >     locals: {
> > > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > > RecordMergeDescriptor$_EvaluatorFactoryGen'
> > > > > }
> > > > >
> > > > >     stack: {
> > > > > 'org/apache/asterix/runtime/evaluators/functions/records/
> > > > > RecordMergeDescriptor$_Gen'
> > > > > }
> > > > >
> > > > >   Bytecode:
> > > > >
> > > > >     0x0000000: 2ab4 0063 b0
> > > > >
> > > > >
> > > > > at
> > > > > org.apache.asterix.runtime.evaluators.functions.records.
> > > > > RecordMergeDescriptor$_Gen.createEvaluatorFactory(
> > > > > RecordMergeDescriptor.java:86)
> > > > >
> > > > > at
> > > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > > createScalarFunctionEvaluatorFactory(
> > > > > QueryLogicalExpressionJobGen.java:144)
> > > > >
> > > > > at
> > > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > > createEvaluatorFactory(
> > > > > QueryLogicalExpressionJobGen.java:109)
> > > > >
> > > > > at org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > > codegenArguments(
> > > > > QueryLogicalExpressionJobGen.java:161)
> > > > >
> > > > > at
> > > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > > createScalarFunctionEvaluatorFactory(
> > > > > QueryLogicalExpressionJobGen.java:134)
> > > > >
> > > > > at
> > > > > org.apache.asterix.jobgen.QueryLogicalExpressionJobGen.
> > > > > createEvaluatorFactory(
> > > > > QueryLogicalExpressionJobGen.java:109)
> > > > >
> > > > > at
> > > > > org.apache.hyracks.algebricks.core.algebra.expressions.
> > > > > ExpressionRuntimeProvider.createEvaluatorFactory(
> > > > > ExpressionRuntimeProvider.java:41)
> > > > >
> > > > > at
> > > > > org.apache.hyracks.algebricks.core.algebra.operators.
> > > > > physical.AssignPOperator.contributeRuntimeOperator(
> > > > > AssignPOperator.java:84)
> > > > >
> > > > > at
> > > > > org.apache.hyracks.algebricks.core.algebra.operators.logical.
> > > > > AbstractLogicalOperator.contributeRuntimeOperator(
> > > > > AbstractLogicalOperator.java:166)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:97)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compileOpRef(
> > > > > PlanCompiler.java:84)
> > > > >
> > > > > at org.apache.hyracks.algebricks.core.jobgen.impl.PlanCompiler.
> > > > > compilePlan(
> > > > > PlanCompiler.java:60)
> > > > >
> > > > > at
> > > > >
> > > org.apache.hyracks.algebricks.compiler.api.
> > HeuristicCompilerFactoryBuilde
> > > > > r$1$1.createJob(
> > > > > HeuristicCompilerFactoryBuilder.java:107)
> > > > >
> > > > > at org.apache.asterix.api.common.APIFramework.compileQuery(
> > > > > APIFramework.java:333)
> > > > >
> > > > > at
> > > > > org.apache.asterix.app.translator.QueryTranslator.
> > > > > rewriteCompileInsertUpsert(
> > > > > QueryTranslator.java:1864)
> > > > >
> > > > > at org.apache.asterix.app.translator.QueryTranslator.lambda$0(
> > > > > QueryTranslator.java:1752)
> > > > >
> > > > > at
> > > > > org.apache.asterix.app.translator.QueryTranslator.
> > > > > handleInsertUpsertStatement(
> > > > > QueryTranslator.java:1778)
> > > > >
> > > > > at org.apache.asterix.app.translator.QueryTranslator.
> > compileAndExecute(
> > > > > QueryTranslator.java:336)
> > > > >
> > > > > at
> > > > org.apache.asterix.api.http.server.ApiServlet.post(
> > ApiServlet.java:162)
> > > > >
> > > > > at org.apache.hyracks.http.server.AbstractServlet.handle(
> > > > > AbstractServlet.java:78)
> > > > >
> > > > > at org.apache.hyracks.http.server.HttpRequestHandler.handle(
> > > > > HttpRequestHandler.java:70)
> > > > >
> > > > > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > > > > HttpRequestHandler.java:55)
> > > > >
> > > > > at org.apache.hyracks.http.server.HttpRequestHandler.call(
> > > > > HttpRequestHandler.java:36)
> > > > >
> > > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > > > >
> > > > > at java.util.concurrent.ThreadPoolExecutor.runWorker(
> > > > > ThreadPoolExecutor.java:1142)
> > > > >
> > > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > > > ThreadPoolExecutor.java:617)
> > > > >
> > > > > at java.lang.Thread.run(Thread.java:745)
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > >
> > > > *Regards,*
> > > > Wail Alkowaileet
> > > >
> > >
> >
>

--001a114a918c722096055a5b853d--

From dev-return-5232-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sat Sep 30 05:06:27 2017
Return-Path: <dev-return-5232-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 2B57E10282
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sat, 30 Sep 2017 05:06:27 +0000 (UTC)
Received: (qmail 38848 invoked by uid 500); 30 Sep 2017 05:06:27 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 38780 invoked by uid 500); 30 Sep 2017 05:06:26 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 38764 invoked by uid 99); 30 Sep 2017 05:06:26 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Sep 2017 05:06:26 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id C34681A265E
	for <dev@asterixdb.apache.org>; Sat, 30 Sep 2017 05:06:25 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.5
X-Spam-Level: *
X-Spam-Status: No, score=1.5 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled
Received: from mx1-lw-eu.apache.org ([10.40.0.8])
	by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024)
	with ESMTP id 0TqQjBJHSihU for <dev@asterixdb.apache.org>;
	Sat, 30 Sep 2017 05:06:24 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 157185FAEA
	for <dev@asterixdb.apache.org>; Sat, 30 Sep 2017 05:06:23 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 74628240877;
	Fri, 29 Sep 2017 22:05:31 -0700 (PDT)
Date: Fri, 29 Sep 2017 22:05:31 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, cluo8@uci.edu, 
	dmitry.lychagin@couchbase.com, ildar.absalyamov@gmail.com, 
	mblow@apache.org, mhubail@apache.org, tillw@apache.org, 
	wangsaeu@gmail.com, xkkwww@gmail.com
Message-ID: <1538859253.27.1506747931378.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is unstable: asterix-integration-tests 8b3e67af
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/883/changes>


From dev-return-5233-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org  Sat Sep 30 08:58:08 2017
Return-Path: <dev-return-5233-apmail-asterixdb-dev-archive=asterixdb.apache.org@asterixdb.apache.org>
X-Original-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Delivered-To: apmail-asterixdb-dev-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by minotaur.apache.org (Postfix) with SMTP id 389C4106F7
	for <apmail-asterixdb-dev-archive@minotaur.apache.org>; Sat, 30 Sep 2017 08:58:08 +0000 (UTC)
Received: (qmail 50123 invoked by uid 500); 30 Sep 2017 08:58:08 -0000
Delivered-To: apmail-asterixdb-dev-archive@asterixdb.apache.org
Received: (qmail 50072 invoked by uid 500); 30 Sep 2017 08:58:08 -0000
Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm
Precedence: bulk
List-Help: <mailto:dev-help@asterixdb.apache.org>
List-Unsubscribe: <mailto:dev-unsubscribe@asterixdb.apache.org>
List-Post: <mailto:dev@asterixdb.apache.org>
List-Id: <dev.asterixdb.apache.org>
Reply-To: dev@asterixdb.apache.org
Delivered-To: mailing list dev@asterixdb.apache.org
Received: (qmail 50057 invoked by uid 99); 30 Sep 2017 08:58:07 -0000
Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142)
    by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Sep 2017 08:58:07 +0000
Received: from localhost (localhost [127.0.0.1])
	by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 3A2C21808B9
	for <dev@asterixdb.apache.org>; Sat, 30 Sep 2017 08:58:07 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org
X-Spam-Flag: NO
X-Spam-Score: 1.5
X-Spam-Level: *
X-Spam-Status: No, score=1.5 tagged_above=-999 required=6.31
	tests=[KAM_LAZY_DOMAIN_SECURITY=1, KAM_LINKBAIT=0.5,
	RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled
Received: from mx1-lw-us.apache.org ([10.40.0.8])
	by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024)
	with ESMTP id 3VgxbDG3zW9E for <dev@asterixdb.apache.org>;
	Sat, 30 Sep 2017 08:58:06 +0000 (UTC)
Received: from unhygienix.ics.uci.edu (unhygienix.ics.uci.edu [128.195.14.130])
	by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 4D7025FCC1
	for <dev@asterixdb.apache.org>; Sat, 30 Sep 2017 08:58:06 +0000 (UTC)
Received: from obelix.ics.uci.edu (localhost [127.0.0.1])
	by unhygienix.ics.uci.edu (Postfix) with ESMTP id 539A4240E6E;
	Sat, 30 Sep 2017 01:57:19 -0700 (PDT)
Date: Sat, 30 Sep 2017 01:57:19 -0700 (PDT)
From: Asterix build server  <jenkins@asterix-jenkins.ics.uci.edu>
To: dev@asterixdb.apache.org, bamousaa@gmail.com, cluo8@uci.edu, 
	dmitry.lychagin@couchbase.com, ildar.absalyamov@gmail.com, 
	mblow@apache.org, mhubail@apache.org, tillw@apache.org, 
	wangsaeu@gmail.com, xkkwww@gmail.com
Message-ID: <521062724.28.1506761839312.JavaMail.jenkins@unhygienix.ics.uci.edu>
In-Reply-To: <1538859253.27.1506747931378.JavaMail.jenkins@unhygienix.ics.uci.edu>
References: <1538859253.27.1506747931378.JavaMail.jenkins@unhygienix.ics.uci.edu>
Subject: Jenkins build is still unstable: asterix-integration-tests ab8375ea
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0nz/YYRm0UEuhP+TWwX2ST1fizEpF7HpM4sPcYz2NS87f/HwLueejqBmJC4+jeepHXZ+Jv8mx/RZqsiFpmGNadfrVj5xdvYYYhL+LX6IsquitcGo4czObwwWQ3wInopyASEIqxRi7J6UytN3Fsh6s61qMC7piY42C6FKuqDH3vbnDkTLc8SDdMT9gWSyP9hQTcqcZ76QizLXas6NwvHmUjtNTpxcEsiEcY41b9rUv3810LUs6FQymbPzyZPhTmcRS8841AjfVUbWiSc3ElmKHNxrFA2JmK5S1/xyEeESEaeYHT7daGi2aR1P2G9XtRj5Oj4n7dKo/Xo3cznIN3NNtQIDAQAB
X-Jenkins-Job: asterix-integration-tests
X-Jenkins-Result: UNSTABLE

See <https://asterix-jenkins.ics.uci.edu/job/asterix-integration-tests/changes>


