fix(uploads): respect db engine spec's supports_multivalues_insert value for file uploads & enable multi-insert for MSSQL (#30222)

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
This commit is contained in:
Sam Firke 2024-09-11 20:17:48 -04:00 committed by GitHub
parent be0a0ced25
commit f8a77537a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 2 deletions

View File

@ -347,6 +347,7 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
# Does database support join-free timeslot grouping
time_groupby_inline = False
limit_method = LimitMethod.FORCE_LIMIT
supports_multivalues_insert = False
allows_joins = True
allows_subqueries = True
allows_alias_in_select = True
@ -1283,9 +1284,11 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
catalog=table.catalog,
schema=table.schema,
) as engine:
if engine.dialect.supports_multivalues_insert:
if (
engine.dialect.supports_multivalues_insert
or cls.supports_multivalues_insert
):
to_sql_kwargs["method"] = "multi"
df.to_sql(con=engine, **to_sql_kwargs)
@classmethod

View File

@ -53,6 +53,7 @@ class MssqlEngineSpec(BaseEngineSpec):
max_column_name_length = 128
allows_cte_in_subquery = False
allow_limit_clause = False
supports_multivalues_insert = True
_time_grain_expressions = {
None: "{col}",