Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
[ASTERIXDB-2648][COMP] Fix dataset order in broadcast hint

- user model changes: yes

- storage format changes: no

- interface changes: no

details:

- Provides hash-bcast hint to replace bcast hint which makes

broadcast join consistent with other types of joins for choosing

the broadcasting dataset based on dataset order in FROM clause.

- Chooses the build dataset to get broadcast based on the order

in the FROM clause not the WHERE clause (which was the case for

bcast hint).

Change-Id: I505fc8e0bc32c760ae0471c6b302bbfd8499be4a

Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/3566

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

    • -0
    • +108
    ./visitors/BroadcastSideSwitchingVisitor.java
  1. … 51 more files in changeset.
[ASTERIXDB-2635][*DB] Fix JSON plan pretty printing

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Use Jackson to pretty print the logical plan as JSON.

- fixed JsonLogicalPlanTest to validate JSON plans

produced by optimizer tests.

Change-Id: Ic5ada2f31afebc3f219b0584b5ae527ddf9e326e

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3567

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 21 more files in changeset.
[ASTERIXDB-2611][*DB] Fix GroupAll with empty input

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

This patch is to fix the issue with group by all where

some partitions are empty. The patch in general handles

propagating outer scope variables through group by all by using

subplans instead of using decor variables when translating

the AST.

- changed IsomorphismVariableMappingVisitor to stop re-visiting

the same nested tuple operator pair again

- moved getFdColumns() up in hierarchy to be shared by others

- added a check to prevent group-all with decoration fields

Change-Id: I56916fc60c696f6c702717210f108f2247b2a397

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3521

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

    • -18
    • +28
    ./visitors/IsomorphismVariableMappingVisitor.java
  1. … 37 more files in changeset.
[NO ISSUE][COMP] Fix variable handling in Intersect operator

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Create separate lists for output compare and

extra variables in Intersect logical operator

- Align accessor method for input extra variables

with the one for input compare variables

- Remove getInputVariables() from Intersect operator

because these variables are already provided by

getInputCompareVariables() and getInputExtraVariables()

Change-Id: I4f436566e743d7e908a72bfa502c138ae7b99c6c

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3460

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -7
    • +22
    ./visitors/IsomorphismOperatorVisitor.java
    • -5
    • +24
    ./visitors/IsomorphismVariableMappingVisitor.java
    • -19
    • +14
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -10
    • +11
    ./visitors/OperatorDeepCopyVisitor.java
    • -1
    • +4
    ./visitors/ProducedVariableVisitor.java
    • -9
    • +8
    ./visitors/SubstituteVariableVisitor.java
  1. … 6 more files in changeset.
[NO ISSUE][COMP] Stop reusing variables of Intersect operator

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Intersect operator's input variables should not be reused as

its output variables (fixed IntroduceSelectAccessMethodRule

and IntroduceLSMComponentFilterRule)

- Remove HeuristicOptimizer.isHyracksOp() and updated

ExtractCommonOperatorsRule to use isMicroOperator() instead

- When copying Intersect operator OperatorDeepCopyVisitor now

properly handles its two kinds input variables

- Clear additional state in IntroduceSelectAccessMethodRule.clear()

and OptimizableOperatorSubTree.reset()

- Added testcases for index intersection

Change-Id: I551819b828450760797f6b29af02aad4e124646c

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3450

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -5
    • +11
    ./visitors/OperatorDeepCopyVisitor.java
  1. … 27 more files in changeset.
[NO ISSUE][FUN] Support IGNORE NULLS in window functions

- user model changes: yes

- storage format changes: no

- interface changes: no

Details:

- Support IGNORE NULLS / RESPECT NULLS modifiers in window

  functions LEAD(), LAG(), FIRST_VALUE(), LAST_VALUE(), NTH_VALUE()

  (RESPECT NULLS is the default)

- Add testcases for each function

- Fix CollectionMemberResultType and PushAggregateIntoNestedSubplanRule

  to handle remaining non-list arguments

Change-Id: I400c9c95bac9159efa17fca4e97047fd089eb931

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3407

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -1
    • +4
    ./visitors/IsomorphismOperatorVisitor.java
    • -5
    • +6
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -3
    • +5
    ./visitors/OperatorDeepCopyVisitor.java
    • -3
    • +7
    ./visitors/SubstituteVariableVisitor.java
  1. … 45 more files in changeset.
