@@ -69,6 +69,59 @@ func newArrayFromHandle(tdbCtx *Context, arrayHandle arrayHandle) *Array {
69
69
return & Array {context : tdbCtx , tiledbArray : arrayHandle }
70
70
}
71
71
72
+ // ConsolidateArray consolidates the fragments of an array into a single fragment.
73
+ // You must first finalize all queries to the array before consolidation can
74
+ // begin (as consolidation temporarily acquires an exclusive lock on the array).
75
+ func ConsolidateArray (tdbCtx * Context , uri string , config * Config ) error {
76
+ if config == nil {
77
+ return errors .New ("Config must not be nil for Consolidate" )
78
+ }
79
+
80
+ curi := C .CString (uri )
81
+ defer C .free (unsafe .Pointer (curi ))
82
+ ret := C .tiledb_array_consolidate (tdbCtx .tiledbContext .Get (), curi , config .tiledbConfig .Get ())
83
+ runtime .KeepAlive (tdbCtx )
84
+ runtime .KeepAlive (config )
85
+ if ret != C .TILEDB_OK {
86
+ return fmt .Errorf ("error consolidating tiledb array: %w" , tdbCtx .LastError ())
87
+ }
88
+
89
+ runtime .KeepAlive (config )
90
+ return nil
91
+ }
92
+
93
+ // CreateArray creates a new TileDB array given a context, URI and schema.
94
+ func CreateArray (tdbCtx * Context , uri string , arraySchema * ArraySchema ) error {
95
+ curi := C .CString (uri )
96
+ defer C .free (unsafe .Pointer (curi ))
97
+ ret := C .tiledb_array_create (tdbCtx .tiledbContext .Get (), curi , arraySchema .tiledbArraySchema .Get ())
98
+ runtime .KeepAlive (tdbCtx )
99
+ runtime .KeepAlive (arraySchema )
100
+ if ret != C .TILEDB_OK {
101
+ return fmt .Errorf ("error creating tiledb array: %w" , tdbCtx .LastError ())
102
+ }
103
+ return nil
104
+ }
105
+
106
+ // VacuumArray cleans up an array, such as consolidated fragments and array metadata.
107
+ func VacuumArray (tdbCtx * Context , uri string , config * Config ) error {
108
+ if config == nil {
109
+ return errors .New ("Config must not be nil for Vacuum" )
110
+ }
111
+
112
+ curi := C .CString (uri )
113
+ defer C .free (unsafe .Pointer (curi ))
114
+ ret := C .tiledb_array_vacuum (tdbCtx .tiledbContext .Get (), curi , config .tiledbConfig .Get ())
115
+ runtime .KeepAlive (tdbCtx )
116
+ runtime .KeepAlive (config )
117
+ if ret != C .TILEDB_OK {
118
+ return fmt .Errorf ("error vacuuming tiledb array: %w" , tdbCtx .LastError ())
119
+ }
120
+
121
+ runtime .KeepAlive (config )
122
+ return nil
123
+ }
124
+
72
125
// NewArray allocates a new array.
73
126
// If the provided Context is nil, a default context is allocated and used.
74
127
func NewArray (tdbCtx * Context , uri string ) (* Array , error ) {
@@ -222,56 +275,23 @@ func (a *Array) Close() error {
222
275
}
223
276
224
277
// Create creates a new TileDB array given an input schema.
278
+ // Deprecated: Use CreateArray instead.
225
279
func (a * Array ) Create (arraySchema * ArraySchema ) error {
226
- curi := C .CString (a .uri )
227
- defer C .free (unsafe .Pointer (curi ))
228
- ret := C .tiledb_array_create (a .context .tiledbContext .Get (), curi , arraySchema .tiledbArraySchema .Get ())
229
- runtime .KeepAlive (a )
230
- runtime .KeepAlive (arraySchema )
231
- if ret != C .TILEDB_OK {
232
- return fmt .Errorf ("error creating tiledb array: %w" , a .context .LastError ())
233
- }
234
- return nil
280
+ return CreateArray (a .context , a .uri , arraySchema )
235
281
}
236
282
237
- // Consolidate consolidates the fragments of an array into a single fragment.
283
+ // Consolidate consolidates the fragments of the array into a single fragment.
238
284
// You must first finalize all queries to the array before consolidation can
239
285
// begin (as consolidation temporarily acquires an exclusive lock on the array).
286
+ // Deprecated: Use ConsolidateArray instead.
240
287
func (a * Array ) Consolidate (config * Config ) error {
241
- if config == nil {
242
- return errors .New ("Config must not be nil for Consolidate" )
243
- }
244
-
245
- curi := C .CString (a .uri )
246
- defer C .free (unsafe .Pointer (curi ))
247
- ret := C .tiledb_array_consolidate (a .context .tiledbContext .Get (), curi , config .tiledbConfig .Get ())
248
- runtime .KeepAlive (a )
249
- runtime .KeepAlive (config )
250
- if ret != C .TILEDB_OK {
251
- return fmt .Errorf ("error consolidating tiledb array: %w" , a .context .LastError ())
252
- }
253
-
254
- runtime .KeepAlive (config )
255
- return nil
288
+ return ConsolidateArray (a .context , a .uri , config )
256
289
}
257
290
258
291
// Vacuum cleans up the array, such as consolidated fragments and array metadata.
292
+ // Deprecated: Use VacuumArray instead.
259
293
func (a * Array ) Vacuum (config * Config ) error {
260
- if config == nil {
261
- return errors .New ("Config must not be nil for Vacuum" )
262
- }
263
-
264
- curi := C .CString (a .uri )
265
- defer C .free (unsafe .Pointer (curi ))
266
- ret := C .tiledb_array_vacuum (a .context .tiledbContext .Get (), curi , config .tiledbConfig .Get ())
267
- runtime .KeepAlive (a )
268
- runtime .KeepAlive (config )
269
- if ret != C .TILEDB_OK {
270
- return fmt .Errorf ("error vacuuming tiledb array: %w" , a .context .LastError ())
271
- }
272
-
273
- runtime .KeepAlive (config )
274
- return nil
294
+ return VacuumArray (a .context , a .uri , config )
275
295
}
276
296
277
297
// Schema returns the ArraySchema for the array.
0 commit comments