apache-airflow-providers-mysql 6.1.0rc1__tar.gz → 6.2.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (15) hide show
  1. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/PKG-INFO +24 -25
  2. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/README.rst +20 -21
  3. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/pyproject.toml +31 -8
  4. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/__init__.py +1 -1
  5. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/get_provider_info.py +3 -1
  6. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/hooks/mysql.py +15 -3
  7. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/LICENSE +0 -0
  8. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/assets/__init__.py +0 -0
  9. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/assets/mysql.py +0 -0
  10. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/hooks/__init__.py +0 -0
  11. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/transfers/__init__.py +0 -0
  12. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/transfers/presto_to_mysql.py +0 -0
  13. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/transfers/s3_to_mysql.py +0 -0
  14. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/transfers/trino_to_mysql.py +0 -0
  15. {apache_airflow_providers_mysql-6.1.0rc1 → apache_airflow_providers_mysql-6.2.0rc1}/src/airflow/providers/mysql/transfers/vertica_to_mysql.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-mysql
3
- Version: 6.1.0rc1
3
+ Version: 6.2.0rc1
4
4
  Summary: Provider package apache-airflow-providers-mysql for Apache Airflow
5
5
  Keywords: airflow-provider,mysql,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -31,8 +31,8 @@ Requires-Dist: apache-airflow-providers-presto ; extra == "presto"
31
31
  Requires-Dist: apache-airflow-providers-trino ; extra == "trino"
32
32
  Requires-Dist: apache-airflow-providers-vertica ; extra == "vertica"
33
33
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
34
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0/changelog.html
35
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0
34
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0/changelog.html
35
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0
36
36
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
37
37
  Project-URL: Source Code, https://github.com/apache/airflow
38
38
  Project-URL: Twitter, https://x.com/ApacheAirflow
@@ -45,32 +45,31 @@ Provides-Extra: trino
45
45
  Provides-Extra: vertica
46
46
 
47
47
 
48
- .. Licensed to the Apache Software Foundation (ASF) under one
49
- or more contributor license agreements. See the NOTICE file
50
- distributed with this work for additional information
51
- regarding copyright ownership. The ASF licenses this file
52
- to you under the Apache License, Version 2.0 (the
53
- "License"); you may not use this file except in compliance
54
- with the License. You may obtain a copy of the License at
48
+ .. Licensed to the Apache Software Foundation (ASF) under one
49
+ or more contributor license agreements. See the NOTICE file
50
+ distributed with this work for additional information
51
+ regarding copyright ownership. The ASF licenses this file
52
+ to you under the Apache License, Version 2.0 (the
53
+ "License"); you may not use this file except in compliance
54
+ with the License. You may obtain a copy of the License at
55
55
 
56
- .. http://www.apache.org/licenses/LICENSE-2.0
56
+ .. http://www.apache.org/licenses/LICENSE-2.0
57
57
 
58
- .. Unless required by applicable law or agreed to in writing,
59
- software distributed under the License is distributed on an
60
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
61
- KIND, either express or implied. See the License for the
62
- specific language governing permissions and limitations
63
- under the License.
58
+ .. Unless required by applicable law or agreed to in writing,
59
+ software distributed under the License is distributed on an
60
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
61
+ KIND, either express or implied. See the License for the
62
+ specific language governing permissions and limitations
63
+ under the License.
64
64
 
65
- .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
66
-
67
- .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
68
- `PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
65
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
69
66
 
67
+ .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
68
+ ``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
70
69
 
71
70
  Package ``apache-airflow-providers-mysql``
72
71
 
73
- Release: ``6.1.0``
72
+ Release: ``6.2.0``
74
73
 
75
74
 
76
75
  `MySQL <https://www.mysql.com/>`__
@@ -83,7 +82,7 @@ This is a provider package for ``mysql`` provider. All classes for this provider
83
82
  are in ``airflow.providers.mysql`` python package.
84
83
 
85
84
  You can find package information and changelog for the provider
86
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0/>`_.
85
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0/>`_.
87
86
 
88
87
  Installation
89
88
  ------------
@@ -132,5 +131,5 @@ Dependent package
132
131
  ============================================================================================================== ===============
133
132
 