[NO ISSUE][API] Return Async Query Results As JSON

- user model changes: yes

- storage format changes: no

- interface changes: yes

Details:

- Add ResultMetadata that can hold metadata about a job's

result.

- Add required CC functions to get ResultMetadata.

- Add IJobResultCallback that is called when a job's result

is written successfully.

- Calculate a job's processed objects on the job completion.

- Calculate a job's duration on the job completion.

- Use the async query request format when serving the result

from QueryResultApiServlet.

- Return a proper JSON envelop in QueryResultApiServlet

which includes the results as well as metrics fields.

- Add test case for returning JSON response for async

query.

Change-Id: Ic4812a14925099a677f9e77a0040f881d2600724

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3401

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

    • -1
    • +1
    ./visitors/OperatorDeepCopyVisitor.java
  1. … 58 more files in changeset.
[NO ISSUE][COMP] Refactor physical operator assignment rules

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Refactor SetAlgebricksPhysicalOperatorsRule and make it extensible

- Make SetAsterixPhysicalOperatorsRule a subclass of

SetAlgebricksPhysicalOperatorsRule

- Remove SetAlgebricksPhysicalOperatorsRule from Asterix rule set,

replace its invocations with SetAsterixPhysicalOperatorsRule

Change-Id: I502f367464a6fabc595cff804722f793e052570f

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3367

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

  1. … 5 more files in changeset.
[NO ISSUE][COMP] Refactor physical operators for GroupBy and DistinctBy

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Introduce AbstractGroupByPOperator -

base class for physical GroupBy operators

- Introduce AbstractDistinctByPOperator -

base class for physical DistinctBy operators

- Set memory limit for MicroPreclusteredGroupByPOperator

- Remove unused PhysicalOperatorTag.HASH_GROUP_BY

- Rename GroupByOperator.getGbyVarList() to getGroupByVarList()

- Remove constructors that do not specify memory limit from

PreclusteredGroupOperatorDescriptor and PreclusteredGroupWriter

Change-Id: I93f17a6a3e0df6587e518e18eea01ca54a289b4c

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3364

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -1
    • +1
    ./visitors/CardinalityInferenceVisitor.java
    • -1
    • +1
    ./visitors/FDsAndEquivClassesVisitor.java
  1. … 26 more files in changeset.
[NO ISSUE] Create an abstraction for the ForwardOperatorDescriptor

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Abstract the activities out of the ForwardOperatorDescriptor so we can reuse

the same basic framework for multiple forward Operators.

- Abstract the ForwardOperatorDescriptor out of the ForwardPOperator so we can

reuse the same basic framework for multiple forward Operators.

Change-Id: Icc3db4b386e69a98c2a1c40dadc96eb3e1a5d4fa

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3338

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

    • -3
    • +3
    ./visitors/IsomorphismOperatorVisitor.java
    • -2
    • +2
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -1
    • +1
    ./visitors/OperatorDeepCopyVisitor.java
    • -1
    • +1
    ./visitors/SubstituteVariableVisitor.java
  1. … 12 more files in changeset.
[NO ISSUE][COMP] Improve window operator consolidation rule

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Consolidate window operators computing FIRST_VALUE()

and LAST_VALUE() over the same window specification

Change-Id: I4714081d711c98c6e843901aa8a02bc4a0bd214e

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3347

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -2
    • +7
    ./visitors/IsomorphismOperatorVisitor.java
  1. … 11 more files in changeset.
[NO ISSUE][COMP][RT] Handle type mismatch in window frame boundaries

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- If window frame boundary is defined as N preceding/following

and the incoming value is not of a numeric or temporal type

then assume that the frame is empty for this value because

its boundaries cannot be computed

- Add tests for NULL/MISSING/complex types for window operator

- Fix typo in the name resolution documentation

Change-Id: I4dc1b010674eb9a8b679039dc68c81163d156956

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3342

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -0
    • +4
    ./visitors/IsomorphismOperatorVisitor.java
    • -2
    • +7
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -2
    • +7
    ./visitors/OperatorDeepCopyVisitor.java
    • -0
    • +6
    ./visitors/SubstituteVariableVisitor.java
  1. … 26 more files in changeset.
[NO ISSUE][FUN] Modify array functions to allow comparing complex

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

This change is to modify the array functions to compare complex

types like arrays and records. The change also includes a small

fix to IsomorphismVariableMappingVisitor where the

