package com.artfess.query.util;

/*import org.apache.arrow.adbc.core.AdbcConnection;
import org.apache.arrow.adbc.core.AdbcDatabase;
import org.apache.arrow.adbc.core.AdbcDriver;
import org.apache.arrow.adbc.core.AdbcStatement;
import org.apache.arrow.adbc.driver.flightsql.FlightSqlDriver;
import org.apache.arrow.flight.Location;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.vector.VectorSchemaRoot;
import org.apache.arrow.vector.ipc.ArrowReader;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;*/

public class testdrios {

/*    public static void main(String[] args) throws Exception {
        t1();
    }

    public static void t() throws Exception {
        Class.forName("org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver");
        String DB_URL = "jdbc:arrow-flight-sql://113.44.161.26:9090?useServerPrepStmts=false"
                + "&cachePrepStmts=true&useSSL=false&useEncryption=false";
        String USER = "admin";
        String PASS = "gz2024@!";

        Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
        Statement stmt = conn.createStatement();
        ResultSet resultSet = stmt.executeQuery("select * from dw_dwd_enterprise_commercial_info where enterprise_fddbr_ like '%周%' limit 100,100");
        while (resultSet.next()) {
            System.out.println(resultSet.toString());
        }

        resultSet.close();
        stmt.close();
        conn.close();
    }

    public static void t1()throws Exception{
        // 1. new driver
        final BufferAllocator allocator = new RootAllocator();
        FlightSqlDriver driver = new FlightSqlDriver(allocator);
        Map<String, Object> parameters = new HashMap<>();
        AdbcDriver.PARAM_URI.set(parameters, Location.forGrpcInsecure("113.44.161.26", 9090).getUri().toString());
        AdbcDriver.PARAM_USERNAME.set(parameters, "admin");
        AdbcDriver.PARAM_PASSWORD.set(parameters, "gz2024@!");
        AdbcDatabase adbcDatabase = driver.open(parameters);

// 2. new connection
        AdbcConnection connection = adbcDatabase.connect();
        AdbcStatement stmt = connection.createStatement();

// 3. execute query
        stmt.setSqlQuery("select * from dw_dwd_enterprise_commercial_info where enterprise_fddbr_ like '%周%' limit 100,100");
        AdbcStatement.QueryResult queryResult = stmt.executeQuery();
        ArrowReader reader = queryResult.getReader();

// 4. load result
        List<String> result = new ArrayList<>();
        while (reader.loadNextBatch()) {
            VectorSchemaRoot root = reader.getVectorSchemaRoot();
            String tsvString = root.contentToTSVString();
            result.add(tsvString);
        }
        System.out.printf("batchs %d\n", result.size());

// 5. close
        reader.close();
        queryResult.close();
        stmt.close();
        connection.close();
    }*/
}