134
133
  The changelog for the provider package can be found in the
135
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0/changelog.html>`_.
134
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0/changelog.html>`_.
136
135
 
@@ -1,30 +1,29 @@
1
1
 
2
- .. Licensed to the Apache Software Foundation (ASF) under one
3
- or more contributor license agreements. See the NOTICE file
4
- distributed with this work for additional information
5
- regarding copyright ownership. The ASF licenses this file
6
- to you under the Apache License, Version 2.0 (the
7
- "License"); you may not use this file except in compliance
8
- with the License. You may obtain a copy of the License at
2
+ .. Licensed to the Apache Software Foundation (ASF) under one
3
+ or more contributor license agreements. See the NOTICE file
4
+ distributed with this work for additional information
5
+ regarding copyright ownership. The ASF licenses this file
6
+ to you under the Apache License, Version 2.0 (the
7
+ "License"); you may not use this file except in compliance
8
+ with the License. You may obtain a copy of the License at
9
9
 
10
- .. http://www.apache.org/licenses/LICENSE-2.0
10
+ .. http://www.apache.org/licenses/LICENSE-2.0
11
11
 
12
- .. Unless required by applicable law or agreed to in writing,
13
- software distributed under the License is distributed on an
14
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- KIND, either express or implied. See the License for the
16
- specific language governing permissions and limitations
17
- under the License.
12
+ .. Unless required by applicable law or agreed to in writing,
13
+ software distributed under the License is distributed on an
14
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ KIND, either express or implied. See the License for the
16
+ specific language governing permissions and limitations
17
+ under the License.
18
18
 
19
- .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
20
-
21
- .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
22
- `PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
19
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
23
20
 
21
+ .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
22
+ ``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
24
23
 
25
24
  Package ``apache-airflow-providers-mysql``
26
25
 
27
- Release: ``6.1.0``
26
+ Release: ``6.2.0``
28
27
 
29
28
 
30
29
  `MySQL <https://www.mysql.com/>`__
@@ -37,7 +36,7 @@ This is a provider package for ``mysql`` provider. All classes for this provider
37
36
  are in ``airflow.providers.mysql`` python package.
38
37
 
39
38
  You can find package information and changelog for the provider
40
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0/>`_.
41
40
 
42
41
  Installation
43
42
  ------------
@@ -86,4 +85,4 @@ Dependent package
86
85
  ============================================================================================================== ===============
87
86
 
88
87
  The changelog for the provider package can be found in the
89
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0/changelog.html>`_.
88
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0/changelog.html>`_.
@@ -20,12 +20,12 @@
20
20
  # IF YOU WANT TO MODIFY THIS FILE EXCEPT DEPENDENCIES, YOU SHOULD MODIFY THE TEMPLATE
21
21
  # `pyproject_TEMPLATE.toml.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
22
22
  [build-system]
23
- requires = ["flit_core==3.10.1"]
23
+ requires = ["flit_core==3.11.0"]
24
24
  build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-mysql"
28
- version = "6.1.0.rc1"
28
+ version = "6.2.0.rc1"
29
29
  description = "Provider package apache-airflow-providers-mysql for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -52,8 +52,10 @@ classifiers = [
52
52
  ]
53
53
  requires-python = "~=3.9"
54
54
 
55
- # The dependencies should be modified in place in the generated file
55
+ # The dependencies should be modified in place in the generated file.
56
56
  # Any change in the dependencies is preserved when the file is regenerated