NestedTupleSourceOperator visit method would downcast the args

without checking first they are of the same operator types.

- changed test cases

- changed NullMissingTest to pass the args types for functions

that need them.

Change-Id: I416989cf902eda38224a3b00340e478fc4e3a60c

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3313

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

    • -0
    • +3
    ./visitors/IsomorphismVariableMappingVisitor.java
  1. … 108 more files in changeset.
[NO ISSUE] Apply / enforce java import order

The process-sources target will now sort imports as well as

format source code; the source-format job will likewise verify

import order in addition to source code format

Change-Id: I55d976c4df10d9919c6a25683be2a3e3304e65d9

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3288

Integration-Tests: Michael Blow <mblow@apache.org>

Tested-by: Michael Blow <mblow@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

    • -1
    • +0
    ./AbstractOperatorWithNestedPlans.java
  1. … 611 more files in changeset.
[ASTERIXDB-2521][COMP] Add rule to eliminate isomorphic subplans

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Add optimizer rule that finds two isomorphic subplans

and eliminates one of them

Change-Id: I1142ea4805e7508a5d0a778081093504cf4f526a

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3238

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -3
    • +5
    ./visitors/IsomorphismOperatorVisitor.java
  1. … 7 more files in changeset.
[NO ISSUE][RT] Window operator runtime optimization

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Runtime optimization for window operators with accumulating

frames (unbounded preceding to current row or n following)

- Refactor window function properties into generic

builtin function properties

Change-Id: I8d1574defc73076ad960c4067432da29ead160a5

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3151

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

  1. … 30 more files in changeset.
[NO ISSUE][RT] Window operator runtime optimization

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Runtime optimization for window operator with monotonic

frame start expression. In this case continue scanning

from the beginning of the frame that was found in the

previous iteration

- Allow inlining variables into window operator expressions

except PARTITION BY, ORDER BY and frame value expressions

Change-Id: I65bed4092f4fd3622f1525b26ce25e2ac07d7538

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3135

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

  1. … 23 more files in changeset.
[NO ISSUE][OTH] Support log redaction

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Support log redaction.

Change-Id: I602c833ba2a055da8fbe8782ec62be683ff4581b

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3105

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

    • -3
    • +4
    ./visitors/FDsAndEquivClassesVisitor.java
  1. … 28 more files in changeset.
[ASTERIXDB-2505][COMP] Consolidate window operators rule

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Add optimizer rules that merge two window operators into one

- Improve existing optimizer rules to handle window operators

- Add tests for distinct aggregate in window operator

Change-Id: I5d0739d604d09f5445237d4fa3d56a2af8126bd7

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3107

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -33
    • +27
    ./visitors/IsomorphismOperatorVisitor.java
    • -2
    • +15
    ./visitors/IsomorphismVariableMappingVisitor.java
  1. … 51 more files in changeset.
[ASTERIXDB-2488][COMP] Support aggregate window functions

- user model changes: yes

- storage format changes: no

- interface changes: no

Details:

- Implement aggregate window functions:

agg_func() OVER (frame_var AS)? (PARTITION BY ... ORDER BY ... frame_spec)

- Where agg_func is a SQL/SQL++ aggregate function

- Fix percent_rank() to always return 0 for the first tuple

- Fix ntile() to handle NULL argument

- Log query after each rewrite rule in SqlppQueryRewriter

- Implement toString() for ADayTimeDuration, fix it for AYearMonthDuration

- Add seek() method to RunFileReader

Change-Id: If0f71118a04c2dbd3462070673d52e67f076b7e1

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3049

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -0
    • +34
    ./AbstractOperatorWithNestedPlans.java
    • -6
    • +43
    ./visitors/IsomorphismOperatorVisitor.java
    • -2
    • +3
    ./visitors/IsomorphismVariableMappingVisitor.java
    • -1
    • +14
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -6
    • +8
    ./visitors/LogicalPropertiesVisitor.java
    • -6
    • +20
    ./visitors/OperatorDeepCopyVisitor.java
    • -0
    • +5
    ./visitors/ProducedVariableVisitor.java
    • -14
    • +33
    ./visitors/SubstituteVariableVisitor.java
    • -13
    • +31
    ./visitors/UsedVariableVisitor.java
  1. … 842 more files in changeset.
[ASTERIXDB-2466][FUN] Implement window functions

- user model changes: yes

- storage format changes: no

