@@ -3,7 +3,7 @@ package tanvd.aorm
33import org.joda.time.DateTime
44import org.joda.time.format.DateTimeFormat
55import org.joda.time.format.DateTimeFormatter
6- import ru.yandex.clickhouse.ClickHouseUtil
6+ import tanvd.aorm.utils.escapeQuotes
77import java.math.BigDecimal
88import java.sql.*
99import java.text.SimpleDateFormat
@@ -301,8 +301,8 @@ class DbArrayInt8 : DbNumericArrayType<Byte>("Array(Int8)",
301301 { DbInt8 () })
302302
303303class DbArrayUInt8 : DbNumericArrayType <Byte >(" Array(UInt8)" ,
304- { resultSet, name -> (resultSet.getArray(name).array as ShortArray ).map { it.toByte() } },
305- { resultSet, index -> (resultSet.getArray(index).array as ShortArray ).map { it.toByte() } },
304+ { resultSet, name -> (resultSet.getArray(name).array as ByteArray ).toList() },
305+ { resultSet, index -> (resultSet.getArray(index).array as ByteArray ).toList() },
306306 { DbUInt8 () })
307307
308308class DbArrayInt16 : DbNumericArrayType <Short >(" Array(Int16)" ,
@@ -311,8 +311,8 @@ class DbArrayInt16 : DbNumericArrayType<Short>("Array(Int16)",
311311 { DbInt16 () })
312312
313313class DbArrayUInt16 : DbNumericArrayType <Short >(" Array(UInt16)" ,
314- { resultSet, name -> (resultSet.getArray(name).array as IntArray ).map { it.toShort() } },
315- { resultSet, index -> (resultSet.getArray(index).array as IntArray ).map { it.toShort() } },
314+ { resultSet, name -> (resultSet.getArray(name).array as ShortArray ).toList() },
315+ { resultSet, index -> (resultSet.getArray(index).array as ShortArray ).toList() },
316316 { DbUInt16 () })
317317
318318class DbArrayInt32 : DbNumericArrayType <Int >(" Array(Int32)" ,
@@ -321,16 +321,15 @@ class DbArrayInt32 : DbNumericArrayType<Int>("Array(Int32)",
321321 { DbInt32 () })
322322
323323class DbArrayUInt32 : DbNumericArrayType <Int >(" Array(UInt32)" ,
324- { resultSet, name -> (resultSet.getArray(name).array as LongArray ).map { it.toInt() } },
325- { resultSet, index -> (resultSet.getArray(index).array as LongArray ).map { it.toInt() } },
324+ { resultSet, name -> (resultSet.getArray(name).array as IntArray ).toList() },
325+ { resultSet, index -> (resultSet.getArray(index).array as IntArray ).toList() },
326326 { DbUInt32 () })
327327
328328class DbArrayInt64 : DbNumericArrayType <Long >(" Array(Int64)" ,
329329 { resultSet, name -> (resultSet.getArray(name).array as LongArray ).toList() },
330330 { resultSet, index -> (resultSet.getArray(index).array as LongArray ).toList() },
331331 { DbInt64 () })
332332
333- @Suppress(" UNCHECKED_CAST" )
334333class DbArrayUInt64 : DbNumericArrayType <Long >(" Array(UInt64)" ,
335334 { resultSet, name -> (resultSet.getArray(name).array as LongArray ).toList() },
336335 { resultSet, index -> (resultSet.getArray(index).array as LongArray ).toList() },
@@ -381,11 +380,11 @@ class DbArrayBoolean : DbArrayType<Boolean>() {
381380 override fun toSqlName (): String = " Array(UInt8)"
382381
383382 override fun getValue (name : String , result : ResultSet ): List <Boolean > {
384- return (result.getArray(name).array as ShortArray ).map { it== 1 .toShort () }
383+ return (result.getArray(name).array as ByteArray ).map { it == 1 .toByte () }
385384 }
386385
387386 override fun getValue (index : Int , result : ResultSet ): List <Boolean > {
388- return (result.getArray(index).array as ShortArray ).map { it == 1 .toShort () }
387+ return (result.getArray(index).array as ByteArray ).map { it == 1 .toByte () }
389388 }
390389
391390 override fun setValue (index : Int , statement : PreparedStatement , value : List <Boolean >) {
@@ -419,7 +418,7 @@ class DbString : DbPrimitiveType<String>() {
419418 statement.setString(index, value)
420419 }
421420
422- override fun toStringValue (value : String ): String = " '${ClickHouseUtil .escape(value )} '"
421+ override fun toStringValue (value : String ): String = " '${value.escapeQuotes( )} '"
423422
424423 override fun toArray (): DbArrayType <String > = DbArrayString ()
425424}
@@ -446,7 +445,7 @@ class DbArrayString : DbArrayType<String>() {
446445 }
447446
448447 override fun toStringValue (value : List <String >): String =
449- value.joinToString(prefix = " [" , postfix = " ]" ) { " '${ClickHouseUtil .escape(it )} '" }
448+ value.joinToString(prefix = " [" , postfix = " ]" ) { " '${it.escapeQuotes( )} '" }
450449
451450 override fun toPrimitive (): DbPrimitiveType <String > = DbString ()
452451}
0 commit comments