[jira] [Resolved] (ASTERIXDB-2999) Fix integer constructors handling of negative double/float numbers

2021-12-14 Thread Dmitry Lychagin (Jira)


 [ 
https://issues.apache.org/jira/browse/ASTERIXDB-2999?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitry Lychagin resolved ASTERIXDB-2999.

Resolution: Fixed

> Fix integer constructors handling of negative double/float numbers
> --
>
> Key: ASTERIXDB-2999
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-2999
> Project: Apache AsterixDB
>  Issue Type: Bug
>  Components: RT - Runtime
>Reporter: Dmitry Lychagin
>Assignee: Dmitry Lychagin
>Priority: Major
>
> Currently bigint() and other integer constructors round down its input 
> double/float number which is not what user might expect for negative values. 
> (i.e currently bigint(-1.1) returns -2, not -1).
> We need to change it to round towards zero instead. (bigint(-1.1) should 
> return -1)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (ASTERIXDB-2999) Fix integer constructors handling of negative double/float numbers

2021-12-14 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/ASTERIXDB-2999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17459502#comment-17459502
 ] 

ASF subversion and git services commented on ASTERIXDB-2999:


Commit 3030acb653b41a52c97a842043e36739f1677554 in asterixdb's branch 
refs/heads/master from Dmitry Lychagin
[ https://gitbox.apache.org/repos/asf?p=asterixdb.git;h=3030acb ]

[ASTERIXDB-2999][RT] Round towards zero when convering floating-point to integer

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Remove use of Math.floor() during floating-point to integer conversion.
  The conversion code now rounds both positivie and negative values towards zero
- Update index selection code to account for this change
- Add SqlppNumericIndexRQGTest to randomly test different combinations
  of indexes on numeric fields

Change-Id: I1c92d6235e16e6c5d9dadd7a09cd9703781eadb6
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14525
Integration-Tests: Jenkins 
Tested-by: Jenkins 
Reviewed-by: Ali Alsuliman 


> Fix integer constructors handling of negative double/float numbers
> --
>
> Key: ASTERIXDB-2999
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-2999
> Project: Apache AsterixDB
>  Issue Type: Bug
>  Components: RT - Runtime
>Reporter: Dmitry Lychagin
>Assignee: Dmitry Lychagin
>Priority: Major
>
> Currently bigint() and other integer constructors round down its input 
> double/float number which is not what user might expect for negative values. 
> (i.e currently bigint(-1.1) returns -2, not -1).
> We need to change it to round towards zero instead. (bigint(-1.1) should 
> return -1)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


Change in asterixdb[master]: [ASTERIXDB-2999][RT] Round towards zero when convering floating-point...

2021-12-14 Thread AsterixDB Code Review
>From Ali Alsuliman :

Ali Alsuliman has posted comments on this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14525 )

Change subject: [ASTERIXDB-2999][RT] Round towards zero when convering 
floating-point to integer
..


Patch Set 3: Code-Review+2


--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14525
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I1c92d6235e16e6c5d9dadd7a09cd9703781eadb6
Gerrit-Change-Number: 14525
Gerrit-PatchSet: 3
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Ali Alsuliman 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-Comment-Date: Tue, 14 Dec 2021 21:27:00 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment


Change in asterixdb[master]: [NO ISSUE][FUN] Code refactoring of StringJsonParseDescriptor

2021-12-14 Thread AsterixDB Code Review
>From Ali Alsuliman :

Ali Alsuliman has submitted this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14423 )

Change subject: [NO ISSUE][FUN] Code refactoring of StringJsonParseDescriptor
..

[NO ISSUE][FUN] Code refactoring of StringJsonParseDescriptor

- user model changes: no
- storage format changes: no
- interface changes: no

Details:

Change-Id: I3e2dbade466d1a534af39d42a0414ba287d31933
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14423
Tested-by: Jenkins 
Reviewed-by: Ali Alsuliman 
Reviewed-by: Dmitry Lychagin 
---
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseDescriptor.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseEval.java
2 files changed, 5 insertions(+), 12 deletions(-)

Approvals:
  Dmitry Lychagin: Looks good to me, approved
  Ali Alsuliman: Looks good to me, but someone else must approve
  Jenkins: Verified
  Anon. E. Moose #1000171:



diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseDescriptor.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseDescriptor.java
index a548fec..4affafe 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseDescriptor.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseDescriptor.java
@@ -23,8 +23,6 @@
 import java.io.IOException;

 import org.apache.asterix.common.annotations.MissingNullInOutFunction;
-import org.apache.asterix.external.parser.JSONDataParser;
-import org.apache.asterix.external.parser.factory.JSONDataParserFactory;
 import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
 import 
org.apache.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -32,7 +30,6 @@
 import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.exceptions.SourceLocation;

@@ -72,15 +69,10 @@
 @Override
 public IScalarEvaluator createScalarEvaluator(IEvaluatorContext ctx) 
throws HyracksDataException {
 try {
-return new StringJsonParseEval(ctx, 
stringEvalFactory.createScalarEvaluator(ctx),
-createParser(ctx.getTaskContext()), sourceLocation);
+return new StringJsonParseEval(ctx, 
stringEvalFactory.createScalarEvaluator(ctx), sourceLocation);
 } catch (IOException e) {
 throw HyracksDataException.create(e);
 }
 }
-
-private JSONDataParser createParser(IHyracksTaskContext ctx) throws 
HyracksDataException {
-return (JSONDataParser) new 
JSONDataParserFactory().createInputStreamParser(ctx, 0);
-}
 }
 }
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseEval.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseEval.java
index 5c15f15..7589e33 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseEval.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/evaluators/StringJsonParseEval.java
@@ -25,6 +25,7 @@

 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.external.parser.JSONDataParser;
+import org.apache.asterix.external.parser.factory.JSONDataParserFactory;
 import org.apache.asterix.om.exceptions.ExceptionUtil;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.runtime.evaluators.functions.PointableHelper;
@@ -52,11 +53,11 @@
 private final ArrayBackedValueStorage resultStorage;
 private final DataOutput out;

-public StringJsonParseEval(IEvaluatorContext ctx, IScalarEvaluator 
inputEval, JSONDataParser parser,
-SourceLocation sourceLocation) throws IOException {
+public StringJsonParseEval(IEvaluatorContext ctx, IScalarEvaluator 
inputEval, SourceLocation sourceLocation)
+throws IOException {
 this.ctx = ctx;
 this.inputEval = inputEval;
-this.parser = parser;
+this.parser = (JSONDataParser) new 
JSONDataParserFactory().createInputStreamParser(ctx.getTaskContext(), 0);
 this.sourceLocation = sourceLocation;
 inputVal = new