- interface changes: no

Details:

- Implement window functions with SQL syntax:

function() OVER ((PARTITION BY expr1, expr2, ...)? ORDER BY exprA, exprB, ...)

- Where supported functions are:

ROW_NUMBER(), RANK(), DENSE_RANK(), PERCENT_RANK(), NTILE()

Change-Id: Ia28af8773cb11049c38d440c51b9c3cd1ed2bab4

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3002

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

    • -0
    • +118
    ./WindowOperator.java
    • -0
    • +6
    ./visitors/CardinalityInferenceVisitor.java
    • -0
    • +6
    ./visitors/FDsAndEquivClassesVisitor.java
    • -1
    • +27
    ./visitors/IsomorphismOperatorVisitor.java
    • -0
    • +8
    ./visitors/IsomorphismVariableMappingVisitor.java
    • -0
    • +15
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -1
    • +7
    ./visitors/LogicalPropertiesVisitor.java
    • -0
    • +16
    ./visitors/OperatorDeepCopyVisitor.java
    • -0
    • +5
    ./visitors/PrimaryKeyVariablesVisitor.java
    • -0
    • +7
    ./visitors/ProducedVariableVisitor.java
  1. … 153 more files in changeset.
[ASTERIXDB-2286][COMP][FUN][HYR] Parallel Sort Optimization

- user model changes: yes

- storage format changes: no

- interface changes: yes

details:

- new plan for sort operation which includes sampling and

replicating the stream of data to be sorted. Sort-merge connector

is removed from the plan. The sorted result now is in multiple partitions.

- new optimization rule to check whether full parallel sort is applicable.

- new Forward operator to read the replicated sort input stream and

to receive the ouput of the sampling.

- new sequential merge connector to merge a globally ordered result residing

