27
27
import static io .tiledb .java .api .ArrayType .*;
28
28
import static io .tiledb .java .api .Datatype .TILEDB_FLOAT32 ;
29
29
import static io .tiledb .java .api .Datatype .TILEDB_INT32 ;
30
+ import static io .tiledb .java .api .Datatype .TILEDB_STRING_ASCII ;
30
31
import static io .tiledb .java .api .Datatype .TILEDB_UINT8 ;
31
32
import static io .tiledb .java .api .Layout .*;
32
33
import static io .tiledb .java .api .QueryType .*;
@@ -118,13 +119,16 @@ public void arrayCreate() throws Exception {
118
119
Attribute a1 = new Attribute (ctx , "a1" , TILEDB_INT32 );
119
120
a1 .setNullable (true );
120
121
Attribute a2 = new Attribute (ctx , "a2" , TILEDB_FLOAT32 );
122
+ Attribute a3 = new Attribute (ctx , "a3" , TILEDB_STRING_ASCII );
123
+ a3 .setCellVar ();
121
124
122
125
ArraySchema schema = new ArraySchema (ctx , TILEDB_DENSE );
123
126
schema .setTileOrder (TILEDB_ROW_MAJOR );
124
127
schema .setCellOrder (TILEDB_ROW_MAJOR );
125
128
schema .setDomain (domain );
126
129
schema .addAttribute (a1 );
127
130
schema .addAttribute (a2 );
131
+ schema .addAttribute (a3 );
128
132
129
133
schema .check ();
130
134
@@ -135,6 +139,10 @@ public void arrayWrite() throws Exception {
135
139
136
140
Array my_dense_array = new Array (ctx , arrayURI , TILEDB_WRITE );
137
141
142
+ NativeArray a3_offsets =
143
+ new NativeArray (ctx , new long [] {0 , 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 }, Datatype .TILEDB_UINT64 );
144
+ NativeArray a3_data = new NativeArray (ctx , "aabbccddeeffgghhii" , Datatype .TILEDB_STRING_ASCII );
145
+
138
146
// Prepare cell buffers
139
147
NativeArray a1_data =
140
148
new NativeArray (ctx , new int [] {8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 }, TILEDB_INT32 );
@@ -152,7 +160,9 @@ public void arrayWrite() throws Exception {
152
160
query
153
161
.setLayout (TILEDB_ROW_MAJOR )
154
162
.setBufferNullable ("a1" , a1_data , a1Bytemap )
155
- .setBuffer ("a2" , buffer_a2 );
163
+ .setBuffer ("a2" , buffer_a2 )
164
+ .setDataBuffer ("a3" , a3_data )
165
+ .setOffsetsBuffer ("a3" , a3_offsets );
156
166
// Submit query
157
167
query .submit ();
158
168
query .finalizeQuery ();
@@ -187,7 +197,9 @@ private void arrayRead() throws Exception {
187
197
QueryCondition con3 = con1 .combine (con2 , TILEDB_AND );
188
198
QueryCondition con4 = new QueryCondition (ctx , TILEDB_INT32 , "a1" , 9 , TILEDB_EQ );
189
199
QueryCondition con5 = con4 .combine (con3 , TILEDB_OR );
190
- query .setCondition (con5 );
200
+ QueryCondition con6 = new QueryCondition (ctx , TILEDB_STRING_ASCII , "a3" , "aa" , TILEDB_EQ );
201
+ QueryCondition con7 = con6 .combine (con5 , TILEDB_OR );
202
+ query .setCondition (con7 );
191
203
192
204
// Submit query
193
205
query .submit ();
@@ -205,17 +217,15 @@ private void arrayRead() throws Exception {
205
217
// to some bugs.
206
218
// check a1
207
219
Assert .assertArrayEquals (
208
- a1_buff ,
209
- new int [] {
210
- -2147483648 , 9 , -2147483648 , -2147483648 , -2147483648 , 13 , -2147483648 , -2147483648 , 16
211
- });
220
+ new int [] {8 , 9 , -2147483648 , -2147483648 , -2147483648 , 13 , -2147483648 , -2147483648 , 16 },
221
+ a1_buff );
212
222
213
223
// check a2
214
224
Assert .assertArrayEquals (
215
- a2_buff ,
216
225
new float [] {
217
- Float . NaN , 14.1f , Float .NaN , Float .NaN , Float .NaN , 15.3f , Float .NaN , Float .NaN , 19.1f
226
+ 13.2f , 14.1f , Float .NaN , Float .NaN , Float .NaN , 15.3f , Float .NaN , Float .NaN , 19.1f
218
227
},
228
+ a2_buff ,
219
229
0.1f );
220
230
}
221
231
}
0 commit comments