MCPcopy Create free account
hub / github.com/apache/paimon-rust / alter_database

Method alter_database

crates/paimon/tests/mock_server.rs:201–235  ·  view source on GitHub ↗

Handle POST /databases/:name - alter database configuration.

(
        Path(name): Path<String>,
        Extension(state): Extension<Arc<RESTServer>>,
        Json(request): Json<AlterDatabaseRequest>,
    )

Source from the content-addressed store, hash-verified

199
200 /// Handle POST /databases/:name - alter database configuration.
201 pub async fn alter_database(
202 Path(name): Path<String>,
203 Extension(state): Extension<Arc<RESTServer>>,
204 Json(request): Json<AlterDatabaseRequest>,
205 ) -> impl IntoResponse {
206 let mut s = state.inner.lock().unwrap();
207
208 if s.no_permission_databases.contains(&name) {
209 let err = ErrorResponse::new(
210 Some("database".to_string()),
211 Some(name.clone()),
212 Some("No Permission".to_string()),
213 Some(403),
214 );
215 return (StatusCode::FORBIDDEN, Json(err)).into_response();
216 }
217
218 if let Some(response) = s.databases.get_mut(&name) {
219 // Apply removals
220 for key in &request.removals {
221 response.options.remove(key);
222 }
223 // Apply updates
224 response.options.extend(request.updates);
225 (StatusCode::OK, Json(serde_json::json!(""))).into_response()
226 } else {
227 let err = ErrorResponse::new(
228 Some("database".to_string()),
229 Some(name.clone()),
230 Some("Not Found".to_string()),
231 Some(404),
232 );
233 (StatusCode::NOT_FOUND, Json(err)).into_response()
234 }
235 }
236
237 /// Handle DELETE /databases/:name - drop a database.
238 pub async fn drop_database(

Callers 2

test_alter_databaseFunction · 0.45

Calls 2

containsMethod · 0.80
removeMethod · 0.80

Tested by

no test coverage detected