Skip to content

Commit a3f02e3

Browse files
committed
refactor(database): simplify table column display format
- Change column display format from SQL `CREATE TABLE` syntax to a simpler `TableName: { Columns }` format. - Remove unused `isNullOr` import and refactor column mapping logic for clarity.
1 parent f8f0d82 commit a3f02e3

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

exts/ext-database/src/main/kotlin/cc/unitmesh/database/provider/DatabaseFunctionProvider.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,17 @@ class DatabaseFunctionProvider : ToolchainFunctionProvider {
9898
val sqlQuery = args.first()
9999
return DatabaseSchemaAssistant.executeSqlQuery(project, sqlQuery as String)
100100
}
101-
102101
private fun executeColumnFunction(args: List<Any>, project: Project): Any {
103102
if (args.isEmpty()) {
104103
val allTables = DatabaseSchemaAssistant.getAllTables(project)
105-
return allTables.map {
106-
DatabaseSchemaAssistant.getTableColumn(it)
104+
val map = allTables.map {
105+
getTableColumn(it)
107106
}
107+
return """
108+
|```sql
109+
|${map.joinToString("\n")}
110+
|```
111+
""".trimMargin()
108112
}
109113

110114
when (val first = args[0]) {

exts/ext-database/src/main/kotlin/cc/unitmesh/database/util/DatabaseSchemaAssistant.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.intellij.database.psi.DbDataSource
77
import com.intellij.database.psi.DbPsiFacade
88
import com.intellij.database.util.DasUtil
99
import com.intellij.openapi.project.Project
10+
import com.intellij.sql.isNullOr
1011

1112
object DatabaseSchemaAssistant {
1213
fun getDataSources(project: Project): List<DbDataSource> = DbPsiFacade.getInstance(project).dataSources.toList()
@@ -69,10 +70,14 @@ object DatabaseSchemaAssistant {
6970

7071
private fun displayTable(table: DasTable): String {
7172
val dasColumns = DasUtil.getColumns(table)
72-
val columns = dasColumns.map { column ->
73-
"${column.name}: ${column.dasType.toDataType()}"
74-
}.joinToString(", ")
73+
val columns = dasColumns.joinToString(",") { column ->
74+
"${column.name} ${column.dasType.toDataType()}${if (column.isNullOr("")) "" else " NOT NULL"}"
75+
}
7576

76-
return "TableName: ${table.name}, Columns: { $columns }"
77+
return """
78+
CREATE TABLE ${table.name} (
79+
$columns
80+
);
81+
""".trimIndent()
7782
}
7883
}

0 commit comments

Comments
 (0)