phoenix5-hive/src/main/java/org/apache/phoenix/hive/PhoenixSerDe.java [72:149]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        tableProperties = tbl;

        if (LOG.isDebugEnabled()) {
            LOG.debug("SerDe initialize : " + tbl.getProperty("name"));
        }

        serdeParams = new LazySerDeParameters(conf, tbl, getClass().getName());
        objectInspector = createLazyPhoenixInspector(conf, tbl);

        String inOutWork = tbl.getProperty(PhoenixStorageHandlerConstants.IN_OUT_WORK);
        if (inOutWork == null) {
            return;
        }

        serializer = new PhoenixSerializer(conf, tbl);
        row = new PhoenixRow(serdeParams.getColumnNames());
    }

    @Override
    public Object deserialize(Writable result) throws SerDeException {
        if (!(result instanceof PhoenixResultWritable)) {
            throw new SerDeException(result.getClass().getName() + ": expects " +
                    "PhoenixResultWritable!");
        }

        return row.setResultRowMap(((PhoenixResultWritable) result).getResultMap());
    }

    @Override
    public Class<? extends Writable> getSerializedClass() {
        return PhoenixResultWritable.class;
    }

    @Override
    public Writable serialize(Object obj, ObjectInspector objInspector) throws SerDeException {
        try {
            return serializer.serialize(obj, objInspector, DmlType.NONE);
        } catch (Exception e) {
            throw new SerDeException(e);
        }
    }

    @Override
    public SerDeStats getSerDeStats() {
        // no support for statistics
        return null;
    }

    public Properties getTableProperties() {
        return tableProperties;
    }

    public LazySerDeParameters getSerdeParams() {
        return serdeParams;
    }

    @Override
    public ObjectInspector getObjectInspector() throws SerDeException {
        return objectInspector;
    }

    private ObjectInspector createLazyPhoenixInspector(Configuration conf, Properties tbl) throws
            SerDeException {
        List<String> columnNameList = Arrays.asList(tbl.getProperty(serdeConstants.LIST_COLUMNS)
                .split(PhoenixStorageHandlerConstants.COMMA));
        List<TypeInfo> columnTypeList = TypeInfoUtils.getTypeInfosFromTypeString(tbl.getProperty
                (serdeConstants.LIST_COLUMN_TYPES));

        List<ObjectInspector> columnObjectInspectors = new ArrayList<>(columnTypeList.size());

        for (TypeInfo typeInfo : columnTypeList) {
            columnObjectInspectors.add(PhoenixObjectInspectorFactory.createObjectInspector
                    (typeInfo, serdeParams));
        }

        return LazyObjectInspectorFactory.getLazySimpleStructObjectInspector(columnNameList,
                columnObjectInspectors, null, serdeParams.getSeparators()[0], serdeParams,
                ObjectInspectorOptions.JAVA);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



phoenix5-hive4/src/main/java/org/apache/phoenix/hive/PhoenixSerDe.java [72:149]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        tableProperties = tbl;

        if (LOG.isDebugEnabled()) {
            LOG.debug("SerDe initialize : " + tbl.getProperty("name"));
        }

        serdeParams = new LazySerDeParameters(conf, tbl, getClass().getName());
        objectInspector = createLazyPhoenixInspector(conf, tbl);

        String inOutWork = tbl.getProperty(PhoenixStorageHandlerConstants.IN_OUT_WORK);
        if (inOutWork == null) {
            return;
        }

        serializer = new PhoenixSerializer(conf, tbl);
        row = new PhoenixRow(serdeParams.getColumnNames());
    }

    @Override
    public Object deserialize(Writable result) throws SerDeException {
        if (!(result instanceof PhoenixResultWritable)) {
            throw new SerDeException(result.getClass().getName() + ": expects " +
                    "PhoenixResultWritable!");
        }

        return row.setResultRowMap(((PhoenixResultWritable) result).getResultMap());
    }

    @Override
    public Class<? extends Writable> getSerializedClass() {
        return PhoenixResultWritable.class;
    }

    @Override
    public Writable serialize(Object obj, ObjectInspector objInspector) throws SerDeException {
        try {
            return serializer.serialize(obj, objInspector, DmlType.NONE);
        } catch (Exception e) {
            throw new SerDeException(e);
        }
    }

    @Override
    public SerDeStats getSerDeStats() {
        // no support for statistics
        return null;
    }

    public Properties getTableProperties() {
        return tableProperties;
    }

    public LazySerDeParameters getSerdeParams() {
        return serdeParams;
    }

    @Override
    public ObjectInspector getObjectInspector() throws SerDeException {
        return objectInspector;
    }

    private ObjectInspector createLazyPhoenixInspector(Configuration conf, Properties tbl) throws
            SerDeException {
        List<String> columnNameList = Arrays.asList(tbl.getProperty(serdeConstants.LIST_COLUMNS)
                .split(PhoenixStorageHandlerConstants.COMMA));
        List<TypeInfo> columnTypeList = TypeInfoUtils.getTypeInfosFromTypeString(tbl.getProperty
                (serdeConstants.LIST_COLUMN_TYPES));

        List<ObjectInspector> columnObjectInspectors = new ArrayList<>(columnTypeList.size());

        for (TypeInfo typeInfo : columnTypeList) {
            columnObjectInspectors.add(PhoenixObjectInspectorFactory.createObjectInspector
                    (typeInfo, serdeParams));
        }

        return LazyObjectInspectorFactory.getLazySimpleStructObjectInspector(columnNameList,
                columnObjectInspectors, null, serdeParams.getSeparators()[0], serdeParams,
                ObjectInspectorOptions.JAVA);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



