Clone Tools
  • last updated 12 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
[ASTERIXDB-2634][COMP][RT] String functions to return NULL on mismatch

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Make string functions return NULL on mismatch instead of raising

an exception and issue a warning.

- consolitated ExceptionUtil from org.apache.asterix.runtime.exceptions

into org.apache.asterix.om.exceptions.

- AbstractStringTypeComputer does not check arguments type now

and does not throw mismatch exception.

Change-Id: I51db8ae6ba301757c45c41cfd02bd2b083436970

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

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

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

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

    • -13
    • +5
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
    • -3
    • +6
    ./evaluators/functions/AbstractUnaryStringStringEval.java
    • -21
    • +21
    ./evaluators/functions/StringToCodePointDescriptor.java
  1. … 30 more files in changeset.
[ASTERIXDB-2532][RT] per-operator profiling

Enables profiling in queries at the operator-level when the analyze

variable is set in a query.

Change-Id: Ie16f3901ae5b32920d8552d5fd1ec8bb6e2ec8ae

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

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. … 60 more files in changeset.
[ASTERIXDB-2633][FUN] Fix LIKE to regex translation

- user model changes: no

- storage format changes: no

- interface changes: no

Change-Id: I6138f62fdcd60bcc641f662d1fdb05b46dafbebf

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

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

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

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

  1. … 4 more files in changeset.
[ASTERIXDB-2631][COMP][RT] Limit number of reported warnings

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Limit number of reported warnings.

- added a new compiler property "COMPILER.RUNTIME.WARNINGS"

with default value set to 0.

- updated Stat class to have a field for the count of runtime

warnings.

- updated few classes to propagate the warnings limit number

to Hyracks Task class.

- added new Option to parse unsigned long values.

- TaskProfile has a field for the count.

- updated TestExecutor to allow specifying parameters in

the body of the POST method.

Change-Id: Ie8756f1b9dcb7bbce92bd77692490fbada9a2482

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

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

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

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

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

    • -4
    • +10
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
  1. … 51 more files in changeset.
[ASTERIXDB-2625][OTH] Proper error message for invalid uuid

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Returns a proper message for invalid uuid. (incorrect uuid

length)

- Add a setter to allow setting the SourceLocation to an

already created exception.

Change-Id: I2cd836afcb35955e23e6cba7da5e17917d0705b0

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

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: Murtadha Hubail <mhubail@apache.org>

    • -14
    • +4
    ./evaluators/constructors/AUUIDFromStringConstructorDescriptor.java
  1. … 13 more files in changeset.
[NO ISSUE][COMP] Meta() after group by

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Using meta() after group-by requires meta() be assigned to

a variable in a LET clause to expose meta().

- added source location to IFunctionManager.lookupFunction()

- added test cases

Change-Id: I2b173e23352fa80ef57154f08910586c6ee196b8

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

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>

  1. … 11 more files in changeset.
[ASTERIXDB-2619][FUN] Add extra test cases for bitwise functions

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Added test cases based on reading data from dataset to ensure

the function performs properly on subsequent calls, and ensure

it works properly if it doesn't go through the constant folding

rule.

- Fixed an issue in the bitcount function which was resulting in

Serialization Exception when calling the function with fields

rather than constants.

- Fixed an issue with bittest and isbitset which was resulting in

wrong value in some cases due to not reseting the monitoring of

allSet check flag.

Change-Id: Ie1d8e4f8594843f98e7a1cf8a2da4b0106597ae8

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

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: Hussain Towaileb <hussainht@gmail.com>

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

  1. … 62 more files in changeset.
[ASTERIXDB-2615][*DB] Enable constant folding rule to determine when to fold

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Currently, some functions are excluded from being evaluated at compile time in

constant folding rule. Those functions are maintained in a set. The reason for

excluding them is because they can produce records/lists in their "open" format

and constant folding them will make them "closed" which would lead to incorrect

results. Any time a new function is implemented, the developer would have to pay

attention and add their functions if they should be excluded, too.

The exclusion set should be removed. The constant folding rule should determine

from the output type of the function whether it can/should be folded or not.

- fixed an issue with StaticTypeCastUtil where it would not open up a field

when that field's value is a function call.

- modified casting items of lists to avoid casting open the item when it is

already in the opened up format.

- modified the type computer of object_remove_fields to handle constant

arguments (the 2nd argument which is the name of the fields) since the

