feat(data-grid): support manual reference display values

This commit is contained in:
zipg authored and GitHub committed 2026-08-23 01:38:50 +08:00
1 parent b74d49e982
commit 4a1f3e7141
24 files changed
+893 -90

No files matched your search

+1
View File
@@ -423,6 +423,7 @@ async fn main() {
.route("/schema/all-columns", get(routes::schema::get_all_columns))
.route("/schema/data-types", get(routes::schema::list_data_types))
.route("/schema/indexes", get(routes::schema::list_indexes))
.route("/schema/reference-key-columns", get(routes::schema::list_reference_key_columns))
.route("/schema/foreign-keys", get(routes::schema::list_foreign_keys))
.route("/schema/triggers", get(routes::schema::list_triggers))
.route("/schema/constraints", get(routes::schema::list_constraints))
+20
View File
@@ -545,6 +545,26 @@ pub async fn list_indexes(
Ok(Json(serde_json::to_value(result).map_err(|e| AppError::from(e.to_string()))?))
}
pub async fn list_reference_key_columns(
State(state): State<Arc<WebState>>,
Query(q): Query<SchemaQuery>,
) -> Result<Json<Vec<String>>, AppError> {
let database = q.database.as_deref().unwrap_or("");
let schema = q.schema.as_deref().unwrap_or("");
let table = q.table.as_deref().unwrap_or("");
let catalog = external_doris_catalog(&state, &q.connection_id, q.catalog.as_deref()).await;
let indexes = if let Some(catalog) = catalog.as_deref() {
dbx_core::schema::list_doris_catalog_indexes_core(&state.app, &q.connection_id, catalog, database, table)
.await
.map_err(AppError::from)?
} else {
dbx_core::schema::list_indexes_core(&state.app, &q.connection_id, database, schema, table)
.await
.map_err(AppError::from)?
};
Ok(Json(dbx_core::schema::reference_key_columns_from_indexes(&indexes)))
}
pub async fn list_foreign_keys(
State(state): State<Arc<WebState>>,
Query(q): Query<SchemaQuery>,