Skip to content

Commit 9ce3140

Browse files
SNOW-2022698: Rename the relaxed_ordering parameter into enforce_ordering
1 parent 79e5c56 commit 9ce3140

18 files changed

+334
-334
lines changed

src/snowflake/snowpark/dataframe.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,7 +1283,7 @@ def to_snowpark_pandas(
12831283
self,
12841284
index_col: Optional[Union[str, List[str]]] = None,
12851285
columns: Optional[List[str]] = None,
1286-
relaxed_ordering: bool = False,
1286+
enforce_ordering: bool = False,
12871287
_emit_ast: bool = True,
12881288
) -> "modin.pandas.DataFrame":
12891289
"""
@@ -1293,7 +1293,7 @@ def to_snowpark_pandas(
12931293
index_col: A column name or a list of column names to use as index.
12941294
columns: A list of column names for the columns to select from the Snowpark DataFrame. If not specified, select
12951295
all columns except ones configured in index_col.
1296-
relaxed_ordering: If True, Snowpark pandas will provide relaxed consistency and ordering guarantees for the returned
1296+
enforce_ordering: If False, Snowpark pandas will provide relaxed consistency and ordering guarantees for the returned
12971297
DataFrame object. Otherwise, strict consistency and ordering guarantees are provided. Please refer to the
12981298
documentation of :func:`~modin.pandas.read_snowflake` for more details.
12991299
@@ -1378,7 +1378,7 @@ def to_snowpark_pandas(
13781378
if columns is not None:
13791379
ast.columns.extend(columns if isinstance(columns, list) else [columns])
13801380

1381-
if not relaxed_ordering:
1381+
if enforce_ordering:
13821382
# create a temporary table out of the current snowpark dataframe
13831383
temporary_table_name = random_name_for_temp_object(
13841384
TempObjectType.TABLE
@@ -1399,14 +1399,14 @@ def to_snowpark_pandas(
13991399
else:
14001400
if len(self.queries["queries"]) > 1:
14011401
raise NotImplementedError(
1402-
"Setting 'relaxed_ordering=True' in 'to_snowpark_pandas' is not supported when the input "
1403-
"dataframe includes DDL or DML operations. Please use 'relaxed_ordering=False' instead."
1402+
"Setting 'enforce_ordering=False' in 'to_snowpark_pandas' is not supported when the input "
1403+
"dataframe includes DDL or DML operations. Please use 'enforce_ordering=True' instead."
14041404
)
14051405
snowpandas_df = pd.read_snowflake(
14061406
name_or_query=self.queries["queries"][0],
14071407
index_col=index_col,
14081408
columns=columns,
1409-
relaxed_ordering=True,
1409+
enforce_ordering=False,
14101410
) # pragma: no cover
14111411

14121412
if _emit_ast:

src/snowflake/snowpark/modin/plugin/_internal/utils.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def _create_read_only_table(
318318

319319
def create_initial_ordered_dataframe(
320320
table_name_or_query: Union[str, Iterable[str]],
321-
relaxed_ordering: bool,
321+
enforce_ordering: bool,
322322
) -> tuple[OrderedDataFrame, str]:
323323
"""
324324
create read only temp table on top of the existing table or Snowflake query if required, and create a OrderedDataFrame
@@ -327,7 +327,7 @@ def create_initial_ordered_dataframe(
327327
Args:
328328
table_name_or_query: A string or list of strings that specify the table name or
329329
fully-qualified object identifier (database name, schema name, and table name) or SQL query.
330-
relaxed_ordering: If False, create a read only temp table on top of the existing table or Snowflake query,
330+
enforce_ordering: If True, create a read only temp table on top of the existing table or Snowflake query,
331331
and create the OrderedDataFrame using the read only temp table created.
332332
Otherwise, directly using the existing table.
333333
@@ -350,8 +350,8 @@ def create_initial_ordered_dataframe(
350350
table_name_or_query
351351
)
352352
is_query = not _is_table_name(table_name_or_query)
353-
if not is_query or relaxed_ordering:
354-
if not relaxed_ordering:
353+
if not is_query or not enforce_ordering:
354+
if enforce_ordering:
355355
try:
356356
readonly_table_name = _create_read_only_table(
357357
table_name=table_name_or_query,
@@ -406,7 +406,7 @@ def create_initial_ordered_dataframe(
406406

407407
initial_ordered_dataframe = OrderedDataFrame(
408408
DataFrameReference(session.table(readonly_table_name, _emit_ast=False))
409-
if not relaxed_ordering
409+
if enforce_ordering
410410
else DataFrameReference(session.sql(table_name_or_query, _emit_ast=False))
411411
if is_query
412412
else DataFrameReference(session.table(table_name_or_query, _emit_ast=False))
@@ -424,7 +424,7 @@ def create_initial_ordered_dataframe(
424424

425425
# create snowpark dataframe with columns: row_position_snowflake_quoted_identifier + snowflake_quoted_identifiers
426426
# if no snowflake_quoted_identifiers is specified, all columns will be selected
427-
if not relaxed_ordering:
427+
if enforce_ordering:
428428
row_position_column_str = f"{METADATA_ROW_POSITION_COLUMN} as {row_position_snowflake_quoted_identifier}"
429429
else:
430430
row_position_column_str = f"ROW_NUMBER() OVER (ORDER BY 1) - 1 as {row_position_snowflake_quoted_identifier}"
@@ -437,7 +437,7 @@ def create_initial_ordered_dataframe(
437437
# which creates a view without metadata column, we won't be able to access the metadata columns
438438
# with the created snowpark dataframe. In order to get the metadata column access in the created
439439
# dataframe, we create dataframe through sql which access the corresponding metadata column.
440-
if not relaxed_ordering:
440+
if enforce_ordering:
441441
dataframe_sql = f"SELECT {columns_to_select} FROM {readonly_table_name}"
442442
else:
443443
dataframe_sql = f"SELECT {columns_to_select} FROM ({table_name_or_query})"
@@ -454,7 +454,7 @@ def create_initial_ordered_dataframe(
454454
row_position_snowflake_quoted_identifier=row_position_snowflake_quoted_identifier,
455455
)
456456
else:
457-
assert is_query and not relaxed_ordering
457+
assert is_query and enforce_ordering
458458

459459
# If the string passed in to `pd.read_snowflake` is a SQL query, we can simply create
460460
# a Snowpark DataFrame, and convert that to a Snowpark pandas DataFrame, and extract

src/snowflake/snowpark/modin/plugin/compiler/snowflake_query_compiler.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,7 +1029,7 @@ def from_snowflake(
10291029
name_or_query: Union[str, Iterable[str]],
10301030
index_col: Optional[Union[str, list[str]]] = None,
10311031
columns: Optional[list[str]] = None,
1032-
relaxed_ordering: bool = False,
1032+
enforce_ordering: bool = False,
10331033
) -> "SnowflakeQueryCompiler":
10341034
"""
10351035
See detailed docstring and examples in ``read_snowflake`` in frontend layer:
@@ -1044,7 +1044,7 @@ def from_snowflake(
10441044
row_position_snowflake_quoted_identifier,
10451045
) = create_initial_ordered_dataframe(
10461046
table_name_or_query=name_or_query,
1047-
relaxed_ordering=relaxed_ordering,
1047+
enforce_ordering=enforce_ordering,
10481048
)
10491049
pandas_labels_to_snowflake_quoted_identifiers_map = {
10501050
# pandas labels of resulting Snowpark pandas dataframe will be snowflake identifier
@@ -1228,7 +1228,7 @@ def is_names_set(kwargs: Any) -> bool:
12281228
table_type="temporary",
12291229
use_logical_type=True,
12301230
)
1231-
qc = cls.from_snowflake(temporary_table_name, relaxed_ordering=False)
1231+
qc = cls.from_snowflake(temporary_table_name, enforce_ordering=True)
12321232
return cls._post_process_file(qc, filetype="csv", **kwargs)
12331233

12341234
@classmethod
@@ -1292,7 +1292,7 @@ def from_file_with_snowflake(
12921292
)
12931293

12941294
qc = cls.from_snowflake(
1295-
name_or_query=temporary_table_name, relaxed_ordering=False
1295+
name_or_query=temporary_table_name, enforce_ordering=True
12961296
)
12971297

12981298
return cls._post_process_file(qc=qc, filetype=filetype, **kwargs)

src/snowflake/snowpark/modin/plugin/extensions/pd_extensions.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def read_snowflake(
3939
name_or_query: Union[str, Iterable[str]],
4040
index_col: Union[str, list[str], None] = None,
4141
columns: Optional[list[str]] = None,
42-
relaxed_ordering: bool = False,
42+
enforce_ordering: bool = False,
4343
) -> DataFrame:
4444
"""
4545
Read a Snowflake table or SQL Query to a Snowpark pandas DataFrame.
@@ -52,8 +52,8 @@ def read_snowflake(
5252
A column name or a list of column names to use as index.
5353
columns:
5454
A list of column names to select from the table. If not specified, select all columns.
55-
relaxed_ordering:
56-
If True, Snowpark pandas will provide relaxed consistency and ordering guarantees for the returned
55+
enforce_ordering:
56+
If False, Snowpark pandas will provide relaxed consistency and ordering guarantees for the returned
5757
DataFrame object. Otherwise, strict consistency and ordering guarantees are provided. See the Notes
5858
section for more details.
5959
@@ -73,7 +73,7 @@ def read_snowflake(
7373
7474
Snowpark pandas provides two modes of consistency and ordering semantics.
7575
76-
* When `relaxed_ordering` is set to True, Snowpark pandas provides relaxed consistency and ordering guarantees. In particular, the returned DataFrame object will be
76+
* When `enforce_ordering` is set to False, Snowpark pandas provides relaxed consistency and ordering guarantees. In particular, the returned DataFrame object will be
7777
directly based on the source given by `name_or_query`. Consistency and isolation guarantees are relaxed in this case because any changes that happen to the source will be reflected in the
7878
DataFrame object returned by `pd.read_snowflake`.
7979
@@ -87,7 +87,7 @@ def read_snowflake(
8787
Note that when `name_or_query` is a query with an ORDER BY clause, this will only guarantee that the immediate results of the input query are sorted. But it still gives no guarantees
8888
on the order of the final results (after applying a sequence of pandas operations to those initial results).
8989
90-
* When `relaxed_ordering` is set to False, Snowpark pandas provides the same consistency and ordering guarantees for `read_snowflake` as if local files were read.
90+
* When `enforce_ordering` is set to True, Snowpark pandas provides the same consistency and ordering guarantees for `read_snowflake` as if local files were read.
9191
For example, calling `df.head(5)` two consecutive times is guaranteed to result in the exact same set of 5 rows each time and with the same ordering.
9292
Depending on the type of source, `pd.read_snowflake` will do one of the following
9393
at the time of calling `pd.read_snowflake`:
@@ -391,7 +391,7 @@ def read_snowflake(
391391
name_or_query,
392392
index_col=index_col,
393393
columns=columns,
394-
relaxed_ordering=relaxed_ordering,
394+
enforce_ordering=enforce_ordering,
395395
)
396396
)
397397

src/snowflake/snowpark/modin/plugin/io/snow_io.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,14 +212,14 @@ def read_snowflake(
212212
name_or_query: Union[str, Iterable[str]],
213213
index_col: Optional[Union[str, list[str]]] = None,
214214
columns: Optional[list[str]] = None,
215-
relaxed_ordering: bool = False,
215+
enforce_ordering: bool = False,
216216
):
217217
"""
218218
See detailed docstring and examples in ``read_snowflake`` in frontend layer:
219219
src/snowflake/snowpark/modin/plugin/pd_extensions.py
220220
"""
221221
return cls.query_compiler_cls.from_snowflake(
222-
name_or_query, index_col, columns, relaxed_ordering=relaxed_ordering
222+
name_or_query, index_col, columns, enforce_ordering=enforce_ordering
223223
)
224224

225225
@classmethod

tests/integ/modin/frame/test_create_or_replace_dynamic_table.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,20 @@
1515

1616

1717
@sql_count_checker(query_count=5)
18-
def test_create_or_replace_dynamic_table_no_relaxed_ordering_raises(session) -> None:
18+
def test_create_or_replace_dynamic_table_no_enforce_ordering_raises(session) -> None:
1919
try:
2020
# create table
2121
table_name = Utils.random_table_name()
2222
session.create_dataframe(
2323
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
2424
).write.save_as_table(table_name)
2525

26-
# create dataframe with relaxed_ordering disabled
26+
# create dataframe with enforce_ordering enabled
2727
snow_dataframe = pd.read_snowflake(
28-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=False
28+
f"(((SELECT * FROM {table_name})))", enforce_ordering=True
2929
)
3030

31-
# creating dynamic_table fails when relaxed_ordering is disabled
31+
# creating dynamic_table fails when enforce_ordering is enabled
3232
# because it cannot depend on a temp table
3333
dynamic_table_name = Utils.random_name_for_temp_object(
3434
TempObjectType.DYNAMIC_TABLE
@@ -49,20 +49,20 @@ def test_create_or_replace_dynamic_table_no_relaxed_ordering_raises(session) ->
4949

5050

5151
@sql_count_checker(query_count=5)
52-
def test_create_or_replace_dynamic_table_relaxed_ordering(session) -> None:
52+
def test_create_or_replace_dynamic_table_enforce_ordering(session) -> None:
5353
try:
5454
# create table
5555
table_name = Utils.random_table_name()
5656
session.create_dataframe(
5757
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
5858
).write.save_as_table(table_name)
5959

60-
# create dataframe with relaxed_ordering enabled
60+
# create dataframe with enforce_ordering disabled
6161
snow_dataframe = pd.read_snowflake(
62-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
62+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
6363
)
6464

65-
# creating dynamic_table succeeds when relaxed_ordering is enabled
65+
# creating dynamic_table succeeds when enforce_ordering is disabled
6666
dynamic_table_name = Utils.random_name_for_temp_object(
6767
TempObjectType.DYNAMIC_TABLE
6868
)
@@ -85,7 +85,7 @@ def test_create_or_replace_dynamic_table_relaxed_ordering(session) -> None:
8585

8686

8787
@sql_count_checker(query_count=4)
88-
def test_create_or_replace_dynamic_table_multiple_sessions_relaxed_ordering(
88+
def test_create_or_replace_dynamic_table_multiple_sessions_enforce_ordering(
8989
session,
9090
db_parameters,
9191
) -> None:
@@ -96,12 +96,12 @@ def test_create_or_replace_dynamic_table_multiple_sessions_relaxed_ordering(
9696
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
9797
).write.save_as_table(table_name)
9898

99-
# create dataframe with relaxed_ordering enabled
99+
# create dataframe with enforce_ordering disabled
100100
snow_dataframe = pd.read_snowflake(
101-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
101+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
102102
)
103103

104-
# creating dynamic_table succeeds when relaxed_ordering is enabled
104+
# creating dynamic_table succeeds when enforce_ordering is disabled
105105
dynamic_table_name = Utils.random_name_for_temp_object(
106106
TempObjectType.DYNAMIC_TABLE
107107
)
@@ -140,9 +140,9 @@ def test_create_or_replace_dynamic_table_index(session, index, index_labels):
140140
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
141141
).write.save_as_table(table_name)
142142

143-
# create dataframe with relaxed_ordering enabled
143+
# create dataframe with enforce_ordering disabled
144144
snow_dataframe = pd.read_snowflake(
145-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
145+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
146146
)
147147

148148
dynamic_table_name = Utils.random_name_for_temp_object(
@@ -183,9 +183,9 @@ def test_create_or_replace_dynamic_table_multiindex(session):
183183
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
184184
).write.save_as_table(table_name)
185185

186-
# create dataframe with relaxed_ordering enabled
186+
# create dataframe with enforce_ordering disabled
187187
snow_dataframe = pd.read_snowflake(
188-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
188+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
189189
)
190190

191191
# make sure dataframe has a multi-index

tests/integ/modin/frame/test_create_or_replace_view.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def test_create_or_replace_view_basic(session, native_pandas_df_basic) -> None:
4343

4444

4545
@sql_count_checker(query_count=6)
46-
def test_create_or_replace_view_multiple_sessions_no_relaxed_ordering_raises(
46+
def test_create_or_replace_view_multiple_sessions_no_enforce_ordering_raises(
4747
session,
4848
db_parameters,
4949
) -> None:
@@ -54,9 +54,9 @@ def test_create_or_replace_view_multiple_sessions_no_relaxed_ordering_raises(
5454
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
5555
).write.save_as_table(table_name)
5656

57-
# create dataframe with relaxed_ordering disabled
57+
# create dataframe with enforce_ordering enabled
5858
snow_dataframe = pd.read_snowflake(
59-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=False
59+
f"(((SELECT * FROM {table_name})))", enforce_ordering=True
6060
)
6161

6262
# create view
@@ -70,7 +70,7 @@ def test_create_or_replace_view_multiple_sessions_no_relaxed_ordering_raises(
7070
new_session = Session.builder.configs(db_parameters).create()
7171
pd.session = session
7272

73-
# accessing the created view in another session fails when relaxed_ordering is disabled
73+
# accessing the created view in another session fails when enforce_ordering is enabled
7474
with pytest.raises(
7575
SnowparkSQLException,
7676
match="Object 'VIEW_NAME' does not exist or not authorized",
@@ -86,7 +86,7 @@ def test_create_or_replace_view_multiple_sessions_no_relaxed_ordering_raises(
8686

8787

8888
@sql_count_checker(query_count=4)
89-
def test_create_or_replace_view_multiple_sessions_relaxed_ordering(
89+
def test_create_or_replace_view_multiple_sessions_enforce_ordering(
9090
session,
9191
db_parameters,
9292
) -> None:
@@ -97,9 +97,9 @@ def test_create_or_replace_view_multiple_sessions_relaxed_ordering(
9797
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
9898
).write.save_as_table(table_name)
9999

100-
# create dataframe with relaxed_ordering enabled
100+
# create dataframe with enforce_ordering disabled
101101
snow_dataframe = pd.read_snowflake(
102-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
102+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
103103
)
104104

105105
# create view
@@ -113,7 +113,7 @@ def test_create_or_replace_view_multiple_sessions_relaxed_ordering(
113113
new_session = Session.builder.configs(db_parameters).create()
114114
pd.session = new_session
115115

116-
# accessing the created view in another session succeeds when relaxed_ordering is enabled
116+
# accessing the created view in another session succeeds when enforce_ordering is disabled
117117
res = new_session.sql(f"select * from {view_name}").collect()
118118
assert len(res) == 2
119119
new_session.close()
@@ -136,9 +136,9 @@ def test_create_or_replace_view_index(session, index, index_labels):
136136
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
137137
).write.save_as_table(table_name)
138138

139-
# create dataframe with relaxed_ordering enabled
139+
# create dataframe with enforce_ordering disabled
140140
snow_dataframe = pd.read_snowflake(
141-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
141+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
142142
)
143143

144144
view_name = Utils.random_view_name()
@@ -173,9 +173,9 @@ def test_create_or_replace_view_multiindex(session):
173173
[BASIC_TYPE_DATA1, BASIC_TYPE_DATA2]
174174
).write.save_as_table(table_name)
175175

176-
# create dataframe with relaxed_ordering enabled
176+
# create dataframe with enforce_ordering disabled
177177
snow_dataframe = pd.read_snowflake(
178-
f"(((SELECT * FROM {table_name})))", relaxed_ordering=True
178+
f"(((SELECT * FROM {table_name})))", enforce_ordering=False
179179
)
180180

181181
# make sure dataframe has a multi-index

0 commit comments

Comments
 (0)