Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run test_sqlalchemy_store.py against PostgreSQL, MySQL, and MSSQL #5540

Merged
merged 11 commits into from
Mar 29, 2022

Conversation

harupy
Copy link
Member

@harupy harupy commented Mar 28, 2022

Signed-off-by: harupy 17039389+harupy@users.noreply.github.com

What changes are proposed in this pull request?

Run test_sqlalchemy_store.py against PostgreSQL, MySQL, and MSSQL to ensure MLflow tracking operations work in different databases and prevent issues / regressions.

How is this patch tested?

Fixed tests

Does this PR change the documentation?

  • No. You can skip the rest of this section.
  • Yes. Make sure the changed pages / sections render correctly by following the steps below.
  1. Check the status of the ci/circleci: build_doc check. If it's successful, proceed to the
    next step, otherwise fix it.
  2. Click Details on the right to open the job page of CircleCI.
  3. Click the Artifacts tab.
  4. Click docs/build/html/index.html.
  5. Find the changed pages / sections and make sure they render correctly.

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

(Details in 1-2 sentences. You can just refer to another PR with a description if this PR is part of a larger change.)

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/artifacts: Artifact stores and artifact logging
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages
  • area/examples: Example code
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/projects: MLproject format, project running backends
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/server-infra: MLflow Tracking server backend
  • area/tracking: Tracking Service, tracking client APIs, autologging

Interface

  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/docker: Docker use across MLflow's components, such as MLflow Projects and MLflow Models
  • area/sqlalchemy: Use of SQLAlchemy in the Tracking Service or Model Registry
  • area/windows: Windows support

Language

  • language/r: R APIs and clients
  • language/java: Java APIs and clients
  • language/new: Proposals for new client languages

Integrations

  • integrations/azure: Azure and Azure ML integrations
  • integrations/sagemaker: SageMaker integrations
  • integrations/databricks: Databricks integrations

How should the PR be classified in the release notes? Choose one:

  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
@github-actions github-actions bot added the rn/none List under Small Changes in Changelogs. label Mar 28, 2022
@@ -168,11 +168,12 @@ jobs:
./tests/db/compose.sh build --build-arg DEPENDENCIES="$(python setup.py -q dependencies)"
- name: Database tests - run
run: |
set +e
Copy link
Member Author

@harupy harupy Mar 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Temporary change to check which tests fail.

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Comment on lines -970 to +973
(order_value.is_(None), 1),
(order_value.is_(None), 2),
Copy link
Member Author

@harupy harupy Mar 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's say we have code like this:

with mlflow.start_run():
    log_metric("m", 1)

with mlflow.start_run():
    log_metric("m", np.nan)

with mlflow.start_run():
    pass

mlflow.search_runs(["0"], order_by=["metrics.m"])

This code creates a table like below, then sorts rows using the metrics.m and clause_1 columns.

run_id metrics.m is_nan clause_0
1 1 False 0
2 0 True 1
3 NULL False 1
SELECT ... ORDER BY clause_1, metrics.m

In PostgreSQL, the result looks like this because NULLs are sorted AFTER non-null values:

run_id metrics.m is_nan clause_1
1 1 False 0
2 0 True 1
3 NULL False 1

In other databases (SQLite, MySQL, SQL server), the result looks like this because NULLs are sorted BEFORE non-null values:

run_id metrics.m is_nan clause_1
1 1 False 0
3 NULL False 1
2 0 True 1

Copy link
Member Author

@harupy harupy Mar 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the new code, we sort a table like this:

run_id metrics.m is_nan clause_1
1 1 False 0
2 0 True 1
3 NULL False 2

which produces the same result in all databases

Comment on lines 94 to 97
if dialect == "mysql":
like_op = column.op("LIKE BINARY")
elif dialect == "mssql":
like_op = sa.collate(column, "SQL_Latin1_General_CP1_CS_AS").like
Copy link
Member Author

@harupy harupy Mar 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LIKE operator is case-insensitive in MySQL and SQL server.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This block enables case_sensitive_like for SQLite:

if db_type == SQLITE:
session.execute("PRAGMA foreign_keys = ON;")
session.execute("PRAGMA case_sensitive_like = true;")

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
if dialect == "mysql":
like_op = column.op("LIKE BINARY")
elif dialect == "mssql":
like_op = column.collate("SQL_Latin1_General_CP1_CS_AS").like
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to include Kana sensitive as well?
"SQL_Latin1_General_CP1_CS_AS_KS" or does sorting based on characters make the ordering confusing?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we do :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SQL_Latin1_General_CP1_CS_AS_KS didn't work:

https://github.com/mlflow/mlflow/runs/5728726867?check_suite_focus=true#step:11:10259

E           mlflow.exceptions.MlflowException: (pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid collation 'SQL_Latin1_General_CP1_CS_AS_KS'. (448) (SQLExecDirectW)")

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is _KS only available for Japanese collations such as Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8?

Copy link
Member Author

@harupy harupy Mar 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think kana insensitivity is a big issue though.

Copy link
Member Author

@harupy harupy Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Offline discussion: we should also support kana sensitivity if there are no downsides.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if the _UTF8 addition as suffix is required. It's pretty hard to tell from their docs... https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver15#Collation_Defn
I wonder if people using MSSQL as a tracking backend end up writing a T-SQL script when they setup MLflow to enable faster filtering and apply specific column collations to speed it up?

I agree, not that big of a deal to enable this (it would just be nice to enable functionality for as many users as possible, but if the config is broken, then it's broken...)

@github-actions github-actions bot added the area/windows Issue is unique to windows. label Mar 28, 2022
sql_filter_ops = {"LIKE": column.like, "ILIKE": column.ilike}
def get_sql_filter_ops(cls, column, operator, dialect):
if dialect == MYSQL:
like_op = column.op("LIKE BINARY")
Copy link
Member Author

@harupy harupy Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Offline discussion: insert a non-binary LIKE to improve the performance.

LIKE :pattern AND LIKE BINARY :pattern

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
@harupy
Copy link
Member Author

harupy commented Mar 29, 2022

Code to check kana sensitivity in SQL server:

import mlflow
import uuid

name = uuid.uuid4().hex
experiment_id = mlflow.create_experiment(name)
mlflow.set_experiment(name)

for val in ["りんご", "リンゴ"]:
    with mlflow.start_run():
        mlflow.log_param("p", val)

print(mlflow.search_runs([experiment_id], filter_string="parameters.p LIKE 'リンゴ'"))

@harupy harupy requested a review from BenWilson2 March 29, 2022 06:59
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
)

elif dialect == MSSQL:
like_op = column.collate("Japanese_Bushu_Kakusu_100_CS_AS_KS_WS").like
Copy link
Member Author

@harupy harupy Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
like_op = column.collate("Japanese_Bushu_Kakusu_100_CS_AS_KS_WS").like
like_op = column.collate("Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8").like

I tried Japanese_Bushu_Kakusu_100_CS_AS_KS_WS on local but got an invalid collation error.

@@ -1518,6 +1567,10 @@ def test_search_with_max_results(self):

assert runs[:1000] == self._search(exp)
for n in [0, 1, 2, 4, 8, 10, 20, 50, 100, 500, 1000, 1200, 2000]:
if n == 0 and self.store._get_dialect() == MSSQL:
# In SQL server, `max_results = 0` results in the following error:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curiosity question: does this behavior create a UI bug with an MSSQL backend if someone searches an invalid condition?

Copy link
Member Author

@harupy harupy Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BenWilson2
It doesn't because MLflow UI doesn't allow users to set the number of runs to fetch.

Copy link
Member

@BenWilson2 BenWilson2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great stuff, Haru! Improving usability for users utilizing different backend stores and helping to notify us if any changes will create issues for them is wonderful.
LGTM!

@harupy harupy merged commit 55a0279 into mlflow:master Mar 29, 2022
@harupy harupy deleted the run-test_sqlalchemy_store branch March 29, 2022 23:20
vvijay-bolt pushed a commit to vvijay-bolt/mlflow that referenced this pull request Mar 30, 2022
…lflow#5540)

* run test_sqlalchemy_store

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use IS NULL

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename test classes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* fix like operation

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use method

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use constants

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use LIKE before LIKE BINARY

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use Japanese_Bushu_Kakusu

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove _UTF8

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* reset experiment_id

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>
vvijay-bolt pushed a commit to vvijay-bolt/mlflow that referenced this pull request Mar 30, 2022
…lflow#5540)

* run test_sqlalchemy_store

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use IS NULL

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename test classes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* fix like operation

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use method

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use constants

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use LIKE before LIKE BINARY

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use Japanese_Bushu_Kakusu

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove _UTF8

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* reset experiment_id

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>
vvijay-bolt pushed a commit to vvijay-bolt/mlflow that referenced this pull request Mar 30, 2022
…lflow#5540)

* run test_sqlalchemy_store

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use IS NULL

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename test classes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* fix like operation

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use method

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use constants

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use LIKE before LIKE BINARY

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use Japanese_Bushu_Kakusu

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove _UTF8

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* reset experiment_id

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>
vvijay-bolt pushed a commit to vvijay-bolt/mlflow that referenced this pull request Mar 30, 2022
…lflow#5540)

* run test_sqlalchemy_store

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use IS NULL

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename test classes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* fix like operation

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use method

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use constants

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use LIKE before LIKE BINARY

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use Japanese_Bushu_Kakusu

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove _UTF8

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* reset experiment_id

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>
erensahin pushed a commit to erensahin/mlflow that referenced this pull request Apr 11, 2022
…lflow#5540)

* run test_sqlalchemy_store

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use IS NULL

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename test classes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* fix like operation

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use method

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use constants

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use LIKE before LIKE BINARY

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use Japanese_Bushu_Kakusu

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove _UTF8

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* reset experiment_id

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
BenWilson2 pushed a commit that referenced this pull request Apr 13, 2022
* Refactor files in `tests/db` to allow running tests in repository root (#5513)

* rename postgres.schema

Signed-off-by: harupy <hkawamura0130@gmail.com>

* Refactor database tests

Signed-off-by: harupy <hkawamura0130@gmail.com>

* remove import sqlalchemy

Signed-off-by: harupy <hkawamura0130@gmail.com>

* fix docker-compose down

Signed-off-by: harupy <hkawamura0130@gmail.com>

* update

Signed-off-by: harupy <hkawamura0130@gmail.com>

* fix lint failures

Signed-off-by: harupy <hkawamura0130@gmail.com>

* blacken

Signed-off-by: harupy <hkawamura0130@gmail.com>

* more fixes

Signed-off-by: harupy <hkawamura0130@gmail.com>

* add tests/db/compose.sh

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use compose v2

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove grep

Signed-off-by: harupy <hkawamura0130@gmail.com>

* run command using exec

Signed-off-by: harupy <hkawamura0130@gmail.com>

* set --no-TTY

Signed-off-by: harupy <hkawamura0130@gmail.com>

* specify image and remove redundant build arg

Signed-off-by: harupy <hkawamura0130@gmail.com>

* fix workflow

Signed-off-by: harupy <hkawamura0130@gmail.com>

* improve README

Signed-off-by: harupy <hkawamura0130@gmail.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Append user agent added by request_header_provider to default user agent (#5502)

* User agent added by request_header_plugin gets appended to default user agent

Signed-off-by: singankit <anksing@microsoft.com>

* Adding large marker following similar test with the marker

Signed-off-by: singankit <anksing@microsoft.com>

* Appending headers from various request_header_providers

Signed-off-by: singankit <anksing@microsoft.com>

* Review comments to use dict method

Signed-off-by: singankit <anksing@microsoft.com>

* Adding default request header provider

Signed-off-by: singankit <anksing@microsoft.com>

* Fixing typo in test

Signed-off-by: singankit <anksing@microsoft.com>

* Fixing rest_utils test

Signed-off-by: singankit <anksing@microsoft.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* use schema when parsing csv

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Use split (#5522)

Signed-off-by: dbczumar <corey.zumar@databricks.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Fix issue #2804 - Set run name in MLProject execution (#5187)

* Add mlflow run name to projects.run()

Signed-off-by: bramrodenburg <14278376+bramrodenburg@users.noreply.github.com>

* Renamed MLFLOW_RUN_NAME to RUN_NAME in CLI metavars

Signed-off-by: bramrodenburg <14278376+bramrodenburg@users.noreply.github.com>

* Update CLI docstring

* Address feedback

* Autoformat: https://github.com/mlflow/mlflow/actions/runs/2031948113

Signed-off-by: mlflow-automation <mlflow-automation@users.noreply.github.com>

Co-authored-by: Corey Zumar <39497902+dbczumar@users.noreply.github.com>
Co-authored-by: mlflow-automation <mlflow-automation@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Restoring virtual python environment for mlflow pyfunc spark_udf (#5487)

* init

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* debug ci

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* black

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* fix tests

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* fix test

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Set timezone to UTC in windows (#5538)

* Diable Daylight Saving time adjustments in windows

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use utc

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* init (#5532)

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* feat: pyspark autologging enhancement (#5481)

* feat: general support for autologging models containing parameters of type Param and fix some comments

Signed-off-by: Xinyue Ruan <serena.rxy@gmail.com>

* fix format

Signed-off-by: Xinyue Ruan <serena.rxy@gmail.com>

* fix jinja2 import error

Signed-off-by: Xinyue Ruan <serena.rxy@gmail.com>

* update function doc

Signed-off-by: Xinyue Ruan <serena.rxy@gmail.com>

* add Evaluator type param into testcase

Signed-off-by: Xinyue Ruan <serena.rxy@gmail.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Fix invalid Anaconda URLs (#5547)

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Use latest version of black fo fix lint check (#5548)

* Use latest version of black

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* run black

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* test for csv parsing

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Removing the mention of tf1. (#5552)

Removing the mention of tf1 since this directory mentions the examples of using tf2. For users on TF1, use the migration guide: https://www.tensorflow.org/guide/migrate

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Run `test_sqlalchemy_store.py` against PostgreSQL, MySQL, and MSSQL (#5540)

* run test_sqlalchemy_store

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use IS NULL

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* rename test classes

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* fix like operation

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use method

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use constants

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use LIKE before LIKE BINARY

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* use Japanese_Bushu_Kakusu

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* remove _UTF8

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* reset experiment_id

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Make tensorflow model prediction support array type input (#5545)

* init

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* add test

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Removed utility function, use zip

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Implement function to get MLflow pyfunc model dependencies (#5503)

* init

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* init

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update doc

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* split test

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* refactor

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>

* update

Signed-off-by: Weichen Xu <weichen.xu@databricks.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* replace universal_newlines with text (#5557)

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Fix #5551 - PyTorch LightningDeprecationWarning ModelSummary and get_gpu_memory_map (#5559)

* Fix #5551 - PyTorch LightningDeprecationWarning ModelSummary and get_gpu_memory_map

Signed-off-by: Bruno Cabado Lousa <sr.brunocabado@gmail.com>

* Fix version check

Signed-off-by: Bruno Cabado Lousa <sr.brunocabado@gmail.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Pin `click` to fix spacy tests (#5560)

* pin click

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* add spacy as extra dependency

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>

* pin flask

Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Add default experiment ID provider for repo notebooks (#5449)

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Add feature to set and delete description of a run. (#5534)

* Add feature to set and delete description of a run.

Signed-off-by: Albert Chung <albertswchung@gmail.com>

* Add edge case handling when run description is set twice, add tests for each scenario.

Signed-off-by: Albert Chung <albertswchung@gmail.com>

* Throw INVALID_PARAMETER_VALUE error code when setting description twice.

Signed-off-by: Albert Chung <albertswchung@gmail.com>
Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* revert change to json utils

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* revert change to json utils

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* Autoformat: https://github.com/mlflow/mlflow/actions/runs/2091247297

Signed-off-by: mlflow-automation <mlflow-automation@users.noreply.github.com>

* move string io

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* remove file

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

* remove files

Signed-off-by: Varun Kumar Vijay <vvijay@bolt.com>

Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: Ankit Singhal <30610298+singankit@users.noreply.github.com>
Co-authored-by: Corey Zumar <39497902+dbczumar@users.noreply.github.com>
Co-authored-by: bramrodenburg <14278376+bramrodenburg@users.noreply.github.com>
Co-authored-by: mlflow-automation <mlflow-automation@users.noreply.github.com>
Co-authored-by: WeichenXu <weichen.xu@databricks.com>
Co-authored-by: Serena Ruan <82044803+serena-ruan@users.noreply.github.com>
Co-authored-by: Vini Jaiswal <vini.js1303@gmail.com>
Co-authored-by: Bruno Cabado <Kr4is@users.noreply.github.com>
Co-authored-by: apurva-koti <51172624+apurva-koti@users.noreply.github.com>
Co-authored-by: Albert <albertswchung@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/windows Issue is unique to windows. rn/none List under Small Changes in Changelogs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants