You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2014/02/11 07:59:08 UTC

git commit: Fix Flume unit tests

Updated Branches:
  refs/heads/master 7cdad218c -> 191d097bd


Fix Flume unit tests


Project: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/commit/191d097b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/tree/191d097b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/diff/191d097b

Branch: refs/heads/master
Commit: 191d097bdca2294a9b83b2f10d02c7ffd21f56d6
Parents: 7cdad21
Author: James Taylor <ja...@apache.org>
Authored: Mon Feb 10 22:59:00 2014 -0800
Committer: James Taylor <ja...@apache.org>
Committed: Mon Feb 10 22:59:00 2014 -0800

----------------------------------------------------------------------
 .../query/ConnectionQueryServicesImpl.java      |  2 +-
 .../flume/serializer/BaseEventSerializer.java   | 48 +++++++++++---------
 2 files changed, 28 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/191d097b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
index f87e0e8..0af683b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
@@ -437,7 +437,7 @@ public class ConnectionQueryServicesImpl extends DelegateQueryServices implement
         }
         if (families.isEmpty()) {
             if (tableType != PTableType.VIEW) {
-                byte[] defaultFamilyByes = defaultFamilyName == null ? QueryConstants.DEFAULT_COLUMN_FAMILY_BYTES : Bytes.toBytes(SchemaUtil.normalizeIdentifier(defaultFamilyName));
+                byte[] defaultFamilyByes = defaultFamilyName == null ? QueryConstants.DEFAULT_COLUMN_FAMILY_BYTES : Bytes.toBytes(defaultFamilyName);
                 // Add dummy column family so we have key values for tables that 
                 HColumnDescriptor columnDescriptor = generateColumnFamilyDescriptor(new Pair<byte[],Map<String,Object>>(defaultFamilyByes,Collections.<String,Object>emptyMap()), tableType);
                 descriptor.addFamily(columnDescriptor);

http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/191d097b/phoenix-flume/src/main/java/org/apache/phoenix/flume/serializer/BaseEventSerializer.java
----------------------------------------------------------------------
diff --git a/phoenix-flume/src/main/java/org/apache/phoenix/flume/serializer/BaseEventSerializer.java b/phoenix-flume/src/main/java/org/apache/phoenix/flume/serializer/BaseEventSerializer.java
index c9f41e2..dd9c168 100644
--- a/phoenix-flume/src/main/java/org/apache/phoenix/flume/serializer/BaseEventSerializer.java
+++ b/phoenix-flume/src/main/java/org/apache/phoenix/flume/serializer/BaseEventSerializer.java
@@ -35,15 +35,6 @@ import java.util.Properties;
 
 import org.apache.flume.Context;
 import org.apache.flume.conf.ComponentConfiguration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
-import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.exception.SQLExceptionInfo;
 import org.apache.phoenix.flume.DefaultKeyGenerator;
@@ -53,6 +44,15 @@ import org.apache.phoenix.flume.SchemaHandler;
 import org.apache.phoenix.util.ColumnInfo;
 import org.apache.phoenix.util.QueryUtil;
 import org.apache.phoenix.util.SchemaUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
+import com.google.common.base.Throwables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 public abstract class BaseEventSerializer implements EventSerializer {
 
@@ -144,7 +144,8 @@ public abstract class BaseEventSerializer implements EventSerializer {
             }
       
             
-            final Map<String,Integer> allColumnsInfoMap = Maps.newLinkedHashMap();
+            final Map<String,Integer> qualifiedColumnMap = Maps.newLinkedHashMap();
+            final Map<String,Integer> unqualifiedColumnMap = Maps.newLinkedHashMap();
             final String schemaName = SchemaUtil.getSchemaNameFromFullName(fullTableName);
             final String tableName  = SchemaUtil.getTableNameFromFullName(fullTableName);
             
@@ -159,12 +160,14 @@ public abstract class BaseEventSerializer implements EventSerializer {
                 dt = rs.getInt(QueryUtil.DATA_TYPE_POSITION);
                 if(Strings.isNullOrEmpty(cf)) {
                     rowkey = cq; // this is required only when row key is auto generated
+                } else {
+                    qualifiedColumnMap.put(SchemaUtil.getColumnDisplayName(cf, cq), dt);
                 }
-                allColumnsInfoMap.put(SchemaUtil.getColumnDisplayName(cf, cq), dt);
+                unqualifiedColumnMap.put(SchemaUtil.getColumnDisplayName(null, cq), dt);
              }
             
             //can happen when table not found in Hbase.
-            if(allColumnsInfoMap.isEmpty()) {
+            if(unqualifiedColumnMap.isEmpty()) {
                 throw new SQLExceptionInfo.Builder(SQLExceptionCode.TABLE_UNDEFINED)
                         .setTableName(tableName).build().buildException();
             }
@@ -175,11 +178,11 @@ public abstract class BaseEventSerializer implements EventSerializer {
             columnMetadata = new ColumnInfo[totalSize] ;
            
             int position = 0;
-            position = this.addToColumnMetadataInfo(colNames, allColumnsInfoMap, position);
-            position = this.addToColumnMetadataInfo(headers,  allColumnsInfoMap, position);
+            position = this.addToColumnMetadataInfo(colNames, qualifiedColumnMap, unqualifiedColumnMap, position);
+            position = this.addToColumnMetadataInfo(headers,  qualifiedColumnMap, unqualifiedColumnMap, position);
            
             if(autoGenerateKey) {
-                Integer sqlType = allColumnsInfoMap.get(rowkey);
+                Integer sqlType = unqualifiedColumnMap.get(rowkey);
                 if (sqlType == null) {
                     throw new SQLExceptionInfo.Builder(SQLExceptionCode.PRIMARY_KEY_MISSING)
                          .setColumnName(rowkey).setTableName(fullTableName).build().buildException();
@@ -202,19 +205,22 @@ public abstract class BaseEventSerializer implements EventSerializer {
         doInitialize();
     }
     
-    private int addToColumnMetadataInfo(final List<String> columns , final Map<String,Integer> allColumnsInfoMap, int position) throws SQLException {
+    private int addToColumnMetadataInfo(final List<String> columns , final Map<String,Integer> qualifiedColumnsInfoMap, Map<String, Integer> unqualifiedColumnsInfoMap, int position) throws SQLException {
         Preconditions.checkNotNull(columns);
-        Preconditions.checkNotNull(allColumnsInfoMap);
+        Preconditions.checkNotNull(qualifiedColumnsInfoMap);
+        Preconditions.checkNotNull(unqualifiedColumnsInfoMap);
        for (int i = 0 ; i < columns.size() ; i++) {
             String columnName = SchemaUtil.normalizeIdentifier(columns.get(i).trim());
-            Integer sqlType = allColumnsInfoMap.get(columnName);
+            Integer sqlType = unqualifiedColumnsInfoMap.get(columnName);
             if (sqlType == null) {
+                sqlType = qualifiedColumnsInfoMap.get(columnName);
+                if (sqlType == null) {
                    throw new SQLExceptionInfo.Builder(SQLExceptionCode.COLUMN_NOT_FOUND)
                         .setColumnName(columnName).setTableName(this.fullTableName).build().buildException();
-            } else {
-                columnMetadata[position] = new ColumnInfo(columnName, sqlType);
-                position++;
+                }
             }
+            columnMetadata[position] = new ColumnInfo(columnName, sqlType);
+            position++;
        }
        return position;
     }