argument can be constant folded now.

- modified field-access-by-index to handle evaluating it at compile time

(by constant folding rule) in the case where the object accessed is missing

(or non-object)

Change-Id: I3964aa8accaaae3b4c5c7ddf928e6cbd73d517f6

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

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>

  1. … 48 more files in changeset.
[ASTERIXDB-2603][FUN] Add compile/runtime warnings for bitwise functions

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Added compile/runtime warnings for bitwise functions.

- Added a new error code to represent values out of acceptable

range.

Change-Id: I9ada529d91d8fdc881447e8b4cf17fc8e71aa87f

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

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

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

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

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

Reviewed-by: Hussain Towaileb <hussainht@gmail.com>

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

  1. … 2 more files in changeset.
[ASTERIXDB-2610][RT][*DB] Improve deep comparison runtime

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Avoid data copies during comparison (no visitable pointables).

Allow comparison of non-tagged values to avoid copying the tag

when accessing an array element or record field.

- added TaggedValueReference.

- changed ILogicalBinaryComparator to use TaggedValueReference

instead of IPointable.

- removed numberOfItems() from ListAccessorUtil and used

AOrderedListSerializerDeserializer.getNumberOfItems().

- removed storage & IPointable pools from AbstractAGenericBinaryComparator

& LogicalComplexBinaryComparator and used TaggedValueReference pool.

- removed compareNumbers() from ComparatorUtil since IPointable's

have been replaced with TaggedValueReference.

- adapted record comparison logic in LogicalComplexBinaryComparator

to match the logic in the physical comparator.

Change-Id: Id9ece93c704f566d7bdb7fd17b1ba92713c917d5

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

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>

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

    • -1
    • +14
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
  1. … 18 more files in changeset.
[NO ISSUE][COMP] Support runtime warnings during constant folding

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Add IWarningCollector accessor to IEvaluatorContext

- Provide compiler's warning collector to function evaluators

during constant folding, so they can emit warnings

Change-Id: I61dd53adfbcad2f8479333579185258876f074e9

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

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>

    • -2
    • +2
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
  1. … 9 more files in changeset.
[ASTERIXDB-2608] Don't use varargs when args number is known

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Updated some type computers to not check the passed

number of arguments, they're known.

- Updated tests to not add exception list for some

type computers, the tests are generic.

- Functions don't check the max number of args passed,

it's either variable or it's known.

- Removed test cases that pass 1-2 variables and fail,

the updated functions now can't be called unless the

proper number of variables is passed (not varargs anymore).

Change-Id: I8e10150bf48736a3b4eb845f649181cc1436cd0e

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

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: Hussain Towaileb <hussainht@gmail.com>

    • -0
    • +161
    ./evaluators/functions/ArrayRangeEvaluator.java
    • -0
    • +55
    ./evaluators/functions/ArrayRangeWithStepDescriptor.java
    • -0
    • +55
    ./evaluators/functions/ArrayRangeWithoutStepDescriptor.java
    • -237
    • +0
    ./evaluators/functions/ArrayReplaceDescriptor.java
    • -0
    • +208
    ./evaluators/functions/ArrayReplaceEvaluator.java
    • -0
    • +63
    ./evaluators/functions/ArrayReplaceWithMaximumDescriptor.java
    • -0
    • +63
    ./evaluators/functions/ArrayReplaceWithoutMaximumDescriptor.java
  1. … 13 more files in changeset.
[NO ISSUE][FUN] Introduce IEvaluatorContext

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Introduce IEvaluatorContext - a context for evaluators

that is available both at runtime and during constant

folding at compile time

- IEvaluatorContext provides access to IHyracksTaskContext

which is only available at runtime. At compile time this

accessor returns null

- Instantiate evaluators with IEvaluatorContext

instead of IHyracksTaskContext

Change-Id: Iff90c7739e46d6602fcd0609e67f6a8cd9714ca5

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

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: Till Westmann <tillw@apache.org>

    • -2
    • +2
    ./aggregates/collections/ListifyAggregateFunctionEvalFactory.java
    • -3
    • +3
    ./aggregates/scalar/AbstractScalarAggregateDescriptor.java
    • -2
    • +2
    ./aggregates/scalar/AbstractScalarDistinctAggregateDescriptor.java
    • -2
    • +2
    ./aggregates/scalar/GenericScalarAggregateFunction.java
    • -2
    • +2
    ./aggregates/scalar/GenericScalarDistinctAggregateFunction.java
    • -2
    • +2
    ./aggregates/serializable/std/AbstractSerializableCountAggregateFunction.java
    • -2
    • +2
    ./aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
  1. … 675 more files in changeset.
