Till Westmann has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/543
Change subject: PLEASE EDIT to provide a meaningful commit message! ...................................................................... PLEASE EDIT to provide a meaningful commit message! The following commits from your working branch will be included: commit c444772d766a7bd24a21d5b21a076439c54e4298 Merge: 45af08a 4a69238 Author: Till Westmann <[email protected]> Date: Thu Dec 3 16:52:09 2015 -0800 merge release-0.2.17 commit 4a69238d2c8626fc9b8f3beeb03b7df4e62a827d Author: Ian Maxon <[email protected]> Date: Mon Nov 23 16:38:03 2015 -0800 Fix ASTERIXDB-1108 Just adding some missing licenses, for jQuery plugins and text examples in the Hyracks textserver examples. Reviewed-on: https://asterix-gerrit.ics.uci.edu/513 Tested-by: Jenkins <[email protected]> Reviewed-by: Till Westmann <[email protected]> commit 2378ed680bfb50d4312b5f65ce41731e6a456db2 Author: Ian Maxon <[email protected]> Date: Tue Nov 24 13:04:19 2015 -0800 Fix ASTERIXDB-1104 This changes the wrapper hyracks-ecosystem POM to a name that makes more sense for distributing as a source tarball. Nothing depends on this artifact so changing its name should not be a big deal. Reviewed-on: https://asterix-gerrit.ics.uci.edu/516 Tested-by: Jenkins <[email protected]> Reviewed-by: Till Westmann <[email protected]> commit 0980f4c7e316678bf22f5ea1dfb3021e6b683de4 Author: Ildar Absalyamov <[email protected]> Date: Wed Nov 11 17:27:38 2015 -0800 ASTERIXDB-1109: Fixed deletion of records from open secondary index - Changed printers for idx\dataset insert\delete operators - Fixed visiting policy for idx insert\delete operator Reviewed-on: https://asterix-gerrit.ics.uci.edu/462 Tested-by: Jenkins <[email protected]> Reviewed-by: Taewoo Kim <[email protected]> Reviewed-by: Yingyi Bu <[email protected]> Change-Id: I23fddb0dc306ed78866ba17a7e60e808786314c5 --- M LICENSE M algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java M algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IndexInsertDeleteOperator.java M algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java M algebricks/pom.xml M hyracks/pom.xml M pom.xml 7 files changed, 404 insertions(+), 22 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/43/543/1 diff --git a/LICENSE b/LICENSE index 868d71d..e906e66 100644 --- a/LICENSE +++ b/LICENSE @@ -299,3 +299,348 @@ externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + +and also the Hyracks adminconsole resource at: +hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/jquery/plugins/jquery.getParams.js + + + Copyright (c) 2006 Mathias Bank (http://www.mathias-bank.de) + Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + + Thanks to Hinnerk Ruemenapf - http://hinnerk.ruemenapf.de/ for bug reporting and fixing. + +and also the Hyracks adminconsole resource at: +hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/jquery/plugins/jquery.timer.js + + jquery.timer.js + + Copyright (c) 2011 Jason Chavannes <[email protected]> + + http://jchavannes.com/jquery-timer + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +also the test data for the Hyracks textserver examples at +hyracks/hyracks-examples/text-example/textserver/data/file1.txt and +hyracks/hyracks-examples/text-example/textserver/data/file2.txt + +THE FULL PROJECT GUTENBERG LICENSE + +PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK + +To protect the Project Gutenberg-tm mission of promoting the free distribution +of electronic works, by using or distributing this work (or any other work +associated in any way with the phrase "Project Gutenberg"), you agree to comply +with all the terms of the Full Project Gutenberg-tm License available with this +file or online at www.gutenberg.org/license. + +Section 1. +General Terms of Use and Redistributing Project Gutenberg-tm electronic works + +1.A. By reading or using any part of this Project Gutenberg-tm +electronic work, you indicate that you have read, understand, agree to and +accept all the terms of this license and intellectual property +(trademark/copyright) agreement. If you do not agree to abide by all the terms +of this agreement, you must cease using and return or destroy all copies of +Project Gutenberg-tm electronic works in your possession. If you paid a fee for +obtaining a copy of or access to a Project Gutenberg-tm electronic work and you +do not agree to be bound by the terms of this agreement, you may obtain a +refund from the person or entity to whom you paid the fee as set forth in +paragraph 1.E.8. + +1.B. "Project Gutenberg" is a registered trademark. It may only be used on or +associated in any way with an electronic work by people who agree to be bound +by the terms of this agreement. There are a few things that you can do with +most Project Gutenberg-tm electronic works even without complying with the full +terms of this agreement. See paragraph 1.C below. There are a lot of things you +can do with Project Gutenberg-tm electronic works if you follow the terms of +this agreement and help preserve free future access to Project Gutenberg-tm +electronic works. See paragraph 1.E below. + +1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation" or +PGLAF), owns a compilation copyright in the collection of Project Gutenberg-tm +electronic works. Nearly all the individual works in the collection are in the +public domain in the United States. If an individual work is unprotected by +copyright law in the United States and you are located in the United States, we +do not claim a right to prevent you from copying, distributing, performing, +displaying or creating derivative works based on the work as long as all +references to Project Gutenberg are removed. Of course, we hope that you will +support the Project Gutenberg-tm mission of promoting free access to electronic +works by freely sharing Project Gutenberg-tm works in compliance with the terms +of this agreement for keeping the Project Gutenberg-tm name associated with the +work. You can easily comply with the terms of this agreement by keeping this +work in the same format with its attached full Project Gutenberg-tm License +when you share it without charge with others. + +[*] This particular work is one of the few individual works protected by +copyright law in the United States and most of the remainder of the world, +included in the Project Gutenberg collection with the permission of the +copyright holder. Information on the copyright owner for this particular work +and the terms of use imposed by the copyright holder on this work are set forth +at the beginning of this work. + +1.D. The copyright laws of the place where you are located also govern what you +can do with this work. Copyright laws in most countries are in a constant state +of change. If you are outside the United States, check the laws of your country +in addition to the terms of this agreement before downloading, copying, +displaying, performing, distributing or creating derivative works based on this +work or any other Project Gutenberg-tm work. The Foundation makes no +representations concerning the copyright status of any work in any country +outside the United States. + +1.E. Unless you have removed all references to Project Gutenberg: + +1.E.1. The following sentence, with active links to, or other immediate access +to, the full Project Gutenberg-tm License must appear prominently whenever any +copy of a Project Gutenberg-tm work (any work on which the phrase "Project +Gutenberg" appears, or with which the phrase "Project Gutenberg" is associated) +is accessed, displayed, performed, viewed, copied or distributed: + +This eBook is for the use of anyone anywhere in the United States and most +other parts of the world at no cost and with almost no restrictions whatsoever. +You may copy it, give it away or re-use it under the terms of the Project +Gutenberg License included with this eBook or online at www.gutenberg.org. If +you are not located in the United States, you'll have to check the laws of the +country where you are located before using this ebook. + +1.E.2. If an individual Project Gutenberg-tm electronic work is derived from +texts not protected by U.S. copyright law (does not contain a notice indicating +that it is posted with permission of the copyright holder), the work can be +copied and distributed to anyone in the United States without paying any fees +or charges. If you are redistributing or providing access to a work with the +phrase "Project Gutenberg" associated with or appearing on the work, you must +comply either with the requirements of paragraphs 1.E.1 through 1.E.7 or obtain +permission for the use of the work and the Project Gutenberg-tm trademark as +set forth in paragraphs 1.E.8 or 1.E.9. + +1.E.3. If an individual Project Gutenberg-tm electronic work is posted with the +permission of the copyright holder, your use and distribution must comply with +both paragraphs 1.E.1 through 1.E.7 and any additional terms imposed by the +copyright holder. Additional terms will be linked to the Project Gutenberg-tm +License for all works posted with the permission of the copyright holder found +at the beginning of this work. + +1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm License +terms from this work, or any files containing a part of this work or any other +work associated with Project Gutenberg-tm. + +1.E.5. Do not copy, display, perform, distribute or redistribute this +electronic work, or any part of this electronic work, without prominently +displaying the sentence set forth in paragraph 1.E.1 with active links or +immediate access to the full terms of the Project Gutenberg-tm License. + +1.E.6. You may convert to and distribute this work in any binary, compressed, +marked up, nonproprietary or proprietary form, including any word processing or +hypertext form. However, if you provide access to or distribute copies of a +Project Gutenberg-tm work in a format other than "Plain Vanilla ASCII" or other +format used in the official version posted on the official Project Gutenberg-tm +web site (www.gutenberg.org), you must, at no additional cost, fee or expense +to the user, provide a copy, a means of exporting a copy, or a means of +obtaining a copy upon request, of the work in its original "Plain Vanilla +ASCII" or other form. Any alternate format must include the full Project +Gutenberg-tm License as specified in paragraph 1.E.1. + +1.E.7. Do not charge a fee for access to, viewing, displaying, performing, +copying or distributing any Project Gutenberg-tm works unless you comply with +paragraph 1.E.8 or 1.E.9. + +1.E.8. You may charge a reasonable fee for copies of or providing access to or +distributing Project Gutenberg-tm electronic works provided that + +You pay a royalty fee of 20% of the gross profits you derive from the use of +Project Gutenberg-tm works calculated using the method you already use to +calculate your applicable taxes. The fee is owed to the owner of the Project +Gutenberg-tm trademark, but he has agreed to donate royalties under this +paragraph to the Project Gutenberg Literary Archive Foundation. Royalty +payments must be paid within 60 days following each date on which you prepare +(or are legally required to prepare) your periodic tax returns. Royalty +payments should be clearly marked as such and sent to the Project Gutenberg +Literary Archive Foundation at the address specified in Section 4, "Information +about donations to the Project Gutenberg Literary Archive Foundation." You +provide a full refund of any money paid by a user who notifies you in writing +(or by e-mail) within 30 days of receipt that s/he does not agree to the terms +of the full Project Gutenberg-tm License. You must require such a user to +return or destroy all copies of the works possessed in a physical medium and +discontinue all use of and all access to other copies of Project Gutenberg-tm +works. You provide, in accordance with paragraph 1.F.3, a full refund of any +money paid for a work or a replacement copy, if a defect in the electronic work +is discovered and reported to you within 90 days of receipt of the work. You +comply with all other terms of this agreement for free distribution of Project +Gutenberg-tm works. 1.E.9. If you wish to charge a fee or distribute a Project +Gutenberg-tm electronic work or group of works on different terms than are set +forth in this agreement, you must obtain permission in writing from both the +Project Gutenberg Literary Archive Foundation and The Project Gutenberg +Trademark LLC, the owner of the Project Gutenberg-tm trademark. Contact the +Foundation as set forth in Section 3 below. + +1.F. + +1.F.1. Project Gutenberg volunteers and employees expend considerable effort to +identify, do copyright research on, transcribe and proofread works not +protected by U.S. copyright law in creating the Project Gutenberg-tm +collection. Despite these efforts, Project Gutenberg-tm electronic works, and +the medium on which they may be stored, may contain "Defects," such as, but not +limited to, incomplete, inaccurate or corrupt data, transcription errors, a +copyright or other intellectual property infringement, a defective or damaged +disk or other medium, a computer virus, or computer codes that damage or cannot +be read by your equipment. + +1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right of +Replacement or Refund" described in paragraph 1.F.3, the Project Gutenberg +Literary Archive Foundation, the owner of the Project Gutenberg-tm trademark, +and any other party distributing a Project Gutenberg-tm electronic work under +this agreement, disclaim all liability to you for damages, costs and expenses, +including legal fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, +STRICT LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE +PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK +OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE TO YOU FOR +ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF +YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE. + +1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a defect in +this electronic work within 90 days of receiving it, you can receive a refund +of the money (if any) you paid for it by sending a written explanation to the +person you received the work from. If you received the work on a physical +medium, you must return the medium with your written explanation. The person or +entity that provided you with the defective work may elect to provide a +replacement copy in lieu of a refund. If you received the work electronically, +the person or entity providing it to you may choose to give you a second +opportunity to receive the work electronically in lieu of a refund. If the +second copy is also defective, you may demand a refund in writing without +further opportunities to fix the problem. + +1.F.4. Except for the limited right of replacement or refund set forth in +paragraph 1.F.3, this work is provided to you 'AS-IS', WITH NO OTHER WARRANTIES +OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR ANY PURPOSE. + +1.F.5. Some states do not allow disclaimers of certain implied warranties or +the exclusion or limitation of certain types of damages. If any disclaimer or +limitation set forth in this agreement violates the law of the state applicable +to this agreement, the agreement shall be interpreted to make the maximum +disclaimer or limitation permitted by the applicable state law. The invalidity +or unenforceability of any provision of this agreement shall not void the +remaining provisions. + +1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the +trademark owner, any agent or employee of the Foundation, anyone providing +copies of Project Gutenberg-tm electronic works in accordance with this +agreement, and any volunteers associated with the production, promotion and +distribution of Project Gutenberg-tm electronic works, harmless from all +liability, costs and expenses, including legal fees, that arise directly or +indirectly from any of the following which you do or cause to occur: (a) +distribution of this or any Project Gutenberg-tm work, (b) alteration, +modification, or additions or deletions to any Project Gutenberg-tm work, and +(c) any Defect you cause. + +Section 2. +Information about the Mission of Project Gutenberg-tm Project + +Gutenberg-tm is synonymous with the free distribution of electronic works in +formats readable by the widest variety of computers including obsolete, old, +middle-aged and new computers. It exists because of the efforts of hundreds of +volunteers and donations from people in all walks of life. + +Volunteers and financial support to provide volunteers with the assistance they +need are critical to reaching Project Gutenberg-tm's goals and ensuring that +the Project Gutenberg-tm collection will remain freely available for +generations to come. In 2001, the Project Gutenberg Literary Archive Foundation +was created to provide a secure and permanent future for Project Gutenberg-tm +and future generations. To learn more about the Project Gutenberg Literary +Archive Foundation and how your efforts and donations can help, see Sections 3 +and 4 and the Foundation information page at www.gutenberg.org + +Section 3. +Information about the Project Gutenberg Literary Archive Foundation + +The Project Gutenberg Literary Archive Foundation is a non profit 501(c)(3) +educational corporation organized under the laws of the state of Mississippi +and granted tax exempt status by the Internal Revenue Service. The Foundation's +EIN or federal tax identification number is 64-6221541. Contributions to the +Project Gutenberg Literary Archive Foundation are tax deductible to the full +extent permitted by U.S. federal laws and your state's laws. + +The Foundation's principal office is located at 4557 Melan Dr. S. Fairbanks, +AK, 99712., but its volunteers and employees are scattered throughout numerous +locations. Its business office is located at 809 North 1500 West, Salt Lake +City, UT 84116, (801) 596-1887. Email contact links and up to date contact +information can be found at the Foundation's web site and official page at +www.gutenberg.org/contact + +For additional contact information: + Dr. Gregory B. Newby Chief Executive and Director + [email protected] + +Section 4. +Information about Donations to the Project Gutenberg Literary Archive + +Foundation Project Gutenberg-tm depends upon and cannot survive without +wide spread public support and donations to carry out its mission of +increasing the number of public domain and licensed works that can be +freely distributed in machine readable form accessible by the widest array +of equipment including outdated equipment. Many small donations ($1 to +$5,000) are particularly important to maintaining tax exempt status with +the IRS. + +The Foundation is committed to complying with the laws regulating charities and +charitable donations in all 50 states of the United States. Compliance +requirements are not uniform and it takes a considerable effort, much paperwork +and many fees to meet and keep up with these requirements. We do not solicit +donations in locations where we have not received written confirmation of +compliance. To SEND DONATIONS or determine the status of compliance for any +particular state visit www.gutenberg.org/donate + +While we cannot and do not solicit contributions from states where we have not +met the solicitation requirements, we know of no prohibition against accepting +unsolicited donations from donors in such states who approach us with offers to +donate. + +International donations are gratefully accepted, but we cannot make any +statements concerning tax treatment of donations received from outside the +United States. U.S. laws alone swamp our small staff. + +Please check the Project Gutenberg Web pages for current donation methods and +addresses. Donations are accepted in a number of other ways including checks, +online payments and credit card donations. To donate, please visit: +www.gutenberg.org/donate + +Section 5. +General Information About Project Gutenberg-tm electronic works. + +Professor Michael S. Hart was the originator of the Project Gutenberg-tm +concept of a library of electronic works that could be freely shared with +anyone. For forty years, he produced and distributed Project Gutenberg-tm +eBooks with only a loose network of volunteer support. + +Project Gutenberg-tm eBooks are often created from several printed editions, +all of which are confirmed as not protected by copyright in the U.S. unless a +copyright notice is included. Thus, we do not necessarily keep eBooks in +compliance with any particular paper edition. + +Most people start at our Web site which has the main PG search facility: +www.gutenberg.org + +This Web site includes information about Project Gutenberg-tm, including how to +make donations to the Project Gutenberg Literary Archive Foundation, how to +help produce our new eBooks, and how to subscribe to our email newsletter to +hear about new eBooks. + diff --git a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java index bab23f1..cfdd6a5 100644 --- a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java +++ b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractFunctionCallExpression.java @@ -27,7 +27,6 @@ import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; - import org.apache.hyracks.algebricks.core.algebra.base.EquivalenceClass; import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression; import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag; @@ -50,7 +49,7 @@ final private List<Mutable<ILogicalExpression>> arguments; private Object[] opaqueParameters; private final FunctionKind kind; - private Map<Object, IExpressionAnnotation> annotationMap = new HashMap<Object, IExpressionAnnotation>(); + private final Map<Object, IExpressionAnnotation> annotationMap = new HashMap<Object, IExpressionAnnotation>(); public AbstractFunctionCallExpression(FunctionKind kind, IFunctionInfo finfo, List<Mutable<ILogicalExpression>> arguments) { @@ -110,6 +109,7 @@ return arguments; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("function-call: " + finfo.getFunctionIdentifier() + ", Args:["); @@ -124,6 +124,18 @@ sb.append(ref.getValue()); } sb.append("]"); + if (opaqueParameters != null) { + sb.append(", OpaqueArgs:["); + first = true; + for (Object param : opaqueParameters) { + if (first) { + first = false; + } else { + sb.append(", "); + } + sb.append(param); + } + } return sb.toString(); } @@ -172,7 +184,8 @@ } @Override - public void getConstraintsForOuterJoin(Collection<FunctionalDependency> fds, Collection<LogicalVariable> outerVars) { + public void getConstraintsForOuterJoin(Collection<FunctionalDependency> fds, + Collection<LogicalVariable> outerVars) { FunctionIdentifier funId = getFunctionIdentifier(); if (funId.equals(AlgebricksBuiltinFunctions.AND)) { for (Mutable<ILogicalExpression> a : arguments) { @@ -356,4 +369,4 @@ return true; } -} \ No newline at end of file +} diff --git a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IndexInsertDeleteOperator.java b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IndexInsertDeleteOperator.java index e9e3b01..378b916 100644 --- a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IndexInsertDeleteOperator.java +++ b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IndexInsertDeleteOperator.java @@ -22,13 +22,11 @@ import java.util.List; import org.apache.commons.lang3.mutable.Mutable; - import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression; import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag; import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment; -import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource; import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourceIndex; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InsertDeleteOperator.Kind; import org.apache.hyracks.algebricks.core.algebra.properties.VariablePropagationPolicy; @@ -79,6 +77,18 @@ b = true; } } + if (filterExpr != null) { + if (visitor.transform(filterExpr)) { + b = true; + } + } + if (additionalFilteringExpressions != null) { + for (int i = 0; i < additionalFilteringExpressions.size(); i++) { + if (visitor.transform(additionalFilteringExpressions.get(i))) { + b = true; + } + } + } return b; } diff --git a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java index 17f2285..686fcf7 100644 --- a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java +++ b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java @@ -327,10 +327,17 @@ @Override public String visitInsertDeleteOperator(InsertDeleteOperator op, Integer indent) throws AlgebricksException { StringBuilder buffer = new StringBuilder(); - String header = op.getOperation() == Kind.INSERT ? "insert into " : "delete from "; - addIndent(buffer, indent).append(header).append(op.getDataSource()).append(" from ") - .append(op.getPayloadExpression().getValue().accept(exprVisitor, indent)).append(" partitioned by "); + if (op.getOperation() == Kind.INSERT) + addIndent(buffer, indent).append("insert ") + .append(op.getPayloadExpression().getValue().accept(exprVisitor, indent)).append(" into "); + else + addIndent(buffer, indent).append("delete from "); + buffer.append(op.getDataSource()).append(" partitioned by "); pprintExprList(op.getPrimaryKeyExpressions(), buffer, indent); + if (op.getAdditionalFilteringExpressions() != null) { + buffer.append(" filtered by "); + pprintExprList(op.getAdditionalFilteringExpressions(), buffer, indent); + } if (op.isBulkload()) { buffer.append(" [bulkload]"); } @@ -341,10 +348,18 @@ public String visitIndexInsertDeleteOperator(IndexInsertDeleteOperator op, Integer indent) throws AlgebricksException { StringBuilder buffer = new StringBuilder(); - String header = op.getOperation() == Kind.INSERT ? "insert into " : "delete from "; - addIndent(buffer, indent).append(header).append(op.getIndexName()).append(" on ") - .append(op.getDataSourceIndex().getDataSource()).append(" from "); + addIndent(buffer, indent).append(op.getOperation() == Kind.INSERT ? "insert " : "delete "); pprintExprList(op.getSecondaryKeyExpressions(), buffer, indent); + buffer.append(op.getOperation() == Kind.INSERT ? " into " : " from ").append(op.getIndexName()).append(" on ") + .append(op.getDataSourceIndex().getDataSource()).append(" partitioned by "); + pprintExprList(op.getPrimaryKeyExpressions(), buffer, indent); + if (op.getFilterExpression() != null || op.getAdditionalFilteringExpressions() != null) { + buffer.append(" filtered by "); + if (op.getFilterExpression() != null) + buffer.append(op.getFilterExpression().getValue().accept(exprVisitor, indent)); + if (op.getAdditionalFilteringExpressions() != null) + pprintExprList(op.getAdditionalFilteringExpressions(), buffer, indent); + } if (op.isBulkload()) { buffer.append(" [bulkload]"); } diff --git a/algebricks/pom.xml b/algebricks/pom.xml index a59edba..b3d54d0 100644 --- a/algebricks/pom.xml +++ b/algebricks/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>org.apache.hyracks</groupId> - <artifactId>fullstack</artifactId> + <artifactId>apache-asterixdb-hyracks</artifactId> <version>0.2.17-SNAPSHOT</version> </parent> diff --git a/hyracks/pom.xml b/hyracks/pom.xml index 7af92c7..f68626c 100644 --- a/hyracks/pom.xml +++ b/hyracks/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>org.apache.hyracks</groupId> - <artifactId>fullstack</artifactId> + <artifactId>apache-asterixdb-hyracks</artifactId> <version>0.2.17-SNAPSHOT</version> </parent> diff --git a/pom.xml b/pom.xml index 368ba2a..f627937 100644 --- a/pom.xml +++ b/pom.xml @@ -18,14 +18,13 @@ !--> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>org.apache.hyracks</groupId> - <artifactId>fullstack</artifactId> - <version>0.2.17-SNAPSHOT</version> - <packaging>pom</packaging> - <name>hyracks-ecosystem-full-stack</name> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.hyracks</groupId> + <artifactId>apache-asterixdb-hyracks</artifactId> + <version>0.2.17-SNAPSHOT</version> + <packaging>pom</packaging> + <name>hyracks-ecosystem-full-stack</name> <parent> <groupId>org.apache</groupId> -- To view, visit https://asterix-gerrit.ics.uci.edu/543 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I23fddb0dc306ed78866ba17a7e60e808786314c5 Gerrit-PatchSet: 1 Gerrit-Project: hyracks Gerrit-Branch: master Gerrit-Owner: Till Westmann <[email protected]>
