diff --git a/external/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/PostgresIntegrationSuite.scala b/external/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/PostgresIntegrationSuite.scala index c3920bdeb28ea..36d96a69ec659 100644 --- a/external/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/PostgresIntegrationSuite.scala +++ b/external/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/PostgresIntegrationSuite.scala @@ -83,6 +83,13 @@ class PostgresIntegrationSuite extends DockerJDBCIntegrationSuite { ).executeUpdate() conn.prepareStatement("INSERT INTO char_types VALUES " + "('abcd', 'efgh', 'ijkl', 'mnop', 'q')").executeUpdate() + + conn.prepareStatement("CREATE TABLE char_array_types (" + + "c0 char(4)[], c1 character(4)[], c2 character varying(4)[], c3 varchar(4)[], c4 bpchar[])" + ).executeUpdate() + conn.prepareStatement("INSERT INTO char_array_types VALUES " + + """('{"a", "bcd"}', '{"ef", "gh"}', '{"i", "j", "kl"}', '{"mnop"}', '{"q", "r"}')""" + ).executeUpdate() } test("Type mapping for various types") { @@ -235,4 +242,16 @@ class PostgresIntegrationSuite extends DockerJDBCIntegrationSuite { assert(row(0).getString(3) === "mnop") assert(row(0).getString(4) === "q") } + + test("SPARK-32576: character array type tests") { + val df = sqlContext.read.jdbc(jdbcUrl, "char_array_types", new Properties) + val row = df.collect() + assert(row.length == 1) + assert(row(0).length === 5) + assert(row(0).getSeq[String](0) === Seq("a ", "bcd ")) + assert(row(0).getSeq[String](1) === Seq("ef ", "gh ")) + assert(row(0).getSeq[String](2) === Seq("i", "j", "kl")) + assert(row(0).getSeq[String](3) === Seq("mnop")) + assert(row(0).getSeq[String](4) === Seq("q", "r")) + } }