|
2 | 2 |
|
3 | 3 | import java.io.File;
|
4 | 4 | import java.io.IOException;
|
| 5 | +import java.math.BigDecimal; |
5 | 6 | import java.sql.Array;
|
6 | 7 | import java.sql.BatchUpdateException;
|
7 | 8 | import java.sql.Connection;
|
@@ -1139,6 +1140,44 @@ public void testNestedArrayInTuple() throws SQLException {
|
1139 | 1140 | Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[1]).get(1), new int[] { 6, 7 });
|
1140 | 1141 | Assert.assertFalse(rs.next());
|
1141 | 1142 | }
|
| 1143 | + |
| 1144 | + Assert.assertFalse(stmt.execute("drop table if exists test_nested_array_in_tuple; " |
| 1145 | + + "create table test_nested_array_in_tuple(id UInt64, val Array(Tuple(UInt16,Array(Decimal(10,0)))))engine=Memory; " |
| 1146 | + + "insert into test_nested_array_in_tuple values(1, [(0, [1, 2]), (1, [2, 3])]), (2, [(2, [4, 5]), (3, [6, 7])])")); |
| 1147 | + try (ResultSet rs = stmt.executeQuery("select * from test_nested_array_in_tuple order by id")) { |
| 1148 | + Assert.assertTrue(rs.next()); |
| 1149 | + Assert.assertEquals(rs.getInt(1), 1); |
| 1150 | + Assert.assertEquals(((Object[]) rs.getObject(2)).length, 2); |
| 1151 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[0]).size(), 2); |
| 1152 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[0]).get(0), UnsignedShort.ZERO); |
| 1153 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[0]).get(1))[0], |
| 1154 | + BigDecimal.valueOf(1)); |
| 1155 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[0]).get(1))[1], |
| 1156 | + BigDecimal.valueOf(2)); |
| 1157 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[1]).size(), 2); |
| 1158 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[1]).get(0), UnsignedShort.ONE); |
| 1159 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[1]).get(1))[0], |
| 1160 | + BigDecimal.valueOf(2)); |
| 1161 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[1]).get(1))[1], |
| 1162 | + BigDecimal.valueOf(3)); |
| 1163 | + Assert.assertTrue(rs.next()); |
| 1164 | + Assert.assertEquals(((Object[]) rs.getObject(2)).length, 2); |
| 1165 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[0]).size(), 2); |
| 1166 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[0]).get(0), |
| 1167 | + UnsignedShort.valueOf((short) 2)); |
| 1168 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[0]).get(1))[0], |
| 1169 | + BigDecimal.valueOf(4)); |
| 1170 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[0]).get(1))[1], |
| 1171 | + BigDecimal.valueOf(5)); |
| 1172 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[1]).size(), 2); |
| 1173 | + Assert.assertEquals(((List<?>) ((Object[]) rs.getObject(2))[1]).get(0), |
| 1174 | + UnsignedShort.valueOf((short) 3)); |
| 1175 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[1]).get(1))[0], |
| 1176 | + BigDecimal.valueOf(6)); |
| 1177 | + Assert.assertEquals(((BigDecimal[]) ((List<?>) ((Object[]) rs.getObject(2))[1]).get(1))[1], |
| 1178 | + BigDecimal.valueOf(7)); |
| 1179 | + Assert.assertFalse(rs.next()); |
| 1180 | + } |
1142 | 1181 | }
|
1143 | 1182 | }
|
1144 | 1183 |
|
|
0 commit comments