57
+ # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
58
+ # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
57
59
  dependencies = [
58
60
  "apache-airflow>=2.9.0rc0",
59
61
  "apache-airflow-providers-common-sql>=1.20.0rc0",
@@ -87,9 +89,33 @@ dependencies = [
87
89
  "apache-airflow-providers-vertica"
88
90
  ]
89
91
 
92
+ [dependency-groups]
93
+ dev = [
94
+ "apache-airflow",
95
+ "apache-airflow-task-sdk",
96
+ "apache-airflow-devel-common",
97
+ "apache-airflow-providers-amazon",
98
+ "apache-airflow-providers-common-sql",
99
+ "apache-airflow-providers-openlineage",
100
+ "apache-airflow-providers-presto",
101
+ "apache-airflow-providers-trino",
102
+ "apache-airflow-providers-vertica",
103
+ # Additional devel dependencies (do not remove this line and add extra development dependencies)
104
+ ]
105
+
106
+ [tool.uv.sources]
107
+ # These names must match the names as defined in the pyproject.toml of the workspace items,
108
+ # *not* the workspace folder paths
109
+ apache-airflow = {workspace = true}
110
+ apache-airflow-devel-common = {workspace = true}
111
+ apache-airflow-task-sdk = {workspace = true}
112
+ apache-airflow-providers-common-sql = {workspace = true}
113
+ apache-airflow-providers-fab = {workspace = true}
114
+ apache-airflow-providers-standard = {workspace = true}
115
+
90
116
  [project.urls]
91
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0"
92
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.1.0/changelog.html"
117
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0"
118
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.2.0/changelog.html"
93
119
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
94
120
  "Source Code" = "https://github.com/apache/airflow"
95
121
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -101,6 +127,3 @@ provider_info = "airflow.providers.mysql.get_provider_info:get_provider_info"
101
127
 
102
128
  [tool.flit.module]
103
129
  name = "airflow.providers.mysql"
104
-
105
- [tool.pytest.ini_options]
106
- ignore = "tests/system/"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "6.1.0"
32
+ __version__ = "6.2.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.9.0"
@@ -27,8 +27,9 @@ def get_provider_info():
27
27
  "name": "MySQL",
28
28
  "description": "`MySQL <https://www.mysql.com/>`__\n",
29
29
  "state": "ready",
30
- "source-date-epoch": 1739963874,
30
+ "source-date-epoch": 1741509216,
31
31
  "versions": [
32
+ "6.2.0",
32
33
  "6.1.0",
33
34
  "6.0.0",
34
35
  "5.7.4",
@@ -130,4 +131,5 @@ def get_provider_info():
130
131
  "trino": ["apache-airflow-providers-trino"],
131
132
  "vertica": ["apache-airflow-providers-vertica"],
132
133
  },
134
+ "devel-dependencies": [],
133
135
  }
@@ -240,10 +240,16 @@ class MySqlHook(DbApiHook):
240
240
 
241
241
  def bulk_load(self, table: str, tmp_file: str) -> None:
242
242
  """Load a tab-delimited file into a database table."""
243
+ import re
244
+
243
245
  conn = self.get_conn()
244
246
  cur = conn.cursor()
247
+
248
+ if not re.fullmatch(r"^[a-zA-Z0-9_.]+$", table):
249
+ raise ValueError(f"Invalid table name: {table}")
250
+
245
251
  cur.execute(
246
- f"LOAD DATA LOCAL INFILE %s INTO TABLE {table}",
252
+ f"LOAD DATA LOCAL INFILE %s INTO TABLE `{table}`",
247
253
  (tmp_file,),
248
254
  )
249
255
  conn.commit()
@@ -251,10 +257,16 @@ class MySqlHook(DbApiHook):
251
257
 
252
258
  def bulk_dump(self, table: str, tmp_file: str) -> None:
253
259
  """Dump a database table into a tab-delimited file."""
260
+ import re
261
+
254
262
  conn = self.get_conn()
255
263
  cur = conn.cursor()
264
+
265
+ if not re.fullmatch(r"^[a-zA-Z0-9_.]+$", table):
266
+ raise ValueError(f"Invalid table name: {table}")
267
+
256
268
  cur.execute(
257
- f"SELECT * INTO OUTFILE %s FROM {table}",
269
+ f"SELECT * INTO OUTFILE %s FROM `{table}`",
258
270
  (tmp_file,),
259
271
  )
260
272
  conn.commit()
@@ -319,7 +331,7 @@ class MySqlHook(DbApiHook):
319
331
  cursor = conn.cursor()
320
332
 
321
333
  cursor.execute(
322
- f"LOAD DATA LOCAL INFILE %s %s INTO TABLE {table} %s",
334
+ f"LOAD DATA LOCAL INFILE %s %s INTO TABLE `{table}` %s",
323
335
  (tmp_file, duplicate_key_handling, extra_options),
324
336
  )
325
337