Skip to content

Commit

Permalink
GPL fix (pingcap#2457)
Browse files Browse the repository at this point in the history
  • Loading branch information
shiyuhang0 authored Jul 20, 2022
1 parent 058d58e commit 6fc3c00
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 8 deletions.
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@ Most of the TiSpark logic is inside a thin layer, namely, the [tikv-client](http
- [Example Programs](https://github.com/pingcap/tispark-test/tree/master/tispark-examples)
- [Telemetry](./docs/telemetry.md)

## About mysql-connector-java

We will not provide the `mysql-connector-java` dependency because of the limit of the GPL license.

The following versions of TiSpark's jar will no longer include `mysql-connector-java`.
- TiSpark > 3.0.1
- TiSpark > 2.5.1 for TiSpark 2.5.x
- TiSpark > 2.4.3 for TiSpark 2.4.x

Now, TiSpark needs `mysql-connector-java` for writing and auth. Please import `mysql-connector-java` manually when you need to write or auth.

- you can import it by putting the jar into spark jars file

- you can also import it when you submit spark job like
```
spark-submit --jars tispark-assembly-3.0_2.12-3.1.0-SNAPSHOT.jar,mysql-connector-java-8.0.29.jar
```

## Feature Support

| Feature Support | TiSpark 2.4.x | TiSpark 2.5.x | TiSpark 3.0.x | TiSpark master |
Expand Down
5 changes: 0 additions & 5 deletions assembly/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@
<artifactId>tikv-client</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
</dependencies>

<build>
Expand Down
1 change: 0 additions & 1 deletion assembly/src/main/assembly/assembly.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
<includes>
<include>com.pingcap.tispark:tispark-core-internal:jar</include>
<include>com.pingcap.tikv:tikv-client:jar</include>
<include>mysql:mysql-connector-java:jar</include>
</includes>
<unpack>true</unpack>
</dependencySet>
Expand Down
1 change: 1 addition & 0 deletions core-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

Expand Down
1 change: 1 addition & 0 deletions core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
Expand Down
7 changes: 6 additions & 1 deletion core/src/test/scala/org/apache/spark/sql/QueryTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ package org.apache.spark.sql
import java.sql.{Date, Timestamp}
import java.text.SimpleDateFormat
import java.util.TimeZone

import org.apache.spark.SparkFunSuite
import org.apache.spark.sql.catalyst.plans._
import org.apache.spark.sql.catalyst.util._
import org.apache.spark.sql.execution.columnar.InMemoryRelation
import org.apache.spark.sql.types.StructField

import java.time.LocalDateTime
import scala.collection.JavaConverters._
import scala.collection.mutable.ArrayBuffer

Expand Down Expand Up @@ -303,6 +303,11 @@ abstract class QueryTest extends SparkFunSuite {
value.asInstanceOf[BigDecimal].setScale(2, BigDecimal.RoundingMode.HALF_UP)
case _: Date if colType.equalsIgnoreCase("YEAR") =>
value.toString.split("-")(0)
// mysql-connector-j 8.0.29 it will return LocalDateTime for datetime type
// mysql-connector-j 5.1.47 will return Timestamp for datetime type
// here we just convert LocalDateTime to Timestamp because tispark will return Timestamp now
case v: LocalDateTime =>
Timestamp.valueOf(v)
case default =>
default
}
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
<scalafmt.skip>true</scalafmt.skip>
<scalatest.version>3.0.8</scalatest.version>
<argLine>-Dfile.encoding=UTF-8 -Duser.timezone=GMT+8</argLine>
<mysql.connector.version>5.1.49</mysql.connector.version>
<mysql.connector.version>8.0.29</mysql.connector.version>
<gpg.keyname>fake gpg keyname</gpg.keyname>
<gpg.skip>true</gpg.skip>
<javadoc.skip>true</javadoc.skip>
Expand Down

0 comments on commit 6fc3c00

Please sign in to comment.