[GitHub] spark pull request #14323: [SPARK-16675][SQL] Avoid per-record type dispatch...

2016-07-26 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/spark/pull/14323


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14323: [SPARK-16675][SQL] Avoid per-record type dispatch...

2016-07-25 Thread HyukjinKwon
Github user HyukjinKwon commented on a diff in the pull request:

https://github.com/apache/spark/pull/14323#discussion_r72185977
  
--- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala
 ---
@@ -138,6 +138,79 @@ object JdbcUtils extends Logging {
   throw new IllegalArgumentException(s"Can't get JDBC type for 
${dt.simpleString}"))
   }
 
+  // A `JDBCValueSetter` is responsible for converting and setting a value 
from `Row` into
+  // a field for `PreparedStatement`. The last argument `Int` means the 
index for the
+  // value to be set in the SQL statement and also used for the value in 
`Row`.
+  private type JDBCValueSetter = (PreparedStatement, Row, Int) => Unit
--- End diff --

Fixed!


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14323: [SPARK-16675][SQL] Avoid per-record type dispatch...

2016-07-25 Thread cloud-fan
Github user cloud-fan commented on a diff in the pull request:

https://github.com/apache/spark/pull/14323#discussion_r72185133
  
--- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala
 ---
@@ -138,6 +138,79 @@ object JdbcUtils extends Logging {
   throw new IllegalArgumentException(s"Can't get JDBC type for 
${dt.simpleString}"))
   }
 
+  // A `JDBCValueSetter` is responsible for converting and setting a value 
from `Row` into
+  // a field for `PreparedStatement`. The last argument `Int` means the 
index for the
+  // value to be set in the SQL statement and also used for the value in 
`Row`.
+  private type JDBCValueSetter = (PreparedStatement, Row, Int) => Unit
--- End diff --

please rename the read path too.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14323: [SPARK-16675][SQL] Avoid per-record type dispatch...

2016-07-25 Thread HyukjinKwon
Github user HyukjinKwon commented on a diff in the pull request:

https://github.com/apache/spark/pull/14323#discussion_r72179986
  
--- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala
 ---
@@ -138,6 +138,80 @@ object JdbcUtils extends Logging {
   throw new IllegalArgumentException(s"Can't get JDBC type for 
${dt.simpleString}"))
   }
 
+  // A `JDBCValueGetter` is responsible for converting, getting a value 
from `Row`
+  // and then setting into a field for `PreparedStatement`. The last 
argument
+  // `Int` means the index for the value to be set in the SQL statement 
and also used
+  // for the value to retrieve from `Row`.
+  private type JDBCValueGetter = (PreparedStatement, Row, Int) => Unit
--- End diff --

Sure! thanks!


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14323: [SPARK-16675][SQL] Avoid per-record type dispatch...

2016-07-25 Thread cloud-fan
Github user cloud-fan commented on a diff in the pull request:

https://github.com/apache/spark/pull/14323#discussion_r72179607
  
--- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala
 ---
@@ -138,6 +138,80 @@ object JdbcUtils extends Logging {
   throw new IllegalArgumentException(s"Can't get JDBC type for 
${dt.simpleString}"))
   }
 
+  // A `JDBCValueGetter` is responsible for converting, getting a value 
from `Row`
+  // and then setting into a field for `PreparedStatement`. The last 
argument
+  // `Int` means the index for the value to be set in the SQL statement 
and also used
+  // for the value to retrieve from `Row`.
+  private type JDBCValueGetter = (PreparedStatement, Row, Int) => Unit
--- End diff --

hmm, I think `setter` is a more proper name here, and we should use 
`getter` for the read path.

`JDBCValueGetter`, sounds like we get the value from JDBC.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14323: [SPARK-16675][SQL] Avoid per-record type dispatch...

2016-07-22 Thread HyukjinKwon
GitHub user HyukjinKwon opened a pull request:

https://github.com/apache/spark/pull/14323

[SPARK-16675][SQL] Avoid per-record type dispatch in JDBC when writing

## What changes were proposed in this pull request?

Currently, `JdbcUtils.savePartition` is doing type-based dispatch for each 
row to write appropriate values.

So, appropriate setters for `PreparedStatement` can be created first 
according to the schema, and then apply them to each row. This approach is 
similar with `CatalystWriteSupport`.

This PR simply make the setters to avoid this.

## How was this patch tested?

Existing tests should cover this.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/HyukjinKwon/spark SPARK-16675

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/spark/pull/14323.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #14323


commit 4284d4621104c3badcb743d908e48f283130b186
Author: hyukjinkwon 
Date:   2016-07-23T02:59:25Z

[SPARK-16675][SQL] Avoid per-record type dispatch in JDBC when writing

commit 8cac7dec9b1b999d3c5aa8ecf2086c40078ea4d9
Author: hyukjinkwon 
Date:   2016-07-23T03:01:16Z

Fix comment




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org