You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by xi...@apache.org on 2017/08/29 16:42:22 UTC

asterixdb git commit: [ASTERIXDB-2070][ING] Prevent start feed without connection

Repository: asterixdb
Updated Branches:
  refs/heads/master aa37321a7 -> 80d20195f


[ASTERIXDB-2070][ING] Prevent start feed without connection

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

Details:
1. Add connection size check for start feed statement.
2. Remove useless/unassigned variable in RSS feed.

Change-Id: Ic6715b3983ee8a0bb042ef5f34f30381c99466da
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1963
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <ba...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/80d20195
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/80d20195
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/80d20195

Branch: refs/heads/master
Commit: 80d20195f57b2eab4a7ead81e10e985b0852cdb3
Parents: aa37321
Author: Xikui Wang <xk...@gmail.com>
Authored: Mon Aug 28 20:19:12 2017 -0700
Committer: Xikui Wang <xk...@gmail.com>
Committed: Tue Aug 29 09:41:47 2017 -0700

----------------------------------------------------------------------
 .../java/org/apache/asterix/app/translator/QueryTranslator.java  | 3 +++
 asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml | 4 ++--
 .../java/org/apache/asterix/common/exceptions/ErrorCode.java     | 1 +
 .../asterix-common/src/main/resources/asx_errormsg/en.properties | 3 ++-
 .../main/java/org/apache/asterix/external/parser/RSSParser.java  | 3 +--
 5 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/80d20195/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index e0d56a0..7ed5171 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -2056,6 +2056,9 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                     metadataProvider.getMetadataTxnContext());
             List<FeedConnection> feedConnections = MetadataManager.INSTANCE
                     .getFeedConections(metadataProvider.getMetadataTxnContext(), dataverseName, feedName);
+            if (feedConnections.isEmpty()) {
+                throw new CompilationException(ErrorCode.FEED_START_FEED_WITHOUT_CONNECTION, feedName);
+            }
             for (FeedConnection feedConnection : feedConnections) {
                 // what if the dataset is in a different dataverse
                 String fqName = feedConnection.getDataverseName() + "." + feedConnection.getDatasetName();

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/80d20195/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
index 433ee4c..abbcaaa 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -282,7 +282,7 @@
     <test-case FilePath="feeds">
       <compilation-unit name="drop-function-used-by-feed">
         <output-dir compare="Text">drop-function-used-by-feed</output-dir>
-        <expected-error>Function experiments.test_func0@1 is being used. It cannot be dropped.</expected-error>
+        <expected-error>Function experiments.test_func0@1 is being used. It cannot be dropped</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="feeds">
@@ -293,7 +293,7 @@
     <test-case FilePath="feeds">
       <compilation-unit name="drop-dataverse-with-function-used-by-feed">
         <output-dir compare="Text">drop-dataverse-with-function-used-by-feed</output-dir>
-        <expected-error>Function fundv.test_func0@1 is being used. It cannot be dropped.</expected-error>
+        <expected-error>Function fundv.test_func0@1 is being used. It cannot be dropped</expected-error>
       </compilation-unit>
     </test-case>
   </test-group>

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/80d20195/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
----------------------------------------------------------------------
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 fcfb428..1e32678 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
@@ -233,6 +233,7 @@ public class ErrorCode {
     public static final int FEED_STOPPED_WHILE_WAITING_FOR_A_NEW_RECORD = 3108;
     public static final int METADATA_DROP_FUCTION_IN_USE = 3109;
     public static final int FEED_FAILED_WHILE_GETTING_A_NEW_RECORD = 3110;
+    public static final int FEED_START_FEED_WITHOUT_CONNECTION = 3111;
 
     // Lifecycle management errors
     public static final int DUPLICATE_PARTITION_ID = 4000;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/80d20195/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
----------------------------------------------------------------------
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 5bd5482..fd5dba2 100644
--- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
+++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
@@ -220,8 +220,9 @@
 3106 = %1$s is not registered
 3107 = Active Notification Handler is already suspended
 3108 = Feed stopped while waiting for a new record
-3109 = Function %1$s is being used. It cannot be dropped.
+3109 = Function %1$s is being used. It cannot be dropped
 3110 = Feed failed while reading a new record
+3111 = Feed %1$s is not connected to any dataset
 
 # Lifecycle management errors
 4000 = Partition id %1$d for node %2$s already in use by node %3$s

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/80d20195/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
index b6c2221..e260083 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
@@ -33,7 +33,6 @@ import com.rometools.rome.feed.synd.SyndEntry;
 
 public class RSSParser implements IRecordDataParser<SyndEntry> {
     private long id = 0;
-    private String idPrefix;
     private AMutableString[] mutableFields;
     private String[] tupleFieldValues;
     private AMutableRecord mutableRecord;
@@ -51,7 +50,7 @@ public class RSSParser implements IRecordDataParser<SyndEntry> {
     @Override
     public void parse(IRawRecord<? extends SyndEntry> record, DataOutput out) throws HyracksDataException {
         SyndEntry entry = record.get();
-        tupleFieldValues[0] = idPrefix + ":" + id;
+        tupleFieldValues[0] = String.valueOf(id);
         tupleFieldValues[1] = entry.getTitle();
         tupleFieldValues[2] = entry.getDescription().getValue();
         tupleFieldValues[3] = entry.getLink();