diff --git a/com.dbeaver.jdbc.driver.libsql/pom.xml b/com.dbeaver.jdbc.driver.libsql/pom.xml
index 2b6c334..5ff1978 100644
--- a/com.dbeaver.jdbc.driver.libsql/pom.xml
+++ b/com.dbeaver.jdbc.driver.libsql/pom.xml
@@ -72,12 +72,39 @@
copy-dependencies
- ${project.build.directory}/dependencies
+ ${project.build.directory}/dist
runtime
+ com.dbeaver.jdbc.driver.libsql
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.6
+
+
+ assemble-driver-dist
+ package
+
+ ${project.build.directory}/dist
+ true
+
+
+ ${project.build.directory}
+
+ *.jar
+
+
+
+
+
+ copy-resources
+
+
+
+
diff --git a/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlDatabaseMetaData.java b/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlDatabaseMetaData.java
index 71cad57..bb992e3 100644
--- a/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlDatabaseMetaData.java
+++ b/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlDatabaseMetaData.java
@@ -114,9 +114,31 @@ public ResultSet getColumns(String catalog, String schemaPattern, String tableNa
return executeQuery(
"WITH all_tables AS (SELECT name AS tn FROM sqlite_master WHERE type = 'table'" +
(tableName == null ? "" : " and name=" + LibSqlUtils.quote(tableName)) + ") \n" +
- "SELECT NULL as TABLE_CAT, NULL AS TABLE_SCHEM, at.tn as TABLE_NAME,\n" +
- "pti.name as COLUMN_NAME," + Types.VARCHAR + " AS DATA_TYPE, pti.type AS TYPE_NAME, 0 AS COLUMN_SIZE," +
- "NULL AS REMARKS,pti.cid AS ORDINAL_POSITION " +
+ "SELECT " +
+ "NULL as TABLE_CAT, " +
+ "NULL AS TABLE_SCHEM, " +
+ "at.tn as TABLE_NAME,\n" +
+ "pti.name as COLUMN_NAME," +
+ Types.VARCHAR + " AS DATA_TYPE," +
+ "pti.type AS TYPE_NAME," +
+ "0 AS COLUMN_SIZE," +
+ "0 as COLUMN_SIZE," +
+ "0 as BUFFER_LENGTH," +
+ "0 as DECIMAL_DIGITS,\n" +
+ columnNullable + " as NULLABLE," +
+ "NULL as REMARKS," +
+ "NULL as COLUMN_DEF," +
+ "0 as SQL_DATA_TYPE," +
+ "0 as SQL_DATETIME_SUB," +
+ "0 as CHAR_OCTET_LENGTH," +
+ "pti.cid as ORDINAL_POSITION," +
+ "'' as IS_NULLABLE," +
+ "NULL as SCOPE_CATALOG," +
+ "NULL as SCOPE_SCHEMA," +
+ "NULL as SCOPE_TABLE," +
+ "NULL as SOURCE_DATA_TYPE," +
+ "'' as IS_AUTOINCREMENT," +
+ "'' as IS_GENERATEDCOLUMN\n" +
"FROM all_tables at INNER JOIN pragma_table_info(at.tn) pti\n" +
"ORDER BY TABLE_NAME");
}
diff --git a/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlResultSetMetaData.java b/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlResultSetMetaData.java
index e84ed3f..f11ea6c 100644
--- a/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlResultSetMetaData.java
+++ b/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlResultSetMetaData.java
@@ -23,6 +23,7 @@
import java.sql.SQLException;
import java.sql.Types;
+import java.util.List;
public class LibSqlResultSetMetaData extends AbstractJdbcResultSetMetaData {
@@ -102,7 +103,11 @@ public String getColumnLabel(int column) throws SQLException {
@Override
public String getColumnName(int column) throws SQLException {
- return resultSet.getResult().getColumns().get(column - 1);
+ List columns = resultSet.getResult().getColumns();
+ if (column < 1 || column > columns.size()) {
+ throw new SQLException("Column index out of bounds: " + column + "/" + columns.size());
+ }
+ return columns.get(column - 1);
}
@Override
diff --git a/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/client/LibSqlClient.java b/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/client/LibSqlClient.java
index 5ed5998..e5a3876 100644
--- a/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/client/LibSqlClient.java
+++ b/com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/client/LibSqlClient.java
@@ -100,7 +100,7 @@ public LibSqlExecutionResult[] executeBatch(
.header("Content-Type", "application/json")
.header("User-Agent", userAgent)
.POST(HttpRequest.BodyPublishers.ofString(requestBuffer.toString()));
- if (authToken != null) {
+ if (!CommonUtils.isEmpty(authToken)) {
builder.header("Authorization", "Bearer " + authToken);
}