You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2022/03/14 06:12:00 UTC

[jira] [Created] (IOTDB-2734) [JDBC] ResultSetMetaData.getColumnTypeName ,the result is incorrect

刘珍 created IOTDB-2734:
-------------------------

             Summary: [JDBC] ResultSetMetaData.getColumnTypeName  ,the result is incorrect
                 Key: IOTDB-2734
                 URL: https://issues.apache.org/jira/browse/IOTDB-2734
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Client/JDBC
    Affects Versions: 0.13.0-SNAPSHOT
            Reporter: 刘珍


问题描述:
iotdb jdbc ResultSetMetaData.getColumnTypeName  返回的结果不正确。

测试用例:
下面例子中创建的时间序列类型是text,获取到的列类型是INT64.

package jdbcPro;

import org.apache.iotdb.jdbc.IoTDBSQLException;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCTest extends Thread{
	public static Connection connection = null;
	public static Statement statement = null;
	ResultSet rs = null;
	public void run()
	{
		 try {
			Class.forName("org.apache.iotdb.jdbc.IoTDBDriver");
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		    try{ 
//		    	connection = DriverManager.getConnection("jdbc:iotdb://172.20.70.4:6667/", "root", "root");
		    	Properties p = new Properties();
		        p.setProperty("user", "root");
		        p.setProperty("password", "root");
		    	connection = DriverManager.getConnection("jdbc:iotdb://172.20.70.31:6667/", p);
		    	statement = connection.createStatement() ;


	      // set JDBC fetchSize
	      statement.setFetchSize(10000);

	      try {

	    	  statement.execute("delete storage group root.**");
	    	  statement.execute("create timeseries root.sg.dev.status with datatype={color:#DE350B}*text*{color},encoding=PLAIN ;");
	    	  statement.execute("insert into root.sg.dev(time,status) values(1,3.14);");
	       rs = statement.executeQuery("select status from root.sg.dev");
	       ResultSetMetaData rsmd = rs.getMetaData();
	       System.out.println("列数:"+rsmd.getColumnCount());
	       System.out.println("列名:"+rsmd.getColumnName(1));
	       System.out.println("列类型号:"+rsmd.getColumnType(1));
	       System.out.println("列类型名:"+rsmd.getColumnTypeName(1));
	       System.out.println("列名:"+rsmd.getColumnName(2));
	       System.out.println("列类型号:"+rsmd.getColumnType(2));
	    {color:#DE350B}   System.out.println("列类型名:"+rsmd.getColumnTypeName(2));{color}
	        if(rs.next()){

	        	System.out.print(rs.getString(1));
	        	System.out.println(","+rs.getString(2));
	        
	        }

	      } catch (IoTDBSQLException e) {
	        System.out.println(e.getMessage());
	        statement.close();
	      }

	     
	    } catch (SQLException e) {
	      System.out.println(e.getMessage());
	    }finally{
	    	try {
				close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	    }
	  }
      public void close() throws SQLException, InterruptedException{
    	 
    	  if(statement != null)
    	     statement.close();
    	  if(connection != null)
    	     connection.close();
//    	  System.out.println("finished.");
      }

  public static void main(String[] args) throws ClassNotFoundException, SQLException, InterruptedException {
    
	  JDBCTest t1 = new JDBCTest();
	  t1.start();

  }
  }




--
This message was sent by Atlassian Jira
(v8.20.1#820001)