1212// See the License for the specific language governing permissions and
1313// limitations under the License.
1414
15- use std:: any:: type_name;
16- use std:: convert:: Infallible ;
1715use std:: fmt:: Display ;
1816use std:: time:: Duration ;
1917
@@ -27,15 +25,13 @@ use databend_common_meta_app::app_error::UndropTableHasNoHistory;
2725use databend_common_meta_app:: app_error:: UnknownTable ;
2826use databend_common_meta_app:: app_error:: UnknownTableId ;
2927use databend_common_meta_app:: schema:: database_name_ident:: DatabaseNameIdent ;
30- use databend_common_meta_app:: schema:: least_visible_time_ident:: LeastVisibleTimeIdent ;
3128use databend_common_meta_app:: schema:: marked_deleted_index_id:: MarkedDeletedIndexId ;
3229use databend_common_meta_app:: schema:: marked_deleted_index_ident:: MarkedDeletedIndexIdIdent ;
3330use databend_common_meta_app:: schema:: marked_deleted_table_index_id:: MarkedDeletedTableIndexId ;
3431use databend_common_meta_app:: schema:: marked_deleted_table_index_ident:: MarkedDeletedTableIndexIdIdent ;
3532use databend_common_meta_app:: schema:: DBIdTableName ;
3633use databend_common_meta_app:: schema:: DatabaseId ;
3734use databend_common_meta_app:: schema:: DatabaseMeta ;
38- use databend_common_meta_app:: schema:: LeastVisibleTime ;
3935use databend_common_meta_app:: schema:: MarkedDeletedIndexMeta ;
4036use databend_common_meta_app:: schema:: MarkedDeletedIndexType ;
4137use databend_common_meta_app:: schema:: TableId ;
@@ -55,12 +51,10 @@ use databend_common_meta_types::MetaError;
5551use databend_common_meta_types:: SeqV ;
5652use databend_common_meta_types:: TxnOp ;
5753use databend_common_meta_types:: TxnRequest ;
58- use databend_common_proto_conv:: FromToProto ;
5954use fastrace:: func_name;
6055use log:: debug;
6156use log:: error;
6257use log:: warn;
63- use seq_marked:: SeqValue ;
6458use ConditionResult :: Eq ;
6559
6660use crate :: catalog_api:: CatalogApi ;
@@ -72,9 +66,7 @@ use crate::get_u64_value;
7266use crate :: index_api:: IndexApi ;
7367use crate :: kv_app_error:: KVAppError ;
7468use crate :: kv_pb_api:: KVPbApi ;
75- use crate :: kv_pb_crud_api:: KVPbCrudApi ;
7669use crate :: lock_api:: LockApi ;
77- use crate :: meta_txn_error:: MetaTxnError ;
7870use crate :: security_api:: SecurityApi ;
7971use crate :: send_txn;
8072use crate :: serialize_struct;
@@ -124,109 +116,7 @@ where
124116 Self : SecurityApi ,
125117 Self : TableApi ,
126118{
127- #[ logcall:: logcall]
128- #[ fastrace:: trace]
129- async fn set_table_lvt (
130- & self ,
131- name_ident : & LeastVisibleTimeIdent ,
132- value : & LeastVisibleTime ,
133- ) -> Result < LeastVisibleTime , KVAppError > {
134- debug ! ( req : ? =( & name_ident, & value) ; "SchemaApi: {}" , func_name!( ) ) ;
135-
136- let transition = self
137- . crud_upsert_with :: < Infallible > ( name_ident, |t : Option < SeqV < LeastVisibleTime > > | {
138- let curr = t. into_value ( ) . unwrap_or_default ( ) ;
139- if curr. time >= value. time {
140- Ok ( None )
141- } else {
142- Ok ( Some ( value. clone ( ) ) )
143- }
144- } )
145- . await ?;
146-
147- return Ok ( transition. unwrap ( ) . result . into_value ( ) . unwrap_or_default ( ) ) ;
148- }
149-
150- #[ logcall:: logcall]
151- #[ fastrace:: trace]
152- async fn get < K > ( & self , name_ident : & K ) -> Result < Option < K :: ValueType > , MetaError >
153- where
154- K : kvapi:: Key + Sync + ' static ,
155- K :: ValueType : FromToProto + ' static ,
156- {
157- debug ! ( req : ? =( & name_ident) ; "SchemaApi::get::<{}>()" , typ:: <K >( ) ) ;
158-
159- let seq_lvt = self . get_pb ( name_ident) . await ?;
160- Ok ( seq_lvt. into_value ( ) )
161- }
162-
163- fn name ( & self ) -> String {
164- "SchemaApiImpl" . to_string ( )
165- }
166-
167- #[ logcall:: logcall]
168- #[ fastrace:: trace]
169- async fn remove_marked_deleted_index_ids (
170- & self ,
171- tenant : & Tenant ,
172- table_id : u64 ,
173- index_ids : & [ u64 ] ,
174- ) -> Result < ( ) , MetaTxnError > {
175- let mut trials = txn_backoff ( None , func_name ! ( ) ) ;
176-
177- loop {
178- trials. next ( ) . unwrap ( ) ?. await ;
179- let mut txn = TxnRequest :: default ( ) ;
180-
181- for index_id in index_ids {
182- txn. if_then
183- . push ( txn_op_del ( & MarkedDeletedIndexIdIdent :: new_generic (
184- tenant,
185- MarkedDeletedIndexId :: new ( table_id, * index_id) ,
186- ) ) ) ;
187- }
188-
189- let ( succ, _responses) = send_txn ( self , txn) . await ?;
190-
191- if succ {
192- return Ok ( ( ) ) ;
193- }
194- }
195- }
196-
197- #[ logcall:: logcall]
198- #[ fastrace:: trace]
199- async fn remove_marked_deleted_table_indexes (
200- & self ,
201- tenant : & Tenant ,
202- table_id : u64 ,
203- indexes : & [ ( String , String ) ] ,
204- ) -> Result < ( ) , MetaTxnError > {
205- let mut trials = txn_backoff ( None , func_name ! ( ) ) ;
206-
207- loop {
208- trials. next ( ) . unwrap ( ) ?. await ;
209- let mut txn = TxnRequest :: default ( ) ;
210-
211- for ( index_name, index_version) in indexes {
212- txn. if_then
213- . push ( txn_op_del ( & MarkedDeletedTableIndexIdIdent :: new_generic (
214- tenant,
215- MarkedDeletedTableIndexId :: new (
216- table_id,
217- index_name. to_string ( ) ,
218- index_version. to_string ( ) ,
219- ) ,
220- ) ) ) ;
221- }
222-
223- let ( succ, _responses) = send_txn ( self , txn) . await ?;
224-
225- if succ {
226- return Ok ( ( ) ) ;
227- }
228- }
229- }
119+ // Pure trait composition - all methods moved to respective domain traits
230120}
231121
232122pub async fn get_history_table_metas (
@@ -630,13 +520,6 @@ pub async fn handle_undrop_table(
630520 }
631521}
632522
633- fn typ < K > ( ) -> & ' static str {
634- type_name :: < K > ( )
635- . rsplit ( "::" )
636- . next ( )
637- . unwrap_or ( "UnknownType" )
638- }
639-
640523/// add __fd_marked_deleted_index/<table_id>/<index_id> -> marked_deleted_index_meta
641524pub fn mark_index_as_deleted (
642525 tenant : & Tenant ,
0 commit comments