[ASTERIXDB-2575][RT][FUN] Remove usages of ComparisonHelper

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Remove usages of ComparisonHelper and switch to logical or physical

comparators.

- updated RecordReplace test cases that used to throw an exception

when comparing complex types.

- cleaned up interval classes.

- fixed getStartOffset() in AIntervalPointable.

- removed ComparisonHelper

Change-Id: Ib2a05f35c752e1d2ecfdbabbf5d303ea73c7c9db

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

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>

    • -121
    • +131
    ./evaluators/functions/temporal/IntervalLogic.java
  1. … 10 more files in changeset.
[NO ISSUE][COMP] Add support for compiler warnings

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Add support for compiler warnings during parsing,

AST rewriting and query optimization phases

- SQL++ parser emits warnings for unknown hints in

relational expression, between expression,

groupby clause and function call.

- Optimizer emits warning if hash group by hint cannot

be applied because there's no serializable aggregate

- Added testcases for these new warnings

Change-Id: Ic3c1e98c183cd214eea3e4fee24b2b7c46366b52

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

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: Murtadha Hubail <mhubail@apache.org>

    • -1
    • +1
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
  1. … 38 more files in changeset.
[ASTERIXDB-2598][RT] Add Support For Runtime Warnings

- user model changes: yes

- storage format changes: no

- interface changes: yes

Details:

- Add the ability to add runtime warnings per task

and return the generated warnings as part of the

task profile on task completion.

- On successful job completion, aggregate warnings

from all task profiles of a job.

- Return the generated warnings in the query service

response as an array of "warnings" each with a code,

which is currently hard-coded to 1, and a message.

- Fix propagating source location to scalar aggregate

functions.

- Add a flag in test cases definition to indicate whether

or not to check for expected warnings and default it to

false.

- Generate warnings when min/max functions encounter

incomparable type or unsupported input.

- Add support in test framework to extract warnings

along with extracting the result field.

- Add support in test framework to validate generated

and expected warnings.

- Add test cases for min/max generated warnings.

Change-Id: I52fa5b807799487d62e67a8861068e1547aa629a

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

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

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

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

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

    • -0
    • +7
    ./aggregates/scalar/AbstractScalarAggregateDescriptor.java
    • -10
    • +20
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
  1. … 32 more files in changeset.
[NO ISSUE][FUN] round() remove unnecessary Math.abs()

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Removed unnecessary Math.abs().

Change-Id: Ib7409faa9b3b172124f5e283c668027d52ae63d4

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

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: Hussain Towaileb <hussainht@gmail.com>

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

[ASTERIXDB-2584][FUN] Support rounding digit for round()

- user model changes: yes

- user can pass optional 2nd argument to round() function

to specify the digit to round to.

- storage format changes: no

- interface changes: no

Details:

- Added new descriptor for 2-arguments version of round().

- Converted evaluator class to named class, now used by both

round() descriptors.

- Added test cases for 2-arguments version and invalid cases.

Change-Id: Ibdde2745e8bc440556e45ed07262eb33327f842b

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

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: Hussain Towaileb <hussainht@gmail.com>

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

    • -106
    • +2
    ./evaluators/functions/NumericRoundDescriptor.java
    • -0
    • +255
    ./evaluators/functions/NumericRoundEvaluator.java
    • -0
    • +59
    ./evaluators/functions/NumericRoundWithRoundDigitDescriptor.java
  1. … 17 more files in changeset.
[ASTERIXDB-2458][COMP] Fix min/max functions with group by

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

In a sort-group-by operator, an aggregate function has a merging

aggregate function that will be used when merging the run files

if they were generated. The merging aggregate function of the local

min/max aggregate function should be different from the merging

aggregate function of the global min/max. For local min/max, the

merging aggregate function should propagate system_null if the

aggregation is system_null. Also, the global min/max should handle

finishPartial() different from finish(). finishPartial()

should not output NULL if the aggregation is system_null since the

aggregation is still going on.

- added functions to be intermediate steps for local aggregation.

- implemented logic for finishPartial()

- added test cases for strict_min/max with group by

