Skip to content

Commit 1b3ac43

Browse files
committed
placeholder mysql
1 parent 7200559 commit 1b3ac43

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

tests/integ/datasource/test_jdbc.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
POSTGRES_SECRET,
2727
POSTGRES_URL,
2828
postgres_expected_data,
29+
MYSQL_SECRET,
30+
MYSQL_URL,
31+
)
32+
from tests.resources.test_data_source_dir.test_mysql_data import (
33+
MYSQL_TEST_EXTERNAL_ACCESS_INTEGRATION,
2934
)
3035
from tests.resources.test_data_source_dir.test_postgres_data import (
3136
POSTGRES_TEST_EXTERNAL_ACCESS_INTEGRATION,
@@ -35,6 +40,7 @@
3540
SELECT_QUERY = "SELECT ID, NUMBER_COL, BINARY_FLOAT_COL, BINARY_DOUBLE_COL, VARCHAR2_COL, CHAR_COL, CLOB_COL, NCHAR_COL, NVARCHAR2_COL, NCLOB_COL, DATE_COL, TIMESTAMP_COL, TIMESTAMP_TZ_COL, TIMESTAMP_LTZ_COL, RAW_COL, GUID_COL FROM ALL_TYPE_TABLE_JDBC"
3641
EMPTY_QUERY = "SELECT * FROM ALL_TYPE_TABLE_JDBC WHERE 1=0"
3742
POSTGRES_SELECT_QUERY = "select BIGINT_COL, BIGSERIAL_COL, BIT_COL, BIT_VARYING_COL, BOOLEAN_COL, BOX_COL, BYTEA_COL, CHAR_COL, VARCHAR_COL, CIDR_COL, CIRCLE_COL, DATE_COL, DOUBLE_PRECISION_COL, INET_COL, INTEGER_COL, INTERVAL_COL, JSON_COL, JSONB_COL, LINE_COL, LSEG_COL, MACADDR_COL, MACADDR8_COL, NUMERIC_COL, PATH_COL, PG_LSN_COL, PG_SNAPSHOT_COL, POINT_COL, POLYGON_COL, REAL_COL, SMALLINT_COL, SMALLSERIAL_COL, SERIAL_COL, TEXT_COL, TIME_COL, TIMESTAMP_COL, TIMESTAMPTZ_COL, TSQUERY_COL, TSVECTOR_COL, TXID_SNAPSHOT_COL, UUID_COL, XML_COL from test_schema.ALL_TYPE_TABLE"
43+
MYSQL_SELECT_QUERY = "select * from ALL_TYPES_TABLE"
3844
TABLE_NAME = "ALL_TYPE_TABLE_JDBC"
3945

4046

@@ -62,6 +68,12 @@ def postgres_jar_path(session):
6268
return stage_name + "/postgresql-42.7.7.jar"
6369

6470

71+
@pytest.fixture(scope="module")
72+
def mysql_jar_path(session):
73+
stage_name = session.get_session_stage()
74+
return stage_name + "/mysql-connector-j-9.5.0.jar"
75+
76+
6577
@pytest.fixture(scope="module")
6678
def postgres_udtf_configs(session, postgres_jar_path):
6779
return {
@@ -71,6 +83,15 @@ def postgres_udtf_configs(session, postgres_jar_path):
7183
}
7284

7385

86+
@pytest.fixture(scope="module")
87+
def mysql_udtf_configs(session, mysql_jar_path):
88+
return {
89+
"external_access_integration": MYSQL_TEST_EXTERNAL_ACCESS_INTEGRATION,
90+
"secret": MYSQL_SECRET,
91+
"imports": [mysql_jar_path],
92+
}
93+
94+
7495
@pytest.fixture(scope="module")
7596
def udtf_configs(session, jar_path):
7697
return {
@@ -89,6 +110,9 @@ def setup(session, resources_path):
89110
session.file.put(
90111
resources_path + "/test_data_source_dir/postgresql-42.7.7.jar", stage_name
91112
)
113+
session.file.put(
114+
resources_path + "/test_data_source_dir/mysql-connector-j-9.5.0.jar", stage_name
115+
)
92116
yield
93117

94118

@@ -340,3 +364,20 @@ def test_postgres_session_init_statement(
340364
query_timeout=1,
341365
session_init_statement=session_init_statement,
342366
).collect()
367+
368+
369+
def test_connect_mysql(session, mysql_udtf_configs):
370+
df = session.read.jdbc(
371+
url=MYSQL_URL,
372+
udtf_configs=mysql_udtf_configs,
373+
query=MYSQL_SELECT_QUERY,
374+
).order_by("ID")
375+
print(df.collect())
376+
377+
378+
def test_sql_server(session):
379+
pass
380+
381+
382+
def test_databricks(session):
383+
pass

tests/integ/datasource/test_mysql.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
mysql_less_column_schema,
2727
mysql_unicode_schema,
2828
mysql_double_quoted_schema,
29+
MYSQL_TEST_EXTERNAL_ACCESS_INTEGRATION,
2930
)
3031
from tests.utils import RUNNING_ON_JENKINS, Utils
3132
from tests.parameters import MYSQL_CONNECTION_PARAMETERS
@@ -54,7 +55,6 @@
5455

5556
TEST_TABLE_NAME = "ALL_TYPES_TABLE"
5657
TEST_QUERY = "select * from ALL_TYPES_TABLE"
57-
MYSQL_TEST_EXTERNAL_ACCESS_INTEGRATION = "snowpark_dbapi_mysql_test_integration"
5858

5959

6060
def create_connection_mysql():
2.48 MB
Binary file not shown.

tests/resources/test_data_source_dir/test_jdbc_data.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from tests.parameters import (
1919
ORACLEDB_CONNECTION_PARAMETERS,
2020
POSTGRES_CONNECTION_PARAMETERS,
21+
MYSQL_CONNECTION_PARAMETERS,
2122
)
2223

2324
host = ORACLEDB_CONNECTION_PARAMETERS["host"]
@@ -30,6 +31,12 @@
3031
POSTGRES_URL = f"jdbc:postgresql://{postgres_host}:{postgres_port}/{postgres_dbname}"
3132
POSTGRES_SECRET = "ADMIN.PUBLIC.SNOWPARK_DBAPI_POSTGRES_TEST_CRED"
3233

34+
mysql_host = MYSQL_CONNECTION_PARAMETERS["host"]
35+
mysql_port = MYSQL_CONNECTION_PARAMETERS["port"]
36+
mysql_dbname = MYSQL_CONNECTION_PARAMETERS["database"]
37+
MYSQL_URL = f"jdbc:mysql://{mysql_host}:{mysql_port}/{mysql_dbname}"
38+
MYSQL_SECRET = "ADMIN.PUBLIC.SNOWPARK_DBAPI_MYSQL_TEST_CRED"
39+
3340
URL = f"jdbc:oracle:thin:@//{host}:{port}/{service_name}"
3441
EXTERNAL_ACCESS_INTEGRATION = "SNOWPARK_DBAPI_ORACLEDB_TEST_INTEGRATION"
3542
SECRET = "ADMIN.PUBLIC.SNOWPARK_DBAPI_ORACLEDB_TEST_CRED"

0 commit comments

Comments
 (0)