You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2019/12/30 04:50:55 UTC
[asterixdb] branch master updated (952507c -> 4ffa34b)
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git.
from 952507c [ASTERIXDB-2687][RT] Issue a warning when incomparable types are compared
new 66aaf41 [ASTERIXDB-2686][RT] Delete run files eagerly
new 5f18a7e Merge branch 'gerrit/stabilization-f69489' into 'gerrit/mad-hatter'
new 672a36b [ASTERIXDB-2686][RT] Run files are not removed on time
new ebef3b6 [NO ISSUE][COMP] Fix incorrect result of NTH_VALUE() FROM LAST
new af44111 [NO ISSUE] Address serialVersionUID issues
new 4ffa34b Merge branch 'gerrit/mad-hatter'
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../asterix/translator/IStatementExecutor.java | 2 +
.../SqlppExpressionToPlanTranslator.java | 28 ++++++++++-
.../apache/asterix/api/common/ResultMetadata.java | 1 +
.../asterix/app/result/fields/ProfilePrinter.java | 1 +
.../join-ASTERIXDB-2686.1.ddl.sqlpp | 16 ++++---
.../join-ASTERIXDB-2686.2.update.sqlpp | 11 ++---
.../join-ASTERIXDB-2686.3.query.sqlpp | 10 ++--
.../join-ASTERIXDB-2686.4.ddl.sqlpp} | 0
.../window/nth_value_01/nth_value_01.6.query.sqlpp | 52 ++++++++++++++++++++
.../window/nth_value_01/nth_value_01.7.query.sqlpp | 55 ++++++++++++++++++++++
.../window/nth_value_01/nth_value_01.8.query.sqlpp | 47 ++++++++++++++++++
.../window/nth_value_01/nth_value_01.9.query.sqlpp | 47 ++++++++++++++++++
.../join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm | 1 +
.../results/window/nth_value_01/nth_value_01.6.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.7.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.8.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.9.adm | 10 ++++
.../test/resources/runtimets/testsuite_sqlpp.xml | 5 ++
.../reader/http/HttpServerRecordReaderFactory.java | 1 +
.../asterix/lang/sqlpp/parser/SqlppToken.java | 1 +
.../apache/asterix/metadata/RMIClientFactory.java | 1 +
.../functions/bitwise/BitAndDescriptor.java | 1 +
.../functions/bitwise/BitClearDescriptor.java | 1 +
.../functions/bitwise/BitCountDescriptor.java | 1 +
.../functions/bitwise/BitNotDescriptor.java | 1 +
.../functions/bitwise/BitOrDescriptor.java | 1 +
.../functions/bitwise/BitSetDescriptor.java | 1 +
.../bitwise/BitShiftWithRotateFlagDescriptor.java | 1 +
.../BitShiftWithoutRotateFlagDescriptor.java | 1 +
.../bitwise/BitTestWithAllFlagDescriptor.java | 1 +
.../bitwise/BitTestWithoutAllFlagDescriptor.java | 1 +
.../functions/bitwise/BitXorDescriptor.java | 1 +
.../bitwise/IsBitSetWithAllFlagDescriptor.java | 1 +
.../bitwise/IsBitSetWithoutAllFlagDescriptor.java | 1 +
.../prettyprint/AlgebricksStringBuilderWriter.java | 1 +
.../operators/win/WindowPartitionWriter.java | 2 +-
.../hyracks/api/io/IWorkspaceFileFactory.java | 16 +++++++
.../ExternalGroupWriteOperatorNodePushable.java | 3 +-
.../OptimizedHybridHashJoinOperatorDescriptor.java | 18 +++++++
.../std/sort/AbstractExternalSortRunMerger.java | 2 +-
40 files changed, 351 insertions(+), 23 deletions(-)
copy hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java => asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.ddl.sqlpp (68%)
copy hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java => asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.2.update.sqlpp (70%)
copy hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java => asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.3.query.sqlpp (70%)
copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{warnings/warnings-limit/warnings-limit.09.ddl.sqlpp => misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.4.ddl.sqlpp} (100%)
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.6.query.sqlpp
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.7.query.sqlpp
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.8.query.sqlpp
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.9.query.sqlpp
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.6.adm
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.7.adm
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.8.adm
create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.9.adm
[asterixdb] 06/06: Merge branch 'gerrit/mad-hatter'
Posted by mb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 4ffa34be9cd9295b4330b0d4f1b7b7d1e35bbe84
Merge: 952507c af44111
Author: Michael Blow <mb...@apache.org>
AuthorDate: Sun Dec 29 12:47:59 2019 -0500
Merge branch 'gerrit/mad-hatter'
Change-Id: Ie6c8e1f55ae3f1a8efec8f207813811d9ac09a2c
.../asterix/translator/IStatementExecutor.java | 2 +
.../SqlppExpressionToPlanTranslator.java | 28 ++++++++++-
.../apache/asterix/api/common/ResultMetadata.java | 1 +
.../asterix/app/result/fields/ProfilePrinter.java | 1 +
.../join-ASTERIXDB-2686.1.ddl.sqlpp | 16 ++++---
.../join-ASTERIXDB-2686.2.update.sqlpp | 11 ++---
.../join-ASTERIXDB-2686.3.query.sqlpp | 10 ++--
.../join-ASTERIXDB-2686.4.ddl.sqlpp | 9 +---
.../window/nth_value_01/nth_value_01.6.query.sqlpp | 52 ++++++++++++++++++++
.../window/nth_value_01/nth_value_01.7.query.sqlpp | 55 ++++++++++++++++++++++
.../window/nth_value_01/nth_value_01.8.query.sqlpp | 47 ++++++++++++++++++
.../window/nth_value_01/nth_value_01.9.query.sqlpp | 47 ++++++++++++++++++
.../join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm | 1 +
.../results/window/nth_value_01/nth_value_01.6.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.7.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.8.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.9.adm | 10 ++++
.../test/resources/runtimets/testsuite_sqlpp.xml | 5 ++
.../reader/http/HttpServerRecordReaderFactory.java | 1 +
.../asterix/lang/sqlpp/parser/SqlppToken.java | 1 +
.../apache/asterix/metadata/RMIClientFactory.java | 1 +
.../functions/bitwise/BitAndDescriptor.java | 1 +
.../functions/bitwise/BitClearDescriptor.java | 1 +
.../functions/bitwise/BitCountDescriptor.java | 1 +
.../functions/bitwise/BitNotDescriptor.java | 1 +
.../functions/bitwise/BitOrDescriptor.java | 1 +
.../functions/bitwise/BitSetDescriptor.java | 1 +
.../bitwise/BitShiftWithRotateFlagDescriptor.java | 1 +
.../BitShiftWithoutRotateFlagDescriptor.java | 1 +
.../bitwise/BitTestWithAllFlagDescriptor.java | 1 +
.../bitwise/BitTestWithoutAllFlagDescriptor.java | 1 +
.../functions/bitwise/BitXorDescriptor.java | 1 +
.../bitwise/IsBitSetWithAllFlagDescriptor.java | 1 +
.../bitwise/IsBitSetWithoutAllFlagDescriptor.java | 1 +
.../prettyprint/AlgebricksStringBuilderWriter.java | 1 +
.../operators/win/WindowPartitionWriter.java | 2 +-
.../hyracks/api/io/IWorkspaceFileFactory.java | 16 +++++++
.../ExternalGroupWriteOperatorNodePushable.java | 3 +-
.../OptimizedHybridHashJoinOperatorDescriptor.java | 18 +++++++
.../std/sort/AbstractExternalSortRunMerger.java | 2 +-
40 files changed, 352 insertions(+), 31 deletions(-)
[asterixdb] 03/06: [ASTERIXDB-2686][RT] Run files are not removed
on time
Posted by mb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 672a36b64a0632b72aa4b4df59635ceaa0e340de
Author: Ali Alsuliman <al...@gmail.com>
AuthorDate: Mon Dec 9 11:16:33 2019 -0800
[ASTERIXDB-2686][RT] Run files are not removed on time
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Remove run files on time.
Change-Id: Iacff5cef38cee147712bc1ff947ffa40efb0d162
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/4423
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>
---
.../hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
index b3eb317..6a75f3c 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
@@ -104,7 +104,7 @@ final class WindowPartitionWriter {
copyToFrame(frameBuffer, writerFrame);
} else {
if (fileWriter == null) {
- FileReference file = ctx.getJobletContext().createManagedWorkspaceFile(fileNamePrefix);
+ FileReference file = ctx.createManagedWorkspaceFile(fileNamePrefix);
fileWriter = new RunFileWriter(file, ctx.getIoManager());
fileWriter.open();
}
[asterixdb] 01/06: [ASTERIXDB-2686][RT] Delete run files eagerly
Posted by mb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 66aaf4151cba49a6fdb2c535911f6b75c7083ce3
Author: Ali Alsuliman <al...@gmail.com>
AuthorDate: Tue Dec 10 00:39:06 2019 -0800
[ASTERIXDB-2686][RT] Delete run files eagerly
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Delete run files eagerly.
Change-Id: Idc780b44b0554bf36e2378700aae1b38b8e57353
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/4403
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <ti...@apache.org>
---
.../join-ASTERIXDB-2686.1.ddl.sqlpp | 16 ++++++++++------
.../join-ASTERIXDB-2686.2.update.sqlpp | 11 +++++------
.../join-ASTERIXDB-2686.3.query.sqlpp | 10 ++++------
.../join-ASTERIXDB-2686.4.ddl.sqlpp | 9 +--------
.../misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm | 1 +
.../src/test/resources/runtimets/testsuite_sqlpp.xml | 5 +++++
.../apache/hyracks/api/io/IWorkspaceFileFactory.java | 16 ++++++++++++++++
.../ExternalGroupWriteOperatorNodePushable.java | 3 +--
.../OptimizedHybridHashJoinOperatorDescriptor.java | 18 ++++++++++++++++++
.../std/sort/AbstractExternalSortRunMerger.java | 2 +-
10 files changed, 62 insertions(+), 29 deletions(-)
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.ddl.sqlpp
similarity index 68%
copy from hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.ddl.sqlpp
index 9a35bb8..bafc59a 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.ddl.sqlpp
@@ -16,12 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.hyracks.api.io;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
+/*
+ * Description : Test that temporary run files generated are deleted as soon as possible and query runs fine
+ * Expected Result : Success
+ */
-public interface IWorkspaceFileFactory {
- public FileReference createUnmanagedWorkspaceFile(String prefix) throws HyracksDataException;
+drop dataverse test if exists;
+create dataverse test;
+use test;
- public FileReference createManagedWorkspaceFile(String prefix) throws HyracksDataException;
-}
+create type openType as open {id: uuid};
+create dataset ds1(openType) primary key id autogenerated;
+create dataset ds2(openType) primary key id autogenerated;
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.2.update.sqlpp
similarity index 70%
copy from hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.2.update.sqlpp
index 9a35bb8..9a695ff 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.2.update.sqlpp
@@ -16,12 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.hyracks.api.io;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
+use test;
-public interface IWorkspaceFileFactory {
- public FileReference createUnmanagedWorkspaceFile(String prefix) throws HyracksDataException;
+insert into ds1(from range(0,1000000) as data select value {"f1": 1});
+insert into ds2(from range(0,1000000) as data select value {"f1": 2});
- public FileReference createManagedWorkspaceFile(String prefix) throws HyracksDataException;
-}
+insert into ds1 {"f1": 3};
+insert into ds2 {"f1": 3};
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.3.query.sqlpp
similarity index 70%
copy from hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.3.query.sqlpp
index 9a35bb8..f668266 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.3.query.sqlpp
@@ -16,12 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.hyracks.api.io;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
+use test;
-public interface IWorkspaceFileFactory {
- public FileReference createUnmanagedWorkspaceFile(String prefix) throws HyracksDataException;
+set `compiler.joinmemory` "180KB";
- public FileReference createManagedWorkspaceFile(String prefix) throws HyracksDataException;
-}
+from ds1 join ds2 on ds1.f1 = ds2.f1
+select ds1.f1;
\ No newline at end of file
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.4.ddl.sqlpp
similarity index 70%
copy from hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.4.ddl.sqlpp
index 9a35bb8..548e632 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.4.ddl.sqlpp
@@ -16,12 +16,5 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.hyracks.api.io;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public interface IWorkspaceFileFactory {
- public FileReference createUnmanagedWorkspaceFile(String prefix) throws HyracksDataException;
-
- public FileReference createManagedWorkspaceFile(String prefix) throws HyracksDataException;
-}
+drop dataverse test if exists;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm
new file mode 100644
index 0000000..fca24df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm
@@ -0,0 +1 @@
+{ "f1": 3 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 929ecd5..817bab6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -3801,6 +3801,11 @@
</compilation-unit>
</test-case>
<test-case FilePath="misc">
+ <compilation-unit name="join-ASTERIXDB-2686">
+ <output-dir compare="Text">join-ASTERIXDB-2686</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
<compilation-unit name="poll-dynamic">
<output-dir compare="Text">poll-dynamic</output-dir>
</compilation-unit>
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
index 9a35bb8..6859ec7 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IWorkspaceFileFactory.java
@@ -18,10 +18,26 @@
*/
package org.apache.hyracks.api.io;
+import org.apache.hyracks.api.context.IHyracksJobletContext;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
public interface IWorkspaceFileFactory {
+
+ /**
+ * Creates an unmanaged file. Unmanaged files are not automatically deleted. The caller has to delete them.
+ *
+ * @param prefix a meaningful string to start the file name with.
+ */
public FileReference createUnmanagedWorkspaceFile(String prefix) throws HyracksDataException;
+ /**
+ * Creates a managed file. Managed files are automatically deleted at a certain point. This depends on which
+ * context the file is created in. Files created in the {@link IHyracksJobletContext job context} will be deleted
+ * as soon as the job is done. Files created in the {@link IHyracksTaskContext task context} will be deleted as
+ * soon as the task is done.
+ *
+ * @param prefix a meaningful string to start the file name with.
+ */
public FileReference createManagedWorkspaceFile(String prefix) throws HyracksDataException;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
index 999dbac..e8a1b76 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
@@ -171,8 +171,7 @@ public class ExternalGroupWriteOperatorNodePushable extends AbstractUnaryOutputS
@Override
public RunFileWriter getRunFileWriter() throws HyracksDataException {
- FileReference newRun = ctx.getJobletContext()
- .createManagedWorkspaceFile(ExternalGroupOperatorDescriptor.class.getSimpleName());
+ FileReference newRun = ctx.createManagedWorkspaceFile(ExternalGroupOperatorDescriptor.class.getSimpleName());
return new RunFileWriter(newRun, ctx.getIoManager());
}
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
index e7984d6..6ba03c5 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
@@ -442,6 +442,12 @@ public class OptimizedHybridHashJoinOperatorDescriptor extends AbstractOperatorD
if (isLeftOuter && pReader != null) {
appendNullToProbeTuples(pReader);
}
+ if (bReader != null) {
+ bReader.close();
+ }
+ if (pReader != null) {
+ pReader.close();
+ }
continue;
}
int bSize = state.hybridHJ.getBuildPartitionSizeInTup(pid);
@@ -637,6 +643,12 @@ public class OptimizedHybridHashJoinOperatorDescriptor extends AbstractOperatorD
// For the outer join, we don't reverse the role.
appendNullToProbeTuples(rprfw);
}
+ if (rbrfw != null) {
+ rbrfw.close();
+ }
+ if (rprfw != null) {
+ rprfw.close();
+ }
continue;
}
@@ -661,6 +673,12 @@ public class OptimizedHybridHashJoinOperatorDescriptor extends AbstractOperatorD
// For the outer join, we don't reverse the role.
appendNullToProbeTuples(rprfw);
}
+ if (rbrfw != null) {
+ rbrfw.close();
+ }
+ if (rprfw != null) {
+ rprfw.close();
+ }
continue;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
index 4a77b3c..f3e9320 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
@@ -142,7 +142,7 @@ public abstract class AbstractExternalSortRunMerger {
} finally {
mergeResultWriter.close();
}
- reader = mergeFileWriter.createReader();
+ reader = mergeFileWriter.createDeleteOnCloseReader();
}
runs.add(reader);
[asterixdb] 04/06: [NO ISSUE][COMP] Fix incorrect result of
NTH_VALUE() FROM LAST
Posted by mb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit ebef3b67cf21ec62bdb7d11b73636e99cc3aa4d9
Author: Dmitry Lychagin <dm...@couchbase.com>
AuthorDate: Mon Dec 2 13:30:00 2019 -0800
[NO ISSUE][COMP] Fix incorrect result of NTH_VALUE() FROM LAST
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Fix incorrect result of NTH_VALUE() FROM LAST
with asymmetrical window frame
Change-Id: I7f6a1b358441730cd33a0ff6bde2b34ad5a689a9
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/4283
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mb...@apache.org>
---
.../SqlppExpressionToPlanTranslator.java | 28 ++++++++++-
.../window/nth_value_01/nth_value_01.6.query.sqlpp | 52 ++++++++++++++++++++
.../window/nth_value_01/nth_value_01.7.query.sqlpp | 55 ++++++++++++++++++++++
.../window/nth_value_01/nth_value_01.8.query.sqlpp | 47 ++++++++++++++++++
.../window/nth_value_01/nth_value_01.9.query.sqlpp | 47 ++++++++++++++++++
.../results/window/nth_value_01/nth_value_01.6.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.7.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.8.adm | 10 ++++
.../results/window/nth_value_01/nth_value_01.9.adm | 10 ++++
9 files changed, 268 insertions(+), 1 deletion(-)
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
index 6ec74cf..82dc344 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java
@@ -1239,8 +1239,16 @@ public class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTransla
} else if (BuiltinFunctions.NTH_VALUE_IMPL.equals(fi)) {
nestedAggFunc = BuiltinFunctions.SCALAR_FIRST_ELEMENT;
if (fromLast) {
- // reverse order if FROM LAST modifier is present
+ // if FROM LAST modifier is present
+ // 1. reverse order
reverseOrder(orderExprListOut);
+ // 2. reverse frame specification
+ WindowExpression.FrameBoundaryKind tmpFrameStartKind = winFrameStartKind;
+ Expression tmpFrameStartExpr = winFrameStartExpr;
+ winFrameStartKind = reverseFrameBoundaryKind(winFrameEndKind);
+ winFrameStartExpr = winFrameEndExpr;
+ winFrameEndKind = reverseFrameBoundaryKind(tmpFrameStartKind);
+ winFrameEndExpr = tmpFrameStartExpr;
}
if (respectNulls) {
winFrameMaxOjbects = 1;
@@ -1737,4 +1745,22 @@ public class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTransla
throw new CompilationException(ErrorCode.COMPILATION_ERROR);
}
}
+
+ private WindowExpression.FrameBoundaryKind reverseFrameBoundaryKind(
+ WindowExpression.FrameBoundaryKind frameBoundaryKind) throws CompilationException {
+ switch (frameBoundaryKind) {
+ case UNBOUNDED_PRECEDING:
+ return WindowExpression.FrameBoundaryKind.UNBOUNDED_FOLLOWING;
+ case BOUNDED_PRECEDING:
+ return WindowExpression.FrameBoundaryKind.BOUNDED_FOLLOWING;
+ case CURRENT_ROW:
+ return WindowExpression.FrameBoundaryKind.CURRENT_ROW;
+ case BOUNDED_FOLLOWING:
+ return WindowExpression.FrameBoundaryKind.BOUNDED_PRECEDING;
+ case UNBOUNDED_FOLLOWING:
+ return WindowExpression.FrameBoundaryKind.UNBOUNDED_PRECEDING;
+ default:
+ throw new CompilationException(ErrorCode.COMPILATION_ERROR);
+ }
+ }
}
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.6.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.6.query.sqlpp
new file mode 100644
index 0000000..4656f74
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.6.query.sqlpp
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description : NTH_VALUE() FROM LAST, from unbounded preceding
+ * Expected Res : SUCCESS
+ */
+
+from [
+ { "x": "a", "y": 1, "p": 0 },
+ { "y": 2, "p": 0 },
+ { "x": null, "y": 3, "p": 0 },
+ { "x": "b", "y": 4, "p": 0 },
+ { "x": "c", "y": 5, "p": 0 },
+
+ { "x": "a", "y": 6, "p": 1 },
+ { "x": null, "y": 7, "p": 1 },
+ { "y": 8, "p": 1 },
+ { "x": "b", "y": 9, "p": 1 },
+ { "x": "c", "y": 10, "p": 1 }
+] t
+select
+ //
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between unbounded preceding and 1 preceding)
+ as n_up_1p_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between unbounded preceding and 1 preceding)
+ as n_up_1p_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between unbounded preceding and current row)
+ as n_up_cr_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between unbounded preceding and current row)
+ as n_up_cr_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between unbounded preceding and 1 following)
+ as n_up_1f_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between unbounded preceding and 1 following)
+ as n_up_1f_i,
+ x, y, p
+order by y
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.7.query.sqlpp
new file mode 100644
index 0000000..f03711e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.7.query.sqlpp
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description : NTH_VALUE() FROM LAST, from bounded preceding
+ * Expected Res : SUCCESS
+ */
+
+from [
+ { "x": "a", "y": 1, "p": 0 },
+ { "y": 2, "p": 0 },
+ { "x": null, "y": 3, "p": 0 },
+ { "x": "b", "y": 4, "p": 0 },
+ { "x": "c", "y": 5, "p": 0 },
+
+ { "x": "a", "y": 6, "p": 1 },
+ { "x": null, "y": 7, "p": 1 },
+ { "y": 8, "p": 1 },
+ { "x": "b", "y": 9, "p": 1 },
+ { "x": "c", "y": 10, "p": 1 }
+] t
+select
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between 3 preceding and 1 preceding)
+ as n_3p_1p_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between 3 preceding and 1 preceding)
+ as n_3p_1p_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between 3 preceding and current row)
+ as n_3p_cr_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between 3 preceding and current row)
+ as n_3p_cr_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between 3 preceding and 1 following)
+ as n_3p_1f_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between 3 preceding and 1 following)
+ as n_3p_1f_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between 3 preceding and unbounded following)
+ as n_3p_uf_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between 3 preceding and unbounded following)
+ as n_3p_uf_i,
+ x, y, p
+order by y
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.8.query.sqlpp
new file mode 100644
index 0000000..ec553e5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.8.query.sqlpp
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description : NTH_VALUE() FROM LAST, from current row
+ * Expected Res : SUCCESS
+ */
+
+from [
+ { "x": "a", "y": 1, "p": 0 },
+ { "y": 2, "p": 0 },
+ { "x": null, "y": 3, "p": 0 },
+ { "x": "b", "y": 4, "p": 0 },
+ { "x": "c", "y": 5, "p": 0 },
+
+ { "x": "a", "y": 6, "p": 1 },
+ { "x": null, "y": 7, "p": 1 },
+ { "y": 8, "p": 1 },
+ { "x": "b", "y": 9, "p": 1 },
+ { "x": "c", "y": 10, "p": 1 }
+] t
+select
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between current row and 3 following)
+ as n_cr_3f_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between current row and 3 following)
+ as n_cr_3f_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between current row and unbounded following)
+ as n_cr_uf_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between current row and unbounded following)
+ as n_cr_uf_i,
+ x, y, p
+order by y
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.9.query.sqlpp
new file mode 100644
index 0000000..be7adca
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.9.query.sqlpp
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description : NTH_VALUE() FROM LAST, from bounded following
+ * Expected Res : SUCCESS
+ */
+
+from [
+ { "x": "a", "y": 1, "p": 0 },
+ { "y": 2, "p": 0 },
+ { "x": null, "y": 3, "p": 0 },
+ { "x": "b", "y": 4, "p": 0 },
+ { "x": "c", "y": 5, "p": 0 },
+
+ { "x": "a", "y": 6, "p": 1 },
+ { "x": null, "y": 7, "p": 1 },
+ { "y": 8, "p": 1 },
+ { "x": "b", "y": 9, "p": 1 },
+ { "x": "c", "y": 10, "p": 1 }
+] t
+select
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between 1 following and 3 following)
+ as n_1f_3f_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between 1 following and 3 following)
+ as n_1f_3f_i,
+ nth_value(x, 2) from last respect nulls over (partition by p order by y range between 1 following and unbounded following)
+ as n_1f_uf_r,
+ nth_value(x, 2) from last ignore nulls over (partition by p order by y range between 1 following and unbounded following)
+ as n_1f_uf_i,
+ x, y, p
+order by y
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.6.adm
new file mode 100644
index 0000000..0d6ae8b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.6.adm
@@ -0,0 +1,10 @@
+{ "n_up_1p_r": null, "n_up_1p_i": null, "n_up_cr_r": null, "n_up_cr_i": null, "n_up_1f_r": "a", "n_up_1f_i": null, "x": "a", "y": 1, "p": 0 }
+{ "n_up_1p_r": null, "n_up_1p_i": null, "n_up_cr_r": "a", "n_up_cr_i": null, "n_up_1f_i": null, "y": 2, "p": 0 }
+{ "n_up_1p_r": "a", "n_up_1p_i": null, "n_up_cr_i": null, "n_up_1f_r": null, "n_up_1f_i": "a", "x": null, "y": 3, "p": 0 }
+{ "n_up_1p_i": null, "n_up_cr_r": null, "n_up_cr_i": "a", "n_up_1f_r": "b", "n_up_1f_i": "b", "x": "b", "y": 4, "p": 0 }
+{ "n_up_1p_r": null, "n_up_1p_i": "a", "n_up_cr_r": "b", "n_up_cr_i": "b", "n_up_1f_r": "b", "n_up_1f_i": "b", "x": "c", "y": 5, "p": 0 }
+{ "n_up_1p_r": null, "n_up_1p_i": null, "n_up_cr_r": null, "n_up_cr_i": null, "n_up_1f_r": "a", "n_up_1f_i": null, "x": "a", "y": 6, "p": 1 }
+{ "n_up_1p_r": null, "n_up_1p_i": null, "n_up_cr_r": "a", "n_up_cr_i": null, "n_up_1f_r": null, "n_up_1f_i": null, "x": null, "y": 7, "p": 1 }
+{ "n_up_1p_r": "a", "n_up_1p_i": null, "n_up_cr_r": null, "n_up_cr_i": null, "n_up_1f_i": "a", "y": 8, "p": 1 }
+{ "n_up_1p_r": null, "n_up_1p_i": null, "n_up_cr_i": "a", "n_up_1f_r": "b", "n_up_1f_i": "b", "x": "b", "y": 9, "p": 1 }
+{ "n_up_1p_i": "a", "n_up_cr_r": "b", "n_up_cr_i": "b", "n_up_1f_r": "b", "n_up_1f_i": "b", "x": "c", "y": 10, "p": 1 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.7.adm
new file mode 100644
index 0000000..2f7fdba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.7.adm
@@ -0,0 +1,10 @@
+{ "n_3p_1p_r": null, "n_3p_1p_i": null, "n_3p_cr_r": null, "n_3p_cr_i": null, "n_3p_1f_r": "a", "n_3p_1f_i": null, "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": "a", "y": 1, "p": 0 }
+{ "n_3p_1p_r": null, "n_3p_1p_i": null, "n_3p_cr_r": "a", "n_3p_cr_i": null, "n_3p_1f_i": null, "n_3p_uf_r": "b", "n_3p_uf_i": "b", "y": 2, "p": 0 }
+{ "n_3p_1p_r": "a", "n_3p_1p_i": null, "n_3p_cr_i": null, "n_3p_1f_r": null, "n_3p_1f_i": "a", "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": null, "y": 3, "p": 0 }
+{ "n_3p_1p_i": null, "n_3p_cr_r": null, "n_3p_cr_i": "a", "n_3p_1f_r": "b", "n_3p_1f_i": "b", "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": "b", "y": 4, "p": 0 }
+{ "n_3p_1p_r": null, "n_3p_1p_i": null, "n_3p_cr_r": "b", "n_3p_cr_i": "b", "n_3p_1f_r": "b", "n_3p_1f_i": "b", "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": "c", "y": 5, "p": 0 }
+{ "n_3p_1p_r": null, "n_3p_1p_i": null, "n_3p_cr_r": null, "n_3p_cr_i": null, "n_3p_1f_r": "a", "n_3p_1f_i": null, "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": "a", "y": 6, "p": 1 }
+{ "n_3p_1p_r": null, "n_3p_1p_i": null, "n_3p_cr_r": "a", "n_3p_cr_i": null, "n_3p_1f_r": null, "n_3p_1f_i": null, "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": null, "y": 7, "p": 1 }
+{ "n_3p_1p_r": "a", "n_3p_1p_i": null, "n_3p_cr_r": null, "n_3p_cr_i": null, "n_3p_1f_i": "a", "n_3p_uf_r": "b", "n_3p_uf_i": "b", "y": 8, "p": 1 }
+{ "n_3p_1p_r": null, "n_3p_1p_i": null, "n_3p_cr_i": "a", "n_3p_1f_r": "b", "n_3p_1f_i": "b", "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": "b", "y": 9, "p": 1 }
+{ "n_3p_1p_i": null, "n_3p_cr_r": "b", "n_3p_cr_i": "b", "n_3p_1f_r": "b", "n_3p_1f_i": "b", "n_3p_uf_r": "b", "n_3p_uf_i": "b", "x": "c", "y": 10, "p": 1 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.8.adm
new file mode 100644
index 0000000..74de5a7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.8.adm
@@ -0,0 +1,10 @@
+{ "n_cr_3f_r": null, "n_cr_3f_i": "a", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "x": "a", "y": 1, "p": 0 }
+{ "n_cr_3f_r": "b", "n_cr_3f_i": "b", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "y": 2, "p": 0 }
+{ "n_cr_3f_r": "b", "n_cr_3f_i": "b", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "x": null, "y": 3, "p": 0 }
+{ "n_cr_3f_r": "b", "n_cr_3f_i": "b", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "x": "b", "y": 4, "p": 0 }
+{ "n_cr_3f_r": null, "n_cr_3f_i": null, "n_cr_uf_r": null, "n_cr_uf_i": null, "x": "c", "y": 5, "p": 0 }
+{ "n_cr_3f_i": "a", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "x": "a", "y": 6, "p": 1 }
+{ "n_cr_3f_r": "b", "n_cr_3f_i": "b", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "x": null, "y": 7, "p": 1 }
+{ "n_cr_3f_r": "b", "n_cr_3f_i": "b", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "y": 8, "p": 1 }
+{ "n_cr_3f_r": "b", "n_cr_3f_i": "b", "n_cr_uf_r": "b", "n_cr_uf_i": "b", "x": "b", "y": 9, "p": 1 }
+{ "n_cr_3f_r": null, "n_cr_3f_i": null, "n_cr_uf_r": null, "n_cr_uf_i": null, "x": "c", "y": 10, "p": 1 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.9.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.9.adm
new file mode 100644
index 0000000..8840079
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.9.adm
@@ -0,0 +1,10 @@
+{ "n_1f_3f_r": null, "n_1f_3f_i": null, "n_1f_uf_r": "b", "n_1f_uf_i": "b", "x": "a", "y": 1, "p": 0 }
+{ "n_1f_3f_r": "b", "n_1f_3f_i": "b", "n_1f_uf_r": "b", "n_1f_uf_i": "b", "y": 2, "p": 0 }
+{ "n_1f_3f_r": "b", "n_1f_3f_i": "b", "n_1f_uf_r": "b", "n_1f_uf_i": "b", "x": null, "y": 3, "p": 0 }
+{ "n_1f_3f_r": null, "n_1f_3f_i": null, "n_1f_uf_r": null, "n_1f_uf_i": null, "x": "b", "y": 4, "p": 0 }
+{ "n_1f_3f_r": null, "n_1f_3f_i": null, "n_1f_uf_r": null, "n_1f_uf_i": null, "x": "c", "y": 5, "p": 0 }
+{ "n_1f_3f_i": null, "n_1f_uf_r": "b", "n_1f_uf_i": "b", "x": "a", "y": 6, "p": 1 }
+{ "n_1f_3f_r": "b", "n_1f_3f_i": "b", "n_1f_uf_r": "b", "n_1f_uf_i": "b", "x": null, "y": 7, "p": 1 }
+{ "n_1f_3f_r": "b", "n_1f_3f_i": "b", "n_1f_uf_r": "b", "n_1f_uf_i": "b", "y": 8, "p": 1 }
+{ "n_1f_3f_r": null, "n_1f_3f_i": null, "n_1f_uf_r": null, "n_1f_uf_i": null, "x": "b", "y": 9, "p": 1 }
+{ "n_1f_3f_r": null, "n_1f_3f_i": null, "n_1f_uf_r": null, "n_1f_uf_i": null, "x": "c", "y": 10, "p": 1 }
\ No newline at end of file
[asterixdb] 05/06: [NO ISSUE] Address serialVersionUID issues
Posted by mb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit af44111696e833fec220e2c634879a6811407ef5
Author: Michael Blow <mb...@apache.org>
AuthorDate: Fri Dec 27 12:18:42 2019 -0500
[NO ISSUE] Address serialVersionUID issues
- add missing serialVersionUIDs where applicable
- add @SuppressWarnings("serial") for serializable types which are never
actually serialized
Change-Id: Ic38d33b8020c3261bda4ebb0b273b26c40fef26f
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/4523
Reviewed-by: Michael Blow <mb...@apache.org>
Reviewed-by: Till Westmann <ti...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
.../src/main/java/org/apache/asterix/translator/IStatementExecutor.java | 2 ++
.../src/main/java/org/apache/asterix/api/common/ResultMetadata.java | 1 +
.../main/java/org/apache/asterix/app/result/fields/ProfilePrinter.java | 1 +
.../input/record/reader/http/HttpServerRecordReaderFactory.java | 1 +
.../src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppToken.java | 1 +
.../src/main/java/org/apache/asterix/metadata/RMIClientFactory.java | 1 +
.../asterix/runtime/evaluators/functions/bitwise/BitAndDescriptor.java | 1 +
.../runtime/evaluators/functions/bitwise/BitClearDescriptor.java | 1 +
.../runtime/evaluators/functions/bitwise/BitCountDescriptor.java | 1 +
.../asterix/runtime/evaluators/functions/bitwise/BitNotDescriptor.java | 1 +
.../asterix/runtime/evaluators/functions/bitwise/BitOrDescriptor.java | 1 +
.../asterix/runtime/evaluators/functions/bitwise/BitSetDescriptor.java | 1 +
.../evaluators/functions/bitwise/BitShiftWithRotateFlagDescriptor.java | 1 +
.../functions/bitwise/BitShiftWithoutRotateFlagDescriptor.java | 1 +
.../evaluators/functions/bitwise/BitTestWithAllFlagDescriptor.java | 1 +
.../evaluators/functions/bitwise/BitTestWithoutAllFlagDescriptor.java | 1 +
.../asterix/runtime/evaluators/functions/bitwise/BitXorDescriptor.java | 1 +
.../evaluators/functions/bitwise/IsBitSetWithAllFlagDescriptor.java | 1 +
.../evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java | 1 +
.../core/algebra/prettyprint/AlgebricksStringBuilderWriter.java | 1 +
20 files changed, 21 insertions(+)
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java
index 3fdcc33..e7fec0c 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java
@@ -189,6 +189,8 @@ public interface IStatementExecutor {
}
class Profile implements Serializable {
+ private static final long serialVersionUID = 4813321148252768375L;
+
private transient ObjectNode profile;
public Profile(ObjectNode profile) {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/ResultMetadata.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/ResultMetadata.java
index e5ed091..35e8daf 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/ResultMetadata.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/ResultMetadata.java
@@ -27,6 +27,7 @@ import org.apache.hyracks.api.result.IResultMetadata;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class ResultMetadata implements IResultMetadata {
+ private static final long serialVersionUID = 1905367559307369034L;
private final SessionConfig.OutputFormat format;
private long jobDuration;
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/ProfilePrinter.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/ProfilePrinter.java
index d74d25c..bb835ff 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/ProfilePrinter.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/ProfilePrinter.java
@@ -49,6 +49,7 @@ public class ProfilePrinter implements IResponseFieldPrinter {
pw.print("\t\"" + FIELD_NAME + "\" : ");
ObjectMapper om = new ObjectMapper();
om.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);
+ @SuppressWarnings("serial")
DefaultIndenter ind = new DefaultIndenter("\t", DefaultIndenter.SYS_LF) {
@Override
public void writeIndentation(JsonGenerator jg, int level) throws IOException {
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/http/HttpServerRecordReaderFactory.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/http/HttpServerRecordReaderFactory.java
index 944948b..d14071f 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/http/HttpServerRecordReaderFactory.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/http/HttpServerRecordReaderFactory.java
@@ -36,6 +36,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.http.server.HttpServerConfigBuilder;
public class HttpServerRecordReaderFactory implements IRecordReaderFactory<char[]> {
+ private static final long serialVersionUID = -66399726369366305L;
private static final String KEY_CONFIGURATION_ADDRESSES = "addresses";
private static final String KEY_CONFIGURATION_PATH = "path";
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppToken.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppToken.java
index 13dca02..3669ae0 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppToken.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppToken.java
@@ -24,6 +24,7 @@ import java.io.Serializable;
import org.apache.hyracks.api.exceptions.SourceLocation;
public abstract class SqlppToken implements Serializable {
+ private static final long serialVersionUID = -2974917383986695694L;
public SourceLocation sourceLocation;
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/RMIClientFactory.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/RMIClientFactory.java
index dd0c028..ac2ecd0 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/RMIClientFactory.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/RMIClientFactory.java
@@ -28,6 +28,7 @@ import javax.net.SocketFactory;
import javax.net.ssl.SSLSocketFactory;
public class RMIClientFactory implements RMIClientSocketFactory, Serializable {
+ private static final long serialVersionUID = -3874278041718817394L;
private final boolean sslEnabled;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitAndDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitAndDescriptor.java
index 1c8b9dc..ef509fa 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitAndDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitAndDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitAndDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -140697639709011259L;
public static final IFunctionDescriptorFactory FACTORY = BitAndDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java
index 414f6a0..e3f9fd8 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitClearDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -1790134294538449161L;
public static final IFunctionDescriptorFactory FACTORY = BitClearDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitCountDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitCountDescriptor.java
index 8daa6b0..df30f3e 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitCountDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitCountDescriptor.java
@@ -36,6 +36,7 @@ import org.apache.hyracks.data.std.api.IPointable;
@MissingNullInOutFunction
public class BitCountDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -6355679338952487274L;
public static final IFunctionDescriptorFactory FACTORY = BitCountDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitNotDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitNotDescriptor.java
index 1fbbaf4..31d62a4 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitNotDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitNotDescriptor.java
@@ -36,6 +36,7 @@ import org.apache.hyracks.data.std.api.IPointable;
@MissingNullInOutFunction
public class BitNotDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = 549770812101511988L;
public static final IFunctionDescriptorFactory FACTORY = BitNotDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitOrDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitOrDescriptor.java
index d11b6af..37d231a 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitOrDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitOrDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitOrDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = 3096119314615759635L;
public static final IFunctionDescriptorFactory FACTORY = BitOrDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitSetDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitSetDescriptor.java
index e72853d..e38fefc 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitSetDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitSetDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitSetDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -5710185389455313462L;
public static final IFunctionDescriptorFactory FACTORY = BitSetDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithRotateFlagDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithRotateFlagDescriptor.java
index 6a59a6f..c8765ad 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithRotateFlagDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithRotateFlagDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitShiftWithRotateFlagDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -2277131079446466053L;
public static final IFunctionDescriptorFactory FACTORY = BitShiftWithRotateFlagDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithoutRotateFlagDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithoutRotateFlagDescriptor.java
index 897b143..45422da 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithoutRotateFlagDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitShiftWithoutRotateFlagDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitShiftWithoutRotateFlagDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -2654547496459449684L;
public static final IFunctionDescriptorFactory FACTORY = BitShiftWithoutRotateFlagDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithAllFlagDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithAllFlagDescriptor.java
index 5398e6b..c3741b2 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithAllFlagDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithAllFlagDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitTestWithAllFlagDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -2668646200589547517L;
public static final IFunctionDescriptorFactory FACTORY = BitTestWithAllFlagDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithoutAllFlagDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithoutAllFlagDescriptor.java
index a2662c3..ae9519b 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithoutAllFlagDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitTestWithoutAllFlagDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitTestWithoutAllFlagDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -3124196321567262353L;
public static final IFunctionDescriptorFactory FACTORY = BitTestWithoutAllFlagDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitXorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitXorDescriptor.java
index edd1dcf..944f129 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitXorDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitXorDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class BitXorDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -1803337858721065395L;
public static final IFunctionDescriptorFactory FACTORY = BitXorDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithAllFlagDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithAllFlagDescriptor.java
index f1cb704..5592342 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithAllFlagDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithAllFlagDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class IsBitSetWithAllFlagDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -2899093161460352528L;
public static final IFunctionDescriptorFactory FACTORY = IsBitSetWithAllFlagDescriptor::new;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java
index e7cd674..0c4a326 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java
@@ -31,6 +31,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
@MissingNullInOutFunction
public class IsBitSetWithoutAllFlagDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+ private static final long serialVersionUID = -1733575449220258856L;
public static final IFunctionDescriptorFactory FACTORY = IsBitSetWithoutAllFlagDescriptor::new;
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/AlgebricksStringBuilderWriter.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/AlgebricksStringBuilderWriter.java
index 2444ce8..f704dc0 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/AlgebricksStringBuilderWriter.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/AlgebricksStringBuilderWriter.java
@@ -29,6 +29,7 @@ import org.apache.hyracks.util.annotations.NotThreadSafe;
*/
@NotThreadSafe
public class AlgebricksStringBuilderWriter extends StringBuilderWriter {
+ private static final long serialVersionUID = 61841252848797632L;
public AlgebricksStringBuilderWriter() {
super();
[asterixdb] 02/06: Merge branch 'gerrit/stabilization-f69489' into
'gerrit/mad-hatter'
Posted by mb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 5f18a7e3fe9745f9b73c1a6a46f152100ac15778
Merge: 2292810 66aaf41
Author: Michael Blow <mb...@apache.org>
AuthorDate: Wed Dec 11 11:40:07 2019 -0500
Merge branch 'gerrit/stabilization-f69489' into 'gerrit/mad-hatter'
Change-Id: I17edb6b03563ac527bcad39f93193067ee42a33d
.../join-ASTERIXDB-2686.1.ddl.sqlpp | 16 ++++++++++------
.../join-ASTERIXDB-2686.2.update.sqlpp | 11 +++++------
.../join-ASTERIXDB-2686.3.query.sqlpp | 10 ++++------
.../join-ASTERIXDB-2686.4.ddl.sqlpp | 9 +--------
.../misc/join-ASTERIXDB-2686/join-ASTERIXDB-2686.1.adm | 1 +
.../src/test/resources/runtimets/testsuite_sqlpp.xml | 5 +++++
.../apache/hyracks/api/io/IWorkspaceFileFactory.java | 16 ++++++++++++++++
.../ExternalGroupWriteOperatorNodePushable.java | 3 +--
.../OptimizedHybridHashJoinOperatorDescriptor.java | 18 ++++++++++++++++++
.../std/sort/AbstractExternalSortRunMerger.java | 2 +-
10 files changed, 62 insertions(+), 29 deletions(-)
diff --cc asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 24988bb,817bab6..cc5d18d
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@@ -5887,15 -3801,10 +5887,20 @@@
</compilation-unit>
</test-case>
<test-case FilePath="misc">
+ <compilation-unit name="field_access_union-ASTERIXDB-2288">
+ <output-dir compare="Text">field_access_union-ASTERIXDB-2288</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="misc">
+ <compilation-unit name="constant_folding">
+ <output-dir compare="Text">constant_folding</output-dir>
+ </compilation-unit>
+ </test-case>
++ <test-case FilePath="misc">
+ <compilation-unit name="join-ASTERIXDB-2686">
+ <output-dir compare="Text">join-ASTERIXDB-2686</output-dir>
+ </compilation-unit>
+ </test-case>
<test-case FilePath="misc">
<compilation-unit name="poll-dynamic">
<output-dir compare="Text">poll-dynamic</output-dir>
diff --cc hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
index 08b2303,f3e9320..1beaab8
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
@@@ -72,75 -74,113 +72,75 @@@ public abstract class AbstractExternalS
this.comparators = comparators;
this.nmkComputer = nmkComputer;
this.recordDesc = recordDesc;
- this.framesLimit = framesLimit;
- this.writer = writer;
+ this.maxMergeWidth = framesLimit - 1;
this.topK = topK;
+ this.first = true;
}
- public void process() throws HyracksDataException {
- IFrameWriter finalWriter = null;
+ @CriticalPath
+ public void process(IFrameWriter finalWriter) throws HyracksDataException {
try {
- if (runs.isEmpty()) {
- finalWriter = prepareSkipMergingFinalResultWriter(writer);
- finalWriter.open();
- if (sorter != null) {
- try {
- if (sorter.hasRemaining()) {
- sorter.flush(finalWriter);
- }
- } finally {
- sorter.close();
- }
- }
- } else {
- /** recycle sort buffer */
- if (sorter != null) {
- sorter.close();
- }
-
- finalWriter = prepareFinalMergeResultWriter(writer);
- finalWriter.open();
-
- int maxMergeWidth = framesLimit - 1;
-
- inFrames = new ArrayList<>(maxMergeWidth);
- outputFrame = new VSizeFrame(ctx);
- List<GeneratedRunFileReader> partialRuns = new ArrayList<>(maxMergeWidth);
-
- int stop = runs.size();
- currentGenerationRunAvailable.set(0, stop);
-
- while (true) {
-
- int unUsed = selectPartialRuns(maxMergeWidth * ctx.getInitialFrameSize(), runs, partialRuns,
- currentGenerationRunAvailable, stop);
- prepareFrames(unUsed, inFrames, partialRuns);
-
- if (!currentGenerationRunAvailable.isEmpty() || stop < runs.size()) {
- GeneratedRunFileReader reader;
- if (partialRuns.size() == 1) {
- if (!currentGenerationRunAvailable.isEmpty()) {
- throw new HyracksDataException(
- "The record is too big to put into the merging frame, please"
- + " allocate more sorting memory");
- } else {
- reader = partialRuns.get(0);
- }
-
+ createReusableObjects();
+ int stop = runs.size();
+ currentGenerationRunAvailable.set(0, stop);
+ int numberOfPasses = 1;
+ while (true) {
+ int unUsed = selectPartialRuns(maxMergeWidth * ctx.getInitialFrameSize(), runs, partialRuns,
+ currentGenerationRunAvailable, stop);
+ prepareFrames(unUsed, inFrames, partialRuns);
+
+ if (!currentGenerationRunAvailable.isEmpty() || stop < runs.size()) {
+ GeneratedRunFileReader reader;
+ if (partialRuns.size() == 1) {
+ if (!currentGenerationRunAvailable.isEmpty()) {
+ throw new HyracksDataException("The record is too big to put into the merging frame, please"
+ + " allocate more sorting memory");
} else {
- RunFileWriter mergeFileWriter = prepareIntermediateMergeRunFile();
- IFrameWriter mergeResultWriter = prepareIntermediateMergeResultWriter(mergeFileWriter);
-
- try {
- mergeResultWriter.open();
- merge(mergeResultWriter, partialRuns);
- } catch (Throwable t) {
- mergeResultWriter.fail();
- throw t;
- } finally {
- mergeResultWriter.close();
- }
- reader = mergeFileWriter.createDeleteOnCloseReader();
+ reader = partialRuns.get(0);
}
- runs.add(reader);
-
- if (currentGenerationRunAvailable.isEmpty()) {
+ } else {
+ RunFileWriter mergeFileWriter = prepareIntermediateMergeRunFile();
+ IFrameWriter mergeResultWriter = prepareIntermediateMergeResultWriter(mergeFileWriter);
+
+ try {
+ mergeResultWriter.open();
+ merge(mergeResultWriter, partialRuns);
+ } catch (Throwable t) {
+ mergeResultWriter.fail();
+ throw t;
+ } finally {
+ mergeResultWriter.close();
+ }
- reader = mergeFileWriter.createReader();
++ reader = mergeFileWriter.createDeleteOnCloseReader();
+ }
+ runs.add(reader);
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("generated runs:" + stop);
- }
- runs.subList(0, stop).clear();
- currentGenerationRunAvailable.clear();
- currentGenerationRunAvailable.set(0, runs.size());
- stop = runs.size();
+ if (currentGenerationRunAvailable.isEmpty()) {
+ numberOfPasses++;
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("generated runs:" + stop);
}
- } else {
+ runs.subList(0, stop).clear();
+ currentGenerationRunAvailable.clear();
+ currentGenerationRunAvailable.set(0, runs.size());
+ stop = runs.size();
+ }
+ } else {
+ if (LOGGER.isDebugEnabled()) {
LOGGER.debug("final runs: {}", stop);
- merge(finalWriter, partialRuns);
- break;
+ LOGGER.debug("number of passes: " + numberOfPasses);
}
+ merge(finalWriter, partialRuns);
+ break;
}
}
- } catch (Exception e) {
- if (finalWriter != null) {
- finalWriter.fail();
- }
- throw HyracksDataException.create(e);
} finally {
- try {
- if (finalWriter != null) {
- finalWriter.close();
- }
- } finally {
- for (RunFileReader reader : runs) {
- try {
- reader.close(); // close is idempotent.
- } catch (Exception e) {
- if (LOGGER.isWarnEnabled()) {
- LOGGER.log(Level.WARN, e.getMessage(), e);
- }
+ for (RunFileReader reader : runs) {
+ try {
+ reader.close(); // close is idempotent.
+ } catch (Exception e) {
+ if (LOGGER.isWarnEnabled()) {
+ LOGGER.log(Level.WARN, e.getMessage(), e);
}
}
}