Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 1E9352009D9 for ; Tue, 3 May 2016 00:54:20 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 1B8A11609B0; Tue, 3 May 2016 00:54:20 +0200 (CEST) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 614E01602C5 for ; Tue, 3 May 2016 00:54:19 +0200 (CEST) Received: (qmail 91014 invoked by uid 500); 2 May 2016 22:54:18 -0000 Mailing-List: contact dev-help@hawq.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hawq.incubator.apache.org Delivered-To: mailing list dev@hawq.incubator.apache.org Received: (qmail 91003 invoked by uid 99); 2 May 2016 22:54:18 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 May 2016 22:54:18 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id ED77B1A0A46 for ; Mon, 2 May 2016 22:54:17 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.021 X-Spam-Level: X-Spam-Status: No, score=-4.021 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id t3T1Sgzy9HVA for ; Mon, 2 May 2016 22:54:17 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id 7BC275F573 for ; Mon, 2 May 2016 22:54:16 +0000 (UTC) Received: (qmail 90987 invoked by uid 99); 2 May 2016 22:54:15 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 May 2016 22:54:15 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 917CDDFB73; Mon, 2 May 2016 22:54:15 +0000 (UTC) From: hornn To: dev@hawq.incubator.apache.org Reply-To: dev@hawq.incubator.apache.org References: In-Reply-To: Subject: [GitHub] incubator-hawq pull request: HAWQ-703. Serialize HCatalog Complex ... Content-Type: text/plain Message-Id: <20160502225415.917CDDFB73@git1-us-west.apache.org> Date: Mon, 2 May 2016 22:54:15 +0000 (UTC) archived-at: Mon, 02 May 2016 22:54:20 -0000 Github user hornn commented on a diff in the pull request: https://github.com/apache/incubator-hawq/pull/633#discussion_r61818664 --- Diff: pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/utilities/EnumHiveToHawqType.java --- @@ -0,0 +1,112 @@ +/* + * 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. + */ + +package org.apache.hawq.pxf.plugins.hive.utilities; + +import org.apache.hawq.pxf.api.utilities.EnumHawqType; +import org.apache.hawq.pxf.api.UnsupportedTypeException; + +/** + * + * Hive types, which are supported by plugin, mapped to HAWQ's types + * @see EnumHawqType + */ +public enum EnumHiveToHawqType { + + TinyintType("tinyint", EnumHawqType.Int2Type), + SmallintType("smallint", EnumHawqType.Int2Type), + IntType("int", EnumHawqType.Int4Type), + BigintType("bigint", EnumHawqType.Int8Type), + BooleanType("boolean", EnumHawqType.BoolType), + FloatType("float", EnumHawqType.Float4Type), + DoubleType("double", EnumHawqType.Float8Type), + StringType("string", EnumHawqType.TextType), + BinaryType("binary", EnumHawqType.ByteaType), + TimestampType("timestamp", EnumHawqType.TimestampType), + DateType("date", EnumHawqType.DateType), + DecimalType("decimal", EnumHawqType.NumericType, "[(,)]"), + VarcharType("varchar", EnumHawqType.VarcharType, "[(,)]"), + CharType("char", EnumHawqType.BpcharType, "[(,)]"), + ArrayType("array", EnumHawqType.TextType, "[<,>]"), + MapType("map", EnumHawqType.TextType, "[<,>]"), + StructType("struct", EnumHawqType.TextType, "[<,>]"), + UnionType("uniontype", EnumHawqType.TextType, "[<,>]"); + + private String typeName; + private EnumHawqType hawqType; + private String splitExpression; + + EnumHiveToHawqType(String typeName, EnumHawqType hawqType) { + this.typeName = typeName; + this.hawqType = hawqType; + } + + EnumHiveToHawqType(String typeName, EnumHawqType hawqType, String splitExpression) { + this(typeName, hawqType); + this.splitExpression = splitExpression; + } + + /** + * + * @return name of type + */ + public String getTypeName() { + return this.typeName; + } + + /** + * + * @return corresponding HAWQ type + */ + public EnumHawqType getHawqType() { + return this.hawqType; + } + + /** + * + * @return split by expression + */ + public String getSplitExpression() { + return this.splitExpression; + } + + /** + * Returns Hive to HAWQ type mapping entry for given Hive type + * + * @param hiveType full Hive type with modifiers, for example - decimal(10, 0), char(5), binary, array, map etc + * @return corresponding Hive to HAWQ type mapping entry + * @throws UnsupportedTypeException if there is no corresponding HAWQ type + */ + public static EnumHiveToHawqType getHiveToHawqType(String hiveType) { + for (EnumHiveToHawqType t : values()) { + String hiveTypeName = hiveType; + if (t.getSplitExpression() != null) { --- End diff -- minor - since t.getSplitExpression() is called twice here, it can be saved in a variable. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---