in multiple partitions (in addition to the connector's partition computer).

- "asterix-lang-aql/pom.xml" is changed as a result of refactoring

code related to the range map handling.

- new private sampling function to generate the range map object

(local & global functions) & their type computers.

user model changes:

- new compiler property is added to enable and disable parallel sort.

interface changes:

- "ILogicalOperatorVisitor.java" includes Forward Operator.

- "ITuplePartitionComputer.java" includes initialize() to enable partitioner

to do some initialization. FieldRangePartitionComputerFactory uses it to

pick a range map.

- "ITuplePartitionComputerFactory.java". createPartitioner() is changed to

createPartitioner(IHyracksTaskContext hyracksTaskContext). Context is needed

for transferring the range map throught the context.

Change-Id: I73e128029a46f45e6b68c23dfb9310d5de10582f

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2393

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

    • -0
    • +111
    ./ForwardOperator.java
    • -1
    • +7
    ./visitors/CardinalityInferenceVisitor.java
    • -0
    • +7
    ./visitors/FDsAndEquivClassesVisitor.java
    • -0
    • +13
    ./visitors/IsomorphismOperatorVisitor.java
    • -0
    • +7
    ./visitors/IsomorphismVariableMappingVisitor.java
    • -0
    • +9
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -1
    • +8
    ./visitors/LogicalPropertiesVisitor.java
    • -0
    • +6
    ./visitors/OperatorDeepCopyVisitor.java
    • -1
    • +7
    ./visitors/PrimaryKeyVariablesVisitor.java
    • -1
    • +7
    ./visitors/ProducedVariableVisitor.java
    • -0
    • +9
    ./visitors/SubstituteVariableVisitor.java
    • -27
    • +27
    ./visitors/UsedVariableVisitor.java
  1. … 344 more files in changeset.
[NO ISSUE][COMP][RT] Enable multiway similarity joins

- Enable the FuzzyJoinRule that transforms

a nested-loop-similarity-join plan to a three-stage-similarity join.

- Modify FuzzyJoinRuleCollections.

- Add the ExtractCommonExpressionRule to extract common expressions

in the star-like multiple similarity join substitutions.

- Add the InlineSubplanInputForNestedTupleSourceRule to translate

the generated subplan from the similarity function-derived

substitution into join in case of nested schemas.

- Use similarity-jaccard-prefix to enable the pp+ join strategy.

- Use the right side to build the heavy hash join on

the prefix tokens from both sides.

- Add RemoveAssign/Variables/AggRules to iteratively remove unused

assign/vars once FuzzyJoinRule is applied in each round.

- Add three new optimization cases for multiway similarity joins.

- link-like multiway similarity joins

- star-like multiway similarity joins

- hybrid multiway similarity joins with the both styles of similarity joins.

- Add a check whether a similarity function is on

a select over an existing similarity join.

- Change the inverted-index-based similarity join to the three-stage-similarity join

due to efficiency considerations.

Change-Id: I8736f104905eeda763d39709e002c2b9629278cc

Reviewed-on: https://asterix-gerrit.ics.uci.edu/1076

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Reviewed-by: Taewoo Kim <wangsaeu@gmail.com>

    • -0
    • +64
    ./visitors/IsomorphismUtilities.java
  1. … 260 more files in changeset.
[NO ISSUE][OTH] Fix Job + Algebricks Logging Level

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Move job execution + Algebricks trace logs to trace

log level.

Change-Id: I3a94fb251523ff7056fa4ba7db503c8f49bfbfbb

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2853

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

    • -6
    • +4
    ./visitors/FDsAndEquivClassesVisitor.java
    • -1
    • +1
    ./visitors/LogicalPropertiesVisitor.java
  1. … 13 more files in changeset.
[ASTERIXDB-2429] Fix the upsert of primary key index

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Previously the primary key index is not properly maintained during

upsert. Since there is no secondary key in the primary key index, the

old value would always point to the primary key, which is always equal

to the new value. As a result, the primary key index is nevered

maintainined during upsert.

- This patch fixes this bug with two changes:

First, if there is a primary key index, we would perform upsert anyway

no matter whether old value == new value

Second, use a boolean variable to indicate whether the operation

is upsert or delete since for the primary key index, old value cannot

provide such information.

Change-Id: I925bd42ba67f70e94f5f5bc2d24151c8e2e20baf

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2825

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>

    • -0
    • +15
    ./IndexInsertDeleteUpsertOperator.java
  1. … 19 more files in changeset.
[ASTERIXDB-2380][COMP] Incorrect comparison of exchange operators

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Fix incorrect comparison of exchange operators in IsomorphismOperatorVisitor

Change-Id: Ib9948531cdbed7ecddd9ace1d179c97523dbaec4

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2754

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Taewoo Kim <wangsaeu@gmail.com>

    • -1
    • +1
    ./visitors/IsomorphismOperatorVisitor.java
  1. … 8 more files in changeset.
[ASTERIXDB-2393][COMP][RT] Add source location to error messages

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Add source locations to compiler and runtime error messages

- Add source location enforcement to the test framework

and enable it for SqlppExecutionTest

Change-Id: Ie279ce345d1edcb5dea8e55cdb0233151c7bfd66

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2659

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

    • -3
    • +18
    ./visitors/LogicalExpressionDeepCopyWithNewVariablesVisitor.java
    • -0
    • +8
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
  1. … 678 more files in changeset.
[ASTERIXDB-2344] LIMIT pushdown for primary index

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

-Implement LIMIT pushdown for primary index scan/lookup. In case of

a select operator, we also push the select condition to the priamry

search operator to ensure correctness.

Change-Id: I824fcad79995325e12a1a81d629160025294b915

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2541

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

    • -3
    • +7
    ./visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java
    • -3
    • +9
    ./visitors/OperatorDeepCopyVisitor.java
    • -1
    • +7
    ./visitors/SubstituteVariableVisitor.java
    • -2
    • +16
    ./visitors/UsedVariableVisitor.java
  1. … 48 more files in changeset.
[NO ISSUE][COMP] Check logging level before writing a log message

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Cleanup: Check logging level before writing to the logger

Change-Id: Ib126397c390f0d32436a80a306981106afa2a794

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2543

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

    • -3
    • +5
    ./visitors/FDsAndEquivClassesVisitor.java
    • -1
    • +1
    ./visitors/LogicalPropertiesVisitor.java
  1. … 5 more files in changeset.
[ASTERIXDB-1972][COMP][RT][TX] index-only plan

- user model changes: no

- storage format changes: no

- interface changes: IAccessMethod, ILSMIndexOperationContext,

IIndexAccessor

Details:

- Implement an index-only plan

- Add a SET option that disables the index-only plan

Change-Id: Ifd5c9ab1cf2e4bedb7d8db582441919875e74d51

Reviewed-on: https://asterix-gerrit.ics.uci.edu/1866

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Taewoo Kim <wangsaeu@gmail.com>

  1. … 423 more files in changeset.