Change-Id: Ie0551b091b9adbbbd51158dbd36124a7184bdce0

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

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

Sonar-Qube: 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>

    • -10
    • +15
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
    • -0
    • +56
    ./aggregates/std/IntermediateMaxAggregateDescriptor.java
    • -0
    • +56
    ./aggregates/std/IntermediateMinAggregateDescriptor.java
    • -0
    • +56
    ./aggregates/std/IntermediateSqlMaxAggregateDescriptor.java
    • -0
    • +56
    ./aggregates/std/IntermediateSqlMinAggregateDescriptor.java
    • -1
    • +1
    ./aggregates/std/MinMaxAggregateFunction.java
    • -5
    • +2
    ./aggregates/std/SqlMinMaxAggregateFunction.java
  1. … 40 more files in changeset.
[ASTERIXDB-2574][COMP] Fix min/max functions

- user model changes: no

- storage format changes: no

- interface changes: no

This change is mainly for 2 things. The first thing is to not throw

an exception when the type of the aggregated field is invalid for min/max

(e.g. record or rectange) or min/max get incompatible data like string

and int. The result in this case would be NULL. The second thing is to

enable comparing ARRAYs correctly by using logical comparison. When

a partition runs into type invalidity, it will output NULL. The global

aggregator interprets NULL received from a partition as type invalidity

and outputs NULL as the final result. Both SQL and SQL++ will do that.

Special treatment is needed for scalar and distinct version of SQL since

SQL min/max ignores NULL values and continue aggregation and the scalar

and distinct version of SQL are normally setup as a global aggregator

since they behave like the global aggregator in a two-step aggregation.

Currently, there is only a local min and max functions. The other

min/max functions are used for everything, the global function of

two-step aggregation, and for scalar and distinct min/max. In order to

differentiate, a global min/max functions are added that will be used

for the two-step aggregation.

Details:

- fixed listify to open up elements when adding them to the collection

and the collection item type is of type ANY and changed the type inferer

of listify to enable that.

- fixed AbstractCollectionType to make sure itemType is never null.

- changed MinMaxAggTypeComputer to not throw an exception but return

NULL for invalid types.

- changed min/max descriptors to implement inferer to propagate the

type of the field and pass that when getting a comparator.

- switched min/max comparison to the logical comparison.

- refactored method inequalityUndefined to be shared by logical comparison

and min/max functions.

- added global max/min functions to enable differentiating between

scalar min/max, distinct min/max and two-step min/max (global & local).

- code clean-up for LogicalScalarBinaryComparator; created two INSTANCES

and re-used.

Change-Id: I1231cfe558099d167bae0b2fa7fc4879b756baf0

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

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>

    • -0
    • +10
    ./aggregates/base/AbstractAggregateFunctionDynamicDescriptor.java
    • -5
    • +20
    ./aggregates/collections/ListifyAggregateFunctionEvalFactory.java
    • -0
    • +9
    ./aggregates/scalar/AbstractScalarAggregateDescriptor.java
    • -9
    • +0
    ./aggregates/scalar/AbstractScalarDistinctAggregateDescriptor.java
    • -1
    • +1
    ./aggregates/scalar/ScalarArrayAggAggregateDescriptor.java
    • -1
    • +1
    ./aggregates/scalar/ScalarArrayAggDistinctAggregateDescriptor.java
    • -4
    • +9
    ./aggregates/scalar/ScalarMaxAggregateDescriptor.java
    • -3
    • +7
    ./aggregates/scalar/ScalarMaxDistinctAggregateDescriptor.java
    • -4
    • +9
    ./aggregates/scalar/ScalarMinAggregateDescriptor.java
    • -3
    • +7
    ./aggregates/scalar/ScalarMinDistinctAggregateDescriptor.java
    • -5
    • +11
    ./aggregates/scalar/ScalarSqlMaxAggregateDescriptor.java
    • -4
    • +8
    ./aggregates/scalar/ScalarSqlMaxDistinctAggregateDescriptor.java
    • -4
    • +10
    ./aggregates/scalar/ScalarSqlMinAggregateDescriptor.java
    • -3
    • +7
    ./aggregates/scalar/ScalarSqlMinDistinctAggregateDescriptor.java
  1. … 137 more files in changeset.
[NO ISSUE][FUN] Remove unnecessary inner classes

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Remove unnecessary inner classes. Use the evaluator

factories length to check if the end position argument

is passed.

Change-Id: I5cc8c57888e62b26684082dd07a4314b45f9fa7f

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

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

Sonar-Qube: 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>

    • -320
    • +0
    ./evaluators/functions/AbstractArraySliceEval.java
    • -0
    • +317
    ./evaluators/functions/ArraySliceEvaluator.java
    • -18
    • +1
    ./evaluators/functions/ArraySliceWithEndPositionDescriptor.java
    • -17
    • +1
    ./evaluators/functions/ArraySliceWithoutEndPositionDescriptor.java
[ASTERIXDB-2562][FUN] Add support for bitwise functions

- user model changes: yes

Added AND, OR, XOR, NOT, SET, CLEAR, SHIFT, TEST, ISSET

and COUNT bitwise functions.

- storage format changes: no

- interface changes: no

Details:

- Introduced the AND, OR, XOR, NOT, SET, CLEAR, SHIFT, TEST, ISSET

and COUNT bitwise functions.

- Added test cases.

Change-Id: I70a6376d6ca12da55eeff88fa0b1c85f970ef8e6

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

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>

    • -0
    • +142
    ./evaluators/functions/bitwise/AbstractBitMultipleValuesEvaluator.java
    • -0
    • +92
    ./evaluators/functions/bitwise/AbstractBitSingleValueEvaluator.java
    • -0
    • +227
    ./evaluators/functions/bitwise/AbstractBitValuePositionEvaluator.java
    • -0
    • +59
    ./evaluators/functions/bitwise/BitAndDescriptor.java
    • -0
    • +59
    ./evaluators/functions/bitwise/BitClearDescriptor.java
    • -0
    • +76
    ./evaluators/functions/bitwise/BitCountDescriptor.java
    • -0
    • +75
    ./evaluators/functions/bitwise/BitNotDescriptor.java
    • -0
    • +59
    ./evaluators/functions/bitwise/BitOrDescriptor.java
    • -0
    • +59
    ./evaluators/functions/bitwise/BitSetDescriptor.java
    • -0
    • +53
    ./evaluators/functions/bitwise/BitShiftWithRotateFlagDescriptor.java
    • -0
    • +53
    ./evaluators/functions/bitwise/BitShiftWithoutRotateFlagDescriptor.java
    • -0
    • +53
    ./evaluators/functions/bitwise/BitTestWithAllFlagDescriptor.java
    • -0
    • +53
    ./evaluators/functions/bitwise/BitTestWithoutAllFlagDescriptor.java
    • -0
    • +171
    ./evaluators/functions/bitwise/BitValueCountFlagEvaluator.java
  1. … 52 more files in changeset.
[ASTERIXDB-2535][COMP] Fix uuid present in insert/upsert statement

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Added a new record merge function, extending the old one, to handle

the merge of duplicate fields.

- Updated the record merge type computer to handle the merge of

duplicate fields properly at compile time.

- Added a new record merge descriptor and evaluator, extending

the old one, to handle the merge of duplicate fields properly

at runtime.

- Updated IntroduceAutogenerateIDRule to use the new record merge

function.

- Added test cases to test the newly added function for insert

and upsert statements.

Change-Id: I22100d3ff29864b8bfd54b0decb183e5056fdb4a

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

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

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

Reviewed-by: Hussain Towaileb <hussainht@gmail.com>

    • -0
    • +96
    ./evaluators/functions/records/RecordMergeIgnoreDuplicatesDescriptor.java
  1. … 64 more files in changeset.
[NO ISSUE][OTH] Codegen clean up and plugin removal

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Remove the codegen related files.

- Remove the codegen plugin.

- Remove the codegen plugin dependency from pom files.

Change-Id: I2c17f9f3f0c73f2ec3048a39da3cbbdd5f24e816

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

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

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

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

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

Reviewed-by: Hussain Towaileb <hussainht@gmail.com>

    • -29
    • +0
    ./functions/FunctionCollection.java
  1. … 16 more files in changeset.
[NO ISSUE][*DB][CLUS] Add support for a rebalance required cluster state

Allow extensions to mandate that a rebalance is required in order for

the cluster to go active

Change-Id: I863f8bf3fe1ce8d59522c9a28a1283006ffa414c

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

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: Murtadha Hubail <mhubail@apache.org>

    • -20
    • +38
    ./utils/ClusterStateManager.java
  1. … 2 more files in changeset.
[ASTERIXDB-2564][RT] Too many objects created in min() and max()

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

During min() and max() aggregation, the functions keep track of

the aggregation type in order to handle heterogeneous lists.

It promotes the aggregation type if needed (e.g. encountered double).

Don't switch to new aggregation type and create a new comparator

when the new input value type is the same as the previously

aggregated values. That is because canPromote(agg_type, new_val_type)

will always return true for same types.

Change-Id: I0bb9f0715985ae555de00bbf3173c80371d8968b

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

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

Sonar-Qube: 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>

    • -60
    • +43
    ./aggregates/std/AbstractMinMaxAggregateFunction.java
[NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function

- user model changes: yes

- storage format changes: no

- interface changes: no

Details:

- Implement support for ARRAY_AGG() aggregate function.

- Add new testcases and update documentation

- Add AbstractScalarDistinctAggregateDescriptor.createDescriptorFactory()

to uniformly set required type inferer for all distinct scalar aggregates

- Propagate correct item type to GenericScalarDistinctAggregateFunction

Change-Id: I704e031a1252493e83ad8d45c38b75e0b15c1896

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

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
    • +8
    ./aggregates/scalar/AbstractScalarAggregateDescriptor.java
    • -3
    • +12
    ./aggregates/scalar/AbstractScalarDistinctAggregateDescriptor.java
    • -0
    • +54
    ./aggregates/scalar/ScalarArrayAggAggregateDescriptor.java
    • -0
    • +50
    ./aggregates/scalar/ScalarArrayAggDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarAvgDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarCountDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarKurtosisDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarMaxDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarMinDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarSkewnessDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarSqlAvgDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarSqlCountDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarSqlKurtosisDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarSqlMaxDistinctAggregateDescriptor.java
    • -4
    • +2
    ./aggregates/scalar/ScalarSqlMinDistinctAggregateDescriptor.java
  1. … 33 more files in changeset.
[NO ISSUE][CONF] Add compilation provider to NC application context

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Create NCExtensionManager in NCApplication instead of

NCAppRuntimeContext (aligned with how CCApplication creates

CCExtensionManager)

- Pass extension manager to application context via constructor

instead of setter method (for both CC and NC contexts)

- Move getExtensionManager() from ICcApplicationContext

to IApplicationContext, so it's available in NC application context

- Add compilation provider to NC application context

(NCExtensionManager.getCompilationProvider())

- Add compilation provider to NCQueryServiceServlet constructor

Change-Id: Ibb4dc6d8dbc00c8a701fddb1a3205d1070078cb4

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

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: Till Westmann <tillw@apache.org>

  1. … 7 more files in changeset.
[NO ISSUE][OTR] GlobalConfig Cleanup

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Remove usage of DEBUG flag in GlobalConfig.

- Remove unused methods/constants in GlobalConfig.

- Move storage constants from GlobalConfig to StorageConstants.

Change-Id: Ie59a646d7d2eedaf1360c97c355f827d80917adf

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

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>

    • -4
    • +0
    ./aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
    • -4
    • +0
    ./aggregates/std/AbstractAvgAggregateFunction.java
    • -4
    • +0
    ./aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java
    • -5
    • +0
    ./aggregates/std/AbstractSumAggregateFunction.java
  1. … 8 more files in changeset.
[NO ISSUE] Introduce MissingNullInOutFunction annotation

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- This annotation is for functions that respect the missing/null in ->

missing/null out behavior.

- Removed all the hardcoded functions inside the NullMissingTest and

ExceptionIT test classes.

- Functions annotated with the MissingNullInOutFunction are

automatically included in the NullMissingTest and ExceptionIT tests.

- Renamed ExceptionIT class to NullMissingExceptionTest.

- Moved NullMissingTest and NullMissingExceptionTest to their

appropriate packages to read the Logger config properly.

Change-Id: I253373ae4c8e23d9f5ed38f5fbbdefe9680e04b4

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

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: Murtadha Hubail <mhubail@apache.org>

    • -0
    • +2
    ./evaluators/accessors/LineRectanglePolygonAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalEndDateAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalEndDatetimeAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalEndTimeAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalStartAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalStartDateAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalStartDatetimeAccessor.java
    • -0
    • +2
    ./evaluators/accessors/TemporalIntervalStartTimeAccessor.java
  1. … 258 more files in changeset.