Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
c7abad3
Added stringDataType option to jdbc connection properties
rama-mullapudi Aug 22, 2015
f1d0b9e
Added maxlength for field metadata so string types can use for VARCHAR.
rama-mullapudi Aug 27, 2015
faff507
Added maxlength for field metadata so string types can use for VARCHAR.
rama-mullapudi Aug 27, 2015
c4b4477
Added maxlength for field metadata so string types can use for VARCHAR.
rama-mullapudi Aug 27, 2015
35e61f3
Added method override for getJDBCType to take 2 parameters DataType a…
rama-mullapudi Sep 14, 2015
dd22b2f
Sync to master
rama-mullapudi Sep 14, 2015
cd809c5
Sync Master
rama-mullapudi Sep 26, 2015
0cfeefa
Sync Master
rama-mullapudi Sep 26, 2015
dddc137
Updated a call with added parameter
rama-mullapudi Sep 26, 2015
5f532e8
Fixed spark code style where comment exceeded 100 chars, and changed …
rama-mullapudi Sep 28, 2015
03f4d96
Merge remote-tracking branch 'upstream/master'
rama-mullapudi Sep 28, 2015
27f118b
Fixed sync with master issue
rama-mullapudi Sep 28, 2015
44e1978
Fixed JDBCSuite for DB2 to send extra parameter for getJDBCType
rama-mullapudi Sep 28, 2015
e605a11
Fixed JDBCSuite for DB2 to send extra parameter for getJDBCType
rama-mullapudi Sep 28, 2015
4cae11b
Fixed JDBCSuite for DB2 to send extra parameter for getJDBCType
rama-mullapudi Sep 29, 2015
4c2a7a4
Updated JDBCDialects to save VARCHAR size to metadata
rama-mullapudi Sep 29, 2015
a0cb024
Updated JDBCDialects to save VARCHAR size to metadata
rama-mullapudi Sep 29, 2015
d50bdf7
Changed call for getJDBCType to call both methods with datatype and m…
rama-mullapudi Oct 4, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fixed spark code style where comment exceeded 100 chars, and changed …
…java.sql.Types.CHAR to java.sql.Types.VARCHAR when type used is VARCHAR
  • Loading branch information
rama-mullapudi committed Sep 28, 2015
commit 5f532e8c0de5fab2f354d15be414d642ffc35aef
Original file line number Diff line number Diff line change
Expand Up @@ -166,13 +166,14 @@ object JdbcUtils extends Logging {
val dialect = JdbcDialects.get(url)
df.schema.fields foreach { field => {
val name = field.name
/* If field metadata exists then call getJDBCType with field data type and metadata else just call with field data type
/* Modified getJDBCType with added parameter metadata
* To override field metadata in Scala
* import org.apache.spark.sql.types.MetadataBuilder
* val metadata = new MetadataBuilder().putLong("maxlength", 10).build()
* df.withColumn("colName", col("colName").as("colName", metadata)
*/
val typ: String = dialect.getJDBCType(field.dataType, field.metadata).map(_.databaseTypeDefinition).getOrElse(
val typ: String = dialect.getJDBCType(field.dataType, field.metadata)
.map(_.databaseTypeDefinition).getOrElse(
field.dataType match {
case IntegerType => "INTEGER"
case LongType => "BIGINT"
Expand Down Expand Up @@ -204,7 +205,7 @@ object JdbcUtils extends Logging {
properties: Properties = new Properties()) {
val dialect = JdbcDialects.get(url)
val nullTypes: Array[Int] = df.schema.fields.map { field =>
/* If field metadata exists then call getJDBCType with field data type and metadata else just call with field data type
/* Modified getJDBCType with added parameter metadata
* To override field metadata in Scala
* import org.apache.spark.sql.types.MetadataBuilder
* val metadata = new MetadataBuilder().putLong("maxlength", 10).build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ case object DB2Dialect extends JdbcDialect {
case object MsSqlServerDialect extends JdbcDialect {
override def canHandle(url: String): Boolean = url.startsWith("jdbc:sqlserver")
override def getCatalystType(
sqlType: Int, typeName: String, size: Int, md: MetadataBuilder): Option[DataType] = {
sqlType: Int, typeName: String, size: Int, md: MetadataBuilder): Option[DataType] = {
if (typeName.contains("datetimeoffset")) {
// String is recommend by Microsoft SQL Server for datetimeoffset types in non-MS clients
Some(StringType)
Expand All @@ -275,7 +275,7 @@ case object OracleDialect extends JdbcDialect {
override def canHandle(url: String): Boolean = url.startsWith("jdbc:oracle")
override def getJDBCType(dt: DataType, md: Metadata): Option[JdbcType] = {
if (dt == StringType && md.contains("maxlength")) {
Some(JdbcType(s"VARCHAR(${md.getLong("maxlength")})", java.sql.Types.CHAR))
Some(JdbcType(s"VARCHAR(${md.getLong("maxlength")})", java.sql.Types.VARCHAR))
} else if (dt == StringType ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Remove the end single space in parenthesis.

Some(JdbcType("CLOB", java.sql.Types.CLOB))
} else if (dt == BooleanType ) {
Expand All @@ -293,9 +293,9 @@ case object NetezzaDialect extends JdbcDialect {
override def canHandle(url: String): Boolean = url.startsWith("jdbc:netezza")
override def getJDBCType(dt: DataType, md: Metadata): Option[JdbcType] = {
if (dt == StringType && md.contains("maxlength")) {
Some(JdbcType(s"VARCHAR(${md.getLong("maxlength")})", java.sql.Types.CHAR))
Some(JdbcType(s"VARCHAR(${md.getLong("maxlength")})", java.sql.Types.VARCHAR))
} else if (dt == StringType ) {
Some(JdbcType("VARCHAR(255)", java.sql.Types.CHAR))
Some(JdbcType("VARCHAR(255)", java.sql.Types.VARCHAR))
} else if (dt == BinaryType ) {
Some(JdbcType("BYTEINT", java.sql.Types.BINARY))
} else if (dt == BooleanType ) {
Expand Down