You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "bobbai00 (via GitHub)" <gi...@apache.org> on 2026/04/15 22:09:34 UTC
[I] Remove or replace `mysql-connector-java` [texera]
bobbai00 opened a new issue, #4393:
URL: https://github.com/apache/texera/issues/4393
### Task Summary
mysql-connector-java is ASF [Category X](https://www.apache.org/legal/resolved.html#category-x) and cannot be bundled in binary distributions. Currently it is used by `MySQLSourceOperator`, we should either replace this library with other libraries with good license, or we should remove it, along with the `MySQLSourceOperator` together
### Priority
P1 – High
### Task Type
- [ ] Code Implementation
- [ ] Documentation
- [x] Refactor / Cleanup
- [ ] Testing / QA
- [ ] DevOps / Deployment
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "bobbai00 (via GitHub)" <gi...@apache.org>.
bobbai00 closed issue #4393: Remove or replace `mysql-connector-java`
URL: https://github.com/apache/texera/issues/4393
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "bobbai00 (via GitHub)" <gi...@apache.org>.
bobbai00 commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4270587584
I looked into this a bit. There seem to be 2 reasonable choices for us:
The first would be to swap `mysql-connector-java` for an Apache-2.0 licensed MySQL client, such as the Vert.x MySQL Client (`io.vertx:vertx-mysql-client`) or the asyncer fork of r2dbc-mysql (`io.asyncer:r2dbc-mysql`). But neither uses JDBC — they're reactive clients — so adopting either would mean rewriting `MySQLSourceOperator` against a different API.
The second option is to keep the JDBC-based implementation but stop bundling the driver. JDBC itself is just a set of interfaces in the JDK (`java.sql.*`) and carries no license concerns; only the `mysql-connector-java` jar does. This is the approach Calcite and Flink take: they compile against the JDBC API, load the driver
dynamically at runtime, and leave it to the user to supply the jar. Concretely, on our side we'd remove the dependency from the binary distribution and replace any static reference to the driver class with a dynamic load, e.g. `Class.forName("com.mysql.cj.jdbc.Driver")` before opening a connection. On the user side, they would download
`mysql-connector-j-x.x.x.jar` from MySQL themselves and drop it into Texera's classpath — for example into a `lib/` folder that gets picked up at startup, or by setting `-cp` when launching. We'd document this in the MySQL operator's README.
Which way do you think we should go with? @Yicong-Huang @chenlica @aglinxinyuan @Xiao-zhen-Liu
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "chenlica (via GitHub)" <gi...@apache.org>.
chenlica commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4275082746
@pjfanning We support MySQL because some of our use cases have their data in MySQL. @bobbai00 To simplify the first release, I think we can remove MySQL support. We can revisit it in the fututre.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "chenlica (via GitHub)" <gi...@apache.org>.
chenlica commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4272139345
The second option complicates the user experience. Thus I support the first option? Is it easy to do?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "Yicong-Huang (via GitHub)" <gi...@apache.org>.
Yicong-Huang commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4271569414
Thanks for the dig. As we are releasing the docker image, which supposedly require us to provide all dependencies, my understanding is that the second path won't work for us.
In this regard I think we can go to option 1 in the long run. We don't need to be bundled with JDBC. I've never used reactive clients so not sure the difference. Is option 1 easy to try? Maybe we could ask agent to give it a try.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4274323428
Why use mysql? MariaDB, Postgres and more are good OSS alternatives.
You can optionally support MySQL but it can't be mandatory.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "bobbai00 (via GitHub)" <gi...@apache.org>.
bobbai00 commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4275141421
> [@pjfanning](https://github.com/pjfanning) We support MySQL because some of our use cases have their data in MySQL. [@bobbai00](https://github.com/bobbai00) To simplify the first release, I think we can remove MySQL support. We can revisit it in the fututre.
@pjfanning @chenlica Thanks for the comments. I also support removing MySQL support.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "bobbai00 (via GitHub)" <gi...@apache.org>.
bobbai00 commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4275379237
> I suggest we go with this plan.
@Yicong-Huang what's your opinion on this? I tried using the reactive clients (I tried https://vertx.io/docs/vertx-mysql-client/java/)to replace `mysql-connector-java`, but because those clients are async, we would need to define certain buffer & poll mechanism in the operator execution.
An alternative is to rewrite this operator to be a Python-based operator, using package like: https://pymysql.readthedocs.io/en/latest/ (a MIT-licensed package)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "chenlica (via GitHub)" <gi...@apache.org>.
chenlica commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4275145417
I suggest we go with this plan.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "Yicong-Huang (via GitHub)" <gi...@apache.org>.
Yicong-Huang commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4256009535
Do we have alternative libs to use?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Remove or replace `mysql-connector-java` [texera]
Posted by "Yicong-Huang (via GitHub)" <gi...@apache.org>.
Yicong-Huang commented on issue #4393:
URL: https://github.com/apache/texera/issues/4393#issuecomment-4275388607
I think given the complexity, we could temporally stop supporting it for now. To simplify things, I suggest you remove only the Exec and keep the Desc, if possible, so it won't cause backward compatibility issues with workflows stored in db. For execution, simply raise an error that the executor is not available.
We need to revisit this operator in the future. Solutions discussed in this issue can be options, along with replacing it with Python implementation.
@pjfanning these are for source operators that serve as connectors of data sources. We do have Postgres source operator as well.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org