21
21
import com .risingwave .proto .Data ;
22
22
import java .util .ArrayList ;
23
23
import java .util .List ;
24
+ import org .apache .iceberg .Schema ;
25
+ import org .apache .iceberg .data .GenericRecord ;
26
+ import org .apache .iceberg .data .Record ;
27
+ import org .apache .iceberg .types .Types ;
24
28
import org .junit .Assert ;
25
29
import org .junit .Test ;
26
30
@@ -31,29 +35,42 @@ public void testInsert() {
31
35
SinkRow row = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 );
32
36
List <Comparable <Object >> key = new ArrayList <>();
33
37
key .add ((Comparable <Object >) row .get (0 ));
38
+ Schema schema = new Schema (Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()));
39
+ Record r = GenericRecord .create (schema );
40
+ r .set (0 , row .get (0 ));
34
41
35
- sinkRowMap .insert (key , row );
42
+ sinkRowMap .insert (key , r );
36
43
assertEquals (1 , sinkRowMap .map .size ());
37
44
assertEquals (null , sinkRowMap .map .get (key ).getDelete ());
38
- assertEquals (row , sinkRowMap .map .get (key ).getInsert ());
45
+ assertEquals (r , sinkRowMap .map .get (key ).getInsert ());
39
46
}
40
47
41
48
@ Test
42
49
public void testInsertAfterDelete () {
43
50
SinkRowMap sinkRowMap = new SinkRowMap ();
51
+ Schema schema =
52
+ new Schema (
53
+ Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()),
54
+ Types .NestedField .optional (1 , "name" , Types .StringType .get ()));
44
55
45
56
SinkRow row1 = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 , "Alice" );
46
57
List <Comparable <Object >> key1 = new ArrayList <>();
47
58
key1 .add ((Comparable <Object >) row1 .get (0 ));
59
+ Record r1 = GenericRecord .create (schema );
60
+ r1 .set (0 , row1 .get (0 ));
61
+ r1 .set (1 , row1 .get (1 ));
48
62
SinkRow row2 = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 , "Bob" );
49
63
List <Comparable <Object >> key2 = new ArrayList <>();
50
64
key2 .add ((Comparable <Object >) row2 .get (0 ));
65
+ Record r2 = GenericRecord .create (schema );
66
+ r2 .set (0 , row2 .get (0 ));
67
+ r2 .set (1 , row2 .get (1 ));
51
68
52
- sinkRowMap .delete (key1 , row1 );
53
- sinkRowMap .insert (key1 , row2 );
69
+ sinkRowMap .delete (key1 , r1 );
70
+ sinkRowMap .insert (key1 , r2 );
54
71
assertEquals (1 , sinkRowMap .map .size ());
55
- assertEquals (row1 , sinkRowMap .map .get (key1 ).getDelete ());
56
- assertEquals (row2 , sinkRowMap .map .get (key1 ).getInsert ());
72
+ assertEquals (r1 , sinkRowMap .map .get (key1 ).getDelete ());
73
+ assertEquals (r2 , sinkRowMap .map .get (key1 ).getInsert ());
57
74
}
58
75
59
76
@ Test
@@ -62,11 +79,14 @@ public void testInsertAfterInsert() {
62
79
SinkRow row = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 );
63
80
List <Comparable <Object >> key = new ArrayList <>();
64
81
key .add ((Comparable <Object >) row .get (0 ));
82
+ Schema schema = new Schema (Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()));
83
+ Record r = GenericRecord .create (schema );
84
+ r .set (0 , row .get (0 ));
65
85
66
- sinkRowMap .insert (key , row );
86
+ sinkRowMap .insert (key , r );
67
87
boolean exceptionThrown = false ;
68
88
try {
69
- sinkRowMap .insert (key , row );
89
+ sinkRowMap .insert (key , r );
70
90
} catch (RuntimeException e ) {
71
91
exceptionThrown = true ;
72
92
Assert .assertTrue (
@@ -87,10 +107,14 @@ public void testDelete() {
87
107
List <Comparable <Object >> key = new ArrayList <>();
88
108
key .add ((Comparable <Object >) row .get (0 ));
89
109
90
- sinkRowMap .delete (key , row );
110
+ Schema schema = new Schema (Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()));
111
+ Record r = GenericRecord .create (schema );
112
+ r .set (0 , row .get (0 ));
113
+
114
+ sinkRowMap .delete (key , r );
91
115
assertEquals (1 , sinkRowMap .map .size ());
92
116
assertEquals (null , sinkRowMap .map .get (key ).getInsert ());
93
- assertEquals (row , sinkRowMap .map .get (key ).getDelete ());
117
+ assertEquals (r , sinkRowMap .map .get (key ).getDelete ());
94
118
}
95
119
96
120
@ Test
@@ -100,10 +124,14 @@ public void testDeleteAfterDelete() {
100
124
List <Comparable <Object >> key = new ArrayList <>();
101
125
key .add ((Comparable <Object >) row .get (0 ));
102
126
103
- sinkRowMap .delete (key , row );
127
+ Schema schema = new Schema (Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()));
128
+ Record r = GenericRecord .create (schema );
129
+ r .set (0 , row .get (0 ));
130
+
131
+ sinkRowMap .delete (key , r );
104
132
boolean exceptionThrown = false ;
105
133
try {
106
- sinkRowMap .delete (key , row );
134
+ sinkRowMap .delete (key , r );
107
135
} catch (RuntimeException e ) {
108
136
exceptionThrown = true ;
109
137
Assert .assertTrue (
@@ -122,28 +150,44 @@ public void testDeleteAfterInsert() {
122
150
List <Comparable <Object >> key = new ArrayList <>();
123
151
key .add ((Comparable <Object >) row .get (0 ));
124
152
125
- sinkRowMap .insert (key , row );
126
- sinkRowMap .delete (key , row );
153
+ Schema schema = new Schema (Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()));
154
+ Record r = GenericRecord .create (schema );
155
+ r .set (0 , row .get (0 ));
156
+
157
+ sinkRowMap .insert (key , r );
158
+ sinkRowMap .delete (key , r );
127
159
assertEquals (0 , sinkRowMap .map .size ());
128
160
}
129
161
130
162
@ Test
131
163
public void testDeleteAfterUpdate () {
132
164
SinkRowMap sinkRowMap = new SinkRowMap ();
133
165
166
+ Schema schema =
167
+ new Schema (
168
+ Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()),
169
+ Types .NestedField .optional (1 , "name" , Types .StringType .get ()));
170
+
134
171
SinkRow row1 = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 , "Alice" );
135
172
List <Comparable <Object >> key1 = new ArrayList <>();
136
173
key1 .add ((Comparable <Object >) row1 .get (0 ));
174
+ Record r1 = GenericRecord .create (schema );
175
+ r1 .set (0 , row1 .get (0 ));
176
+ r1 .set (1 , row1 .get (1 ));
177
+
137
178
SinkRow row2 = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 , "Clare" );
138
179
List <Comparable <Object >> key2 = new ArrayList <>();
139
180
key2 .add ((Comparable <Object >) row2 .get (0 ));
181
+ Record r2 = GenericRecord .create (schema );
182
+ r2 .set (0 , row2 .get (0 ));
183
+ r2 .set (1 , row2 .get (1 ));
140
184
141
- sinkRowMap .delete (key1 , row1 );
142
- sinkRowMap .insert (key2 , row2 );
143
- sinkRowMap .delete (key2 , row2 );
185
+ sinkRowMap .delete (key1 , r1 );
186
+ sinkRowMap .insert (key2 , r2 );
187
+ sinkRowMap .delete (key2 , r2 );
144
188
assertEquals (1 , sinkRowMap .map .size ());
145
189
assertEquals (null , sinkRowMap .map .get (key1 ).getInsert ());
146
- assertEquals (row1 , sinkRowMap .map .get (key1 ).getDelete ());
190
+ assertEquals (r1 , sinkRowMap .map .get (key1 ).getDelete ());
147
191
}
148
192
149
193
@ Test
@@ -153,7 +197,10 @@ public void testClear() {
153
197
SinkRow row = new ArraySinkRow (Data .Op .OP_UNSPECIFIED , 1 );
154
198
List <Comparable <Object >> key = new ArrayList <>();
155
199
key .add ((Comparable <Object >) row .get (0 ));
156
- sinkRowMap .insert (key , row );
200
+ Schema schema = new Schema (Types .NestedField .optional (0 , "id" , Types .IntegerType .get ()));
201
+ Record r = GenericRecord .create (schema );
202
+ r .set (0 , row .get (0 ));
203
+ sinkRowMap .insert (key , r );
157
204
158
205
sinkRowMap .clear ();
159
206
assertEquals (0 , sinkRowMap .map .size ());
0 commit comments