This is an automated email from the ASF dual-hosted git repository.
wyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new f0ff425a72 [NO ISSUE]: Add more validations + cleanup + address
comments
f0ff425a72 is described below
commit f0ff425a72a24c3ffe871052197a0ef0f34dabb5
Author: Hussain Towaileb <[email protected]>
AuthorDate: Wed Mar 6 17:37:55 2024 +0300
[NO ISSUE]: Add more validations + cleanup + address comments
Change-Id: I6e511e2ec13edf7458a809826860124507a51038
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18197
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Hussain Towaileb <[email protected]>
Reviewed-by: Wail Alkowaileet <[email protected]>
---
.../asterix/translator/CompiledStatements.java | 5 ++-
.../translator/LangExpressionToPlanTranslator.java | 8 ++--
.../cloud/writer/S3ExternalFileWriterFactory.java | 6 +--
.../asterix/common/exceptions/ErrorCode.java | 2 +
.../src/main/resources/asx_errormsg/en.properties | 2 +
.../writer/LocalFSExternalFileWriterFactory.java | 6 +--
...er.java => AbstractTextualExternalPrinter.java} | 28 ++++++++++----
.../printer/TextualExternalDatabasePrinter.java} | 15 ++++++--
... => TextualExternalDatabasePrinterFactory.java} | 6 +--
.../writer/printer/TextualExternalFilePrinter.java | 43 ++--------------------
.../printer/TextualExternalFilePrinterFactory.java | 6 ++-
.../metadata/declared/MetadataProvider.java | 4 +-
.../metadata/provider/ExternalWriterProvider.java | 8 ++--
...n.java => ExternalFileWriterConfiguration.java} | 4 +-
.../writer/IExternalFileWriterFactoryProvider.java | 2 +-
.../core/algebra/metadata/IMetadataProvider.java | 4 +-
.../operators/physical/SinkWritePOperator.java | 10 ++---
.../rules/SetAlgebricksPhysicalOperatorsRule.java | 3 +-
18 files changed, 75 insertions(+), 87 deletions(-)
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/CompiledStatements.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/CompiledStatements.java
index 80252026fb..01b85274bc 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/CompiledStatements.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/CompiledStatements.java
@@ -681,6 +681,9 @@ public class CompiledStatements {
public boolean isAutogenerated() {
return autogenerated;
}
- }
+ public boolean isFileStoreSink() {
+ return keyExpressions.isEmpty() && !autogenerated;
+ }
+ }
}
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
index 0949478da8..077b39bfe1 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
@@ -361,7 +361,7 @@ abstract class LangExpressionToPlanTranslator
return translate(expr, outputDatasetName, (ICompiledDmlStatement)
stmt, null, resultMetadata);
}
- public ILogicalPlan translateCopyTo(Query expr,
CompiledStatements.ICompiledStatement stmt,
+ private ILogicalPlan translateCopyTo(Query expr,
CompiledStatements.ICompiledStatement stmt,
IResultMetadata resultMetadata) throws AlgebricksException {
CompiledStatements.CompiledCopyToStatement copyTo =
(CompiledStatements.CompiledCopyToStatement) stmt;
MutableObject<ILogicalOperator> base = new MutableObject<>(new
EmptyTupleSourceOperator());
@@ -423,7 +423,7 @@ abstract class LangExpressionToPlanTranslator
// astPathExpressions has at least one expression see CopyToStatement
constructor
List<Expression> astPathExpressions = copyTo.getPathExpressions();
ILogicalExpression fullPathExpr = null;
- String separator = getExternalWriterSeparator(copyTo.getAdapter());
+ String separator = getSeparator(copyTo.getAdapter(),
copyTo.isFileStoreSink());
List<Mutable<ILogicalExpression>> pathExprs = new
ArrayList<>(astPathExpressions.size());
Pair<ILogicalExpression, Mutable<ILogicalOperator>> pathExprPair;
for (int i = 0; i < astPathExpressions.size(); i++) {
@@ -483,8 +483,8 @@ abstract class LangExpressionToPlanTranslator
return new ALogicalPlanImpl(globalPlanRoots);
}
- protected String getExternalWriterSeparator(String adapter) {
- return String.valueOf(ExternalWriterProvider.getSeparator(adapter));
+ private String getSeparator(String adapter, boolean isFileStore) {
+ return isFileStore ?
String.valueOf(ExternalWriterProvider.getSeparator(adapter)) : "";
}
public ILogicalPlan translate(Query expr, String outputDatasetName,
ICompiledDmlStatement stmt,
diff --git
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/writer/S3ExternalFileWriterFactory.java
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/writer/S3ExternalFileWriterFactory.java
index 4477b1f998..cb0a6e7c1c 100644
---
a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/writer/S3ExternalFileWriterFactory.java
+++
b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/writer/S3ExternalFileWriterFactory.java
@@ -36,7 +36,7 @@ import
org.apache.asterix.common.exceptions.CompilationException;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.external.util.ExternalDataConstants;
import org.apache.asterix.external.util.aws.s3.S3Utils;
-import org.apache.asterix.runtime.writer.ExternalWriterConfiguration;
+import org.apache.asterix.runtime.writer.ExternalFileWriterConfiguration;
import org.apache.asterix.runtime.writer.IExternalFileWriter;
import org.apache.asterix.runtime.writer.IExternalFileWriterFactory;
import org.apache.asterix.runtime.writer.IExternalFileWriterFactoryProvider;
@@ -61,7 +61,7 @@ public final class S3ExternalFileWriterFactory implements
IExternalFileWriterFac
static final char SEPARATOR = '/';
public static final IExternalFileWriterFactoryProvider PROVIDER = new
IExternalFileWriterFactoryProvider() {
@Override
- public IExternalFileWriterFactory create(ExternalWriterConfiguration
configuration) {
+ public IExternalFileWriterFactory
create(ExternalFileWriterConfiguration configuration) {
return new S3ExternalFileWriterFactory(configuration);
}
@@ -75,7 +75,7 @@ public final class S3ExternalFileWriterFactory implements
IExternalFileWriterFac
private final String staticPath;
private transient S3CloudClient cloudClient;
- private S3ExternalFileWriterFactory(ExternalWriterConfiguration
externalConfig) {
+ private S3ExternalFileWriterFactory(ExternalFileWriterConfiguration
externalConfig) {
configuration = externalConfig.getConfiguration();
pathSourceLocation = externalConfig.getPathSourceLocation();
staticPath = externalConfig.getStaticPath();
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
index ef54ba821d..b508ce5cb2 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
@@ -95,6 +95,7 @@ public enum ErrorCode implements IError {
WRITE_PATH_LENGTH_EXCEEDS_MAX_LENGTH(65),
TYPE_MISMATCH_EXTRA_FIELD(66),
UNSUPPORTED_COLUMN_TYPE(67),
+ INVALID_KEY_TYPE(68),
UNSUPPORTED_JRE(100),
@@ -295,6 +296,7 @@ public enum ErrorCode implements IError {
UNSUPPORTED_COLUMN_LSM_FILTER(1192),
UNKNOWN_STORAGE_FORMAT(1193),
UNSUPPORTED_INDEX_IN_COLUMNAR_FORMAT(1194),
+ COMPOSITE_KEY_NOT_SUPPORTED(1195),
// Feed errors
DATAFLOW_ILLEGAL_STATE(3001),
diff --git
a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
index 45b6185461..3621447dd0 100644
--- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
+++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
@@ -102,6 +102,7 @@
65 = Length of the file path '%1$s' exceeds the maximum length of '%2$s bytes'
allowed in %3$s
66 = Type mismatch: including an extra field %1$s
67 = Type(s) '%1$s' are not supported in columnar storage format. Supported
types are %2$s
+68 = Invalid key type. Expected '%1$s', found '%2$s'.
100 = Unsupported JRE: %1$s
@@ -297,6 +298,7 @@
1192 = Filters are not supported with columnar storage format
1193 = Unknown storage format '%1$s'
1194 = Index type '%1$s' is not supported with columnar storage format
+1195 = Composite key is not allowed, only single key must be specified.
# Feed Errors
3001 = Illegal state.
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/LocalFSExternalFileWriterFactory.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/LocalFSExternalFileWriterFactory.java
index 73f34f1e52..bdefaa85b2 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/LocalFSExternalFileWriterFactory.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/LocalFSExternalFileWriterFactory.java
@@ -23,7 +23,7 @@ import java.io.File;
import org.apache.asterix.common.exceptions.CompilationException;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
-import org.apache.asterix.runtime.writer.ExternalWriterConfiguration;
+import org.apache.asterix.runtime.writer.ExternalFileWriterConfiguration;
import org.apache.asterix.runtime.writer.IExternalFileWriter;
import org.apache.asterix.runtime.writer.IExternalFileWriterFactory;
import org.apache.asterix.runtime.writer.IExternalFileWriterFactoryProvider;
@@ -38,7 +38,7 @@ public final class LocalFSExternalFileWriterFactory
implements IExternalFileWrit
private static final char SEPARATOR = File.separatorChar;
public static final IExternalFileWriterFactoryProvider PROVIDER = new
IExternalFileWriterFactoryProvider() {
@Override
- public IExternalFileWriterFactory create(ExternalWriterConfiguration
configuration) {
+ public IExternalFileWriterFactory
create(ExternalFileWriterConfiguration configuration) {
return new LocalFSExternalFileWriterFactory(configuration);
}
@@ -54,7 +54,7 @@ public final class LocalFSExternalFileWriterFactory
implements IExternalFileWrit
private final String staticPath;
private boolean validated;
- private LocalFSExternalFileWriterFactory(ExternalWriterConfiguration
externalConfig) {
+ private LocalFSExternalFileWriterFactory(ExternalFileWriterConfiguration
externalConfig) {
pathSourceLocation = externalConfig.getPathSourceLocation();
singleNodeCluster = externalConfig.isSingleNodeCluster();
staticPath = externalConfig.getStaticPath();
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalPrinter.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/AbstractTextualExternalPrinter.java
similarity index 63%
rename from
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalPrinter.java
rename to
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/AbstractTextualExternalPrinter.java
index 537af2e8a8..8d7d60f3a4 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalPrinter.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/AbstractTextualExternalPrinter.java
@@ -21,18 +21,26 @@ package org.apache.asterix.external.writer.printer;
import java.io.OutputStream;
import java.io.PrintStream;
+import
org.apache.asterix.external.writer.compressor.IExternalFileCompressStreamFactory;
+import
org.apache.asterix.external.writer.compressor.NoOpExternalFileCompressStreamFactory;
import org.apache.asterix.runtime.writer.IExternalPrinter;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IValueReference;
-final class TextualExternalPrinter implements IExternalPrinter {
- private final IPrinter printer;
- private TextualOutputStreamDelegate delegate;
- private PrintStream printStream;
+public abstract class AbstractTextualExternalPrinter implements
IExternalPrinter {
+ final IPrinter printer;
+ final IExternalFileCompressStreamFactory compressStreamFactory;
+ TextualOutputStreamDelegate delegate;
+ PrintStream printStream;
- TextualExternalPrinter(IPrinter printer) {
+ AbstractTextualExternalPrinter(IPrinter printer) {
+ this(printer, NoOpExternalFileCompressStreamFactory.INSTANCE);
+ }
+
+ AbstractTextualExternalPrinter(IPrinter printer, final
IExternalFileCompressStreamFactory compressStreamFactory) {
this.printer = printer;
+ this.compressStreamFactory = compressStreamFactory;
}
@Override
@@ -41,17 +49,23 @@ final class TextualExternalPrinter implements
IExternalPrinter {
}
@Override
- public void newStream(OutputStream outputStream) {
- delegate = new TextualOutputStreamDelegate(outputStream);
+ public void newStream(OutputStream outputStream) throws
HyracksDataException {
+ if (printStream != null) {
+ close();
+ }
+ delegate = new
TextualOutputStreamDelegate(compressStreamFactory.createStream(outputStream));
printStream = new PrintStream(delegate);
}
@Override
public void print(IValueReference value) throws HyracksDataException {
printer.print(value.getByteArray(), value.getStartOffset(),
value.getLength(), printStream);
+ afterPrint();
delegate.checkError();
}
+ abstract void afterPrint() throws HyracksDataException;
+
@Override
public void close() throws HyracksDataException {
if (printStream != null) {
diff --git
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalDatabasePrinter.java
similarity index 71%
copy from
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
copy to
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalDatabasePrinter.java
index eabd2cb5db..12c8d5a429 100644
---
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalDatabasePrinter.java
@@ -16,10 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.asterix.runtime.writer;
+package org.apache.asterix.external.writer.printer;
-public interface IExternalFileWriterFactoryProvider {
- IExternalFileWriterFactory create(ExternalWriterConfiguration
configuration);
+import org.apache.hyracks.algebricks.data.IPrinter;
- char getSeparator();
+final class TextualExternalDatabasePrinter extends
AbstractTextualExternalPrinter {
+
+ TextualExternalDatabasePrinter(IPrinter printer) {
+ super(printer);
+ }
+
+ @Override
+ void afterPrint() {
+ }
}
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalPrinterFactory.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalDatabasePrinterFactory.java
similarity index 83%
rename from
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalPrinterFactory.java
rename to
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalDatabasePrinterFactory.java
index d779793c20..49bd6d8dcb 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalPrinterFactory.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalDatabasePrinterFactory.java
@@ -22,16 +22,16 @@ import org.apache.asterix.runtime.writer.IExternalPrinter;
import org.apache.asterix.runtime.writer.IExternalPrinterFactory;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
-public class TextualExternalPrinterFactory implements IExternalPrinterFactory {
+public class TextualExternalDatabasePrinterFactory implements
IExternalPrinterFactory {
private static final long serialVersionUID = 9155959967258587588L;
protected final IPrinterFactory printerFactory;
- public TextualExternalPrinterFactory(IPrinterFactory printerFactory) {
+ public TextualExternalDatabasePrinterFactory(IPrinterFactory
printerFactory) {
this.printerFactory = printerFactory;
}
@Override
public IExternalPrinter createPrinter() {
- return new TextualExternalPrinter(printerFactory.createPrinter());
+ return new
TextualExternalDatabasePrinter(printerFactory.createPrinter());
}
}
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinter.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinter.java
index 57e7b58e7c..5465098944 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinter.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinter.java
@@ -18,54 +18,17 @@
*/
package org.apache.asterix.external.writer.printer;
-import java.io.OutputStream;
-import java.io.PrintStream;
-
import
org.apache.asterix.external.writer.compressor.IExternalFileCompressStreamFactory;
-import org.apache.asterix.runtime.writer.IExternalPrinter;
import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-import org.apache.hyracks.data.std.api.IValueReference;
-final class TextualExternalFilePrinter implements IExternalPrinter {
- private final IPrinter printer;
- private final IExternalFileCompressStreamFactory compressStreamFactory;
- private TextualOutputStreamDelegate delegate;
- private PrintStream printStream;
+final class TextualExternalFilePrinter extends AbstractTextualExternalPrinter {
TextualExternalFilePrinter(IPrinter printer,
IExternalFileCompressStreamFactory compressStreamFactory) {
- this.printer = printer;
- this.compressStreamFactory = compressStreamFactory;
- }
-
- @Override
- public void open() throws HyracksDataException {
- printer.init();
- }
-
- @Override
- public void newStream(OutputStream outputStream) throws
HyracksDataException {
- if (printStream != null) {
- close();
- }
- delegate = new
TextualOutputStreamDelegate(compressStreamFactory.createStream(outputStream));
- printStream = new PrintStream(delegate);
+ super(printer, compressStreamFactory);
}
@Override
- public void print(IValueReference value) throws HyracksDataException {
- printer.print(value.getByteArray(), value.getStartOffset(),
value.getLength(), printStream);
+ void afterPrint() {
printStream.println();
- delegate.checkError();
- }
-
- @Override
- public void close() throws HyracksDataException {
- if (printStream != null) {
- printStream.close();
- printStream = null;
- delegate.checkError();
- delegate = null;
- }
}
}
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinterFactory.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinterFactory.java
index e3d0a66d33..6bee7d74c1 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinterFactory.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/writer/printer/TextualExternalFilePrinterFactory.java
@@ -20,15 +20,17 @@ package org.apache.asterix.external.writer.printer;
import
org.apache.asterix.external.writer.compressor.IExternalFileCompressStreamFactory;
import org.apache.asterix.runtime.writer.IExternalPrinter;
+import org.apache.asterix.runtime.writer.IExternalPrinterFactory;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
-public class TextualExternalFilePrinterFactory extends
TextualExternalPrinterFactory {
+public class TextualExternalFilePrinterFactory implements
IExternalPrinterFactory {
private static final long serialVersionUID = 8971234908711234L;
+ protected final IPrinterFactory printerFactory;
private final IExternalFileCompressStreamFactory compressStreamFactory;
public TextualExternalFilePrinterFactory(IPrinterFactory printerFactory,
IExternalFileCompressStreamFactory compressStreamFactory) {
- super(printerFactory);
+ this.printerFactory = printerFactory;
this.compressStreamFactory = compressStreamFactory;
}
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index 340eb0a04e..416e32f5a0 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -771,8 +771,8 @@ public class MetadataProvider implements
IMetadataProvider<DataSourceId, String>
@Override
public Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint>
getWriteDatabaseWithKeyRuntime(int sourceColumn,
- IScalarEvaluatorFactory[] keyEvaluatorFactories, boolean
autogenerated, IWriteDataSink sink,
- RecordDescriptor inputDesc, Object sourceType) throws
AlgebricksException {
+ IScalarEvaluatorFactory[] keyEvaluatorFactories, IWriteDataSink
sink, RecordDescriptor inputDesc,
+ Object sourceType) throws AlgebricksException {
throw new UnsupportedOperationException();
}
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/provider/ExternalWriterProvider.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/provider/ExternalWriterProvider.java
index 2d77a94a31..9253a48492 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/provider/ExternalWriterProvider.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/provider/ExternalWriterProvider.java
@@ -30,7 +30,7 @@ import
org.apache.asterix.external.writer.compressor.IExternalFileCompressStream
import
org.apache.asterix.external.writer.compressor.NoOpExternalFileCompressStreamFactory;
import
org.apache.asterix.external.writer.printer.TextualExternalFilePrinterFactory;
import org.apache.asterix.formats.nontagged.CleanJSONPrinterFactoryProvider;
-import org.apache.asterix.runtime.writer.ExternalWriterConfiguration;
+import org.apache.asterix.runtime.writer.ExternalFileWriterConfiguration;
import org.apache.asterix.runtime.writer.IExternalFileWriterFactory;
import org.apache.asterix.runtime.writer.IExternalFileWriterFactoryProvider;
import org.apache.asterix.runtime.writer.IExternalPrinterFactory;
@@ -83,12 +83,12 @@ public class ExternalWriterProvider {
return Integer.parseInt(maxResultString);
}
- private static ExternalWriterConfiguration
createConfiguration(ICcApplicationContext appCtx, IWriteDataSink sink,
- String staticPath, SourceLocation pathExpressionLocation) {
+ private static ExternalFileWriterConfiguration
createConfiguration(ICcApplicationContext appCtx,
+ IWriteDataSink sink, String staticPath, SourceLocation
pathExpressionLocation) {
Map<String, String> params = sink.getConfiguration();
boolean singleNodeCluster = isSingleNodeCluster(appCtx);
- return new ExternalWriterConfiguration(params, pathExpressionLocation,
staticPath, singleNodeCluster);
+ return new ExternalFileWriterConfiguration(params,
pathExpressionLocation, staticPath, singleNodeCluster);
}
private static boolean isSingleNodeCluster(ICcApplicationContext appCtx) {
diff --git
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/ExternalWriterConfiguration.java
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/ExternalFileWriterConfiguration.java
similarity index 91%
rename from
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/ExternalWriterConfiguration.java
rename to
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/ExternalFileWriterConfiguration.java
index fbb05eeec1..b62a07aef8 100644
---
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/ExternalWriterConfiguration.java
+++
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/ExternalFileWriterConfiguration.java
@@ -22,13 +22,13 @@ import java.util.Map;
import org.apache.hyracks.api.exceptions.SourceLocation;
-public final class ExternalWriterConfiguration {
+public final class ExternalFileWriterConfiguration {
private final Map<String, String> configuration;
private final SourceLocation pathSourceLocation;
private final String staticPath;
private final boolean singleNodeCluster;
- public ExternalWriterConfiguration(Map<String, String> configuration,
SourceLocation pathSourceLocation,
+ public ExternalFileWriterConfiguration(Map<String, String> configuration,
SourceLocation pathSourceLocation,
String staticPath, boolean singleNodeCluster) {
this.configuration = configuration;
this.pathSourceLocation = pathSourceLocation;
diff --git
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
index eabd2cb5db..5805f08d02 100644
---
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
+++
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFileWriterFactoryProvider.java
@@ -19,7 +19,7 @@
package org.apache.asterix.runtime.writer;
public interface IExternalFileWriterFactoryProvider {
- IExternalFileWriterFactory create(ExternalWriterConfiguration
configuration);
+ IExternalFileWriterFactory create(ExternalFileWriterConfiguration
configuration);
char getSeparator();
}
diff --git
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
index 5240e0c375..11c8b8131b 100644
---
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
+++
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
@@ -66,8 +66,8 @@ public interface IMetadataProvider<S, I> {
throws AlgebricksException;
Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint>
getWriteDatabaseWithKeyRuntime(int sourceColumn,
- IScalarEvaluatorFactory[] keyEvaluatorFactories, boolean
autogenerated, IWriteDataSink sink,
- RecordDescriptor inputDesc, Object sourceType) throws
AlgebricksException;
+ IScalarEvaluatorFactory[] keyEvaluatorFactories, IWriteDataSink
sink, RecordDescriptor inputDesc,
+ Object sourceType) throws AlgebricksException;
Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>
getResultHandleRuntime(IDataSink sink, int[] printColumns,
IPrinterFactory[] printerFactories, IAWriterFactory writerFactory,
diff --git
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
index 71f5876857..9c1879feca 100644
---
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
+++
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
@@ -62,16 +62,12 @@ public class SinkWritePOperator extends
AbstractPhysicalOperator {
private final LogicalVariable sourceVariable;
private final List<LogicalVariable> partitionVariables;
private final List<OrderColumn> orderColumns;
- private final List<LogicalVariable> keyVariables;
- private final boolean autogenerated;
public SinkWritePOperator(LogicalVariable sourceVariable,
List<LogicalVariable> partitionVariables,
- List<OrderColumn> orderColumns, List<LogicalVariable>
keyVariables, boolean autogenerated) {
+ List<OrderColumn> orderColumns) {
this.sourceVariable = sourceVariable;
this.partitionVariables = partitionVariables;
this.orderColumns = orderColumns;
- this.keyVariables = keyVariables;
- this.autogenerated = autogenerated;
}
@Override
@@ -174,8 +170,8 @@ public class SinkWritePOperator extends
AbstractPhysicalOperator {
typeEnv.getVarType(sourceVariable));
} else {
- runtimeAndConstraints =
mp.getWriteDatabaseWithKeyRuntime(sourceColumn, keyEvalFactories, autogenerated,
- writeDataSink, inputDesc,
typeEnv.getVarType(sourceVariable));
+ runtimeAndConstraints =
mp.getWriteDatabaseWithKeyRuntime(sourceColumn, keyEvalFactories, writeDataSink,
+ inputDesc, typeEnv.getVarType(sourceVariable));
}
IPushRuntimeFactory runtime = runtimeAndConstraints.first;
diff --git
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
index 3ea2631274..9fd4cd97eb 100644
---
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
+++
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
@@ -409,8 +409,7 @@ public class SetAlgebricksPhysicalOperatorsRule implements
IAlgebraicRewriteRule
ensureAllVariables(op.getPartitionExpressions(), v -> v);
ensureAllVariables(op.getOrderExpressions(), Pair::getSecond);
ensureAllVariables(op.getKeyExpressions(), v -> v);
- return new SinkWritePOperator(op.getSourceVariable(),
op.getPartitionVariables(), op.getOrderColumns(),
- op.getKeyVariables(), op.getAutogenerated());
+ return new SinkWritePOperator(op.getSourceVariable(),
op.getPartitionVariables(), op.getOrderColumns());
}
@Override