NLPchina / elasticsearch-sql

Use SQL to query Elasticsearch
Apache License 2.0
7k stars 1.54k forks source link

5.4.1下载包中ElasticSearchResultSetMetaDataBase和Git上不一致 #888

Open w4n9H opened 5 years ago

w4n9H commented 5 years ago

releases中提供的5.4.1支持中的代码是这样

package com.alibaba.druid.pool;

import com.alibaba.druid.util.jdbc.ResultSetMetaDataBase;
import com.alibaba.druid.util.jdbc.ResultSetMetaDataBase.ColumnMetaData;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ElasticSearchResultSetMetaDataBase extends ResultSetMetaDataBase {
    private final List<ColumnMetaData> columns = new ArrayList();

    public ElasticSearchResultSetMetaDataBase(List<String> headers) {
        Iterator var2 = headers.iterator();

        while(var2.hasNext()) {
            String column = (String)var2.next();
            ColumnMetaData columnMetaData = new ColumnMetaData();
            columnMetaData.setColumnLabel(column);
            columnMetaData.setColumnName(column);
            this.columns.add(columnMetaData);
        }

    }
}

而git上5.4.1版本中的代码

package com.alibaba.druid.pool;

import com.alibaba.druid.util.jdbc.ResultSetBase;
import com.alibaba.druid.util.jdbc.ResultSetMetaDataBase;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by allwefantasy on 8/31/16.
 */
public class ElasticSearchResultSetMetaDataBase extends ResultSetMetaDataBase {
    private final List<ColumnMetaData> columns = new ArrayList<ColumnMetaData>();

    public ElasticSearchResultSetMetaDataBase(List<String> headers) {
        for(String column:headers){
            ColumnMetaData columnMetaData = new ColumnMetaData();
            columnMetaData.setColumnLabel(column);
            columnMetaData.setColumnName(column);
            columns.add(columnMetaData);
        }
    }
}

如果直接下载编译好的包会导致一些功能异常,比如metaData.getColumnCount() 可能会误导使用者

shi-yuan commented 5 years ago

没同步更新,可以直接本地打包的

shi-yuan commented 5 years ago

elasticsearch-sql-5.4.1.0.zip

w4n9H commented 5 years ago

elasticsearch-sql-5.4.1.0.zip

感谢,按照高版本的bugfix自己魔改了一下5.4.1修复了问题,还把xpack支持也加进去了,作者是不是也考虑一下对低版本的xpack也支持一下

shi-yuan commented 5 years ago

恩恩,准备往maven中央仓库里发

w4n9H commented 5 years ago

恩恩,准备往maven中央仓库里发

发现了一个问题,查询数据是正常的,通过metaData.getColumnTypeName拿数据的类型的时候取出来的值都是null,拿不到类型暂时只能通过getString()取出字符串来应急了,有啥解决办法吗

shi-yuan commented 5 years ago

可以写一个通用的RowMapper,如果用的框架,可以借助框架本身,比如spring jdbc、mybatis