sqlframe 3.31.0__tar.gz → 3.31.1__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.
- {sqlframe-3.31.0 → sqlframe-3.31.1}/PKG-INFO +1 -1
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/_version.py +2 -2
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/column.py +2 -1
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/functions.py +7 -4
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_int_functions.py +39 -1
- {sqlframe-3.31.0 → sqlframe-3.31.1}/.github/CODEOWNERS +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/.gitignore +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/.readthedocs.yaml +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/LICENSE +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/Makefile +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/README.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/cake.gif +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/bigquery.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/configuration.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/databricks.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/docs/postgres.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/duckdb.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/images/SF.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/images/favicon.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/index.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/postgres.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/redshift.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/requirements.txt +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/snowflake.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/spark.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/standalone.md +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/mkdocs.yml +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/pytest.ini +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/renovate.json +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/setup.cfg +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/setup.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/LICENSE +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/util.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/base/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/py.typed +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe.egg-info/requires.txt +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/common_fixtures.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/conftest.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/conftest.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.31.0 → sqlframe-3.31.1}/tests/unit/test_util.py +0 -0
@@ -430,8 +430,9 @@ class Column:
|
|
430
430
|
)
|
431
431
|
|
432
432
|
def over(self, window: WindowSpec) -> Column:
|
433
|
+
column_expression = self.column_expression.meta.get("window_func", self.column_expression)
|
433
434
|
window_expression = window.expression.copy()
|
434
|
-
window_expression.set("this",
|
435
|
+
window_expression.set("this", column_expression)
|
435
436
|
return Column(window_expression)
|
436
437
|
|
437
438
|
def getItem(self, key: t.Any) -> Column:
|
@@ -3930,13 +3930,16 @@ def last_value(col: ColumnOrName, ignoreNulls: t.Optional[t.Union[bool, Column]]
|
|
3930
3930
|
"""
|
3931
3931
|
session = _get_session()
|
3932
3932
|
|
3933
|
-
if session._is_duckdb:
|
3934
|
-
return last(col, ignoreNulls) # type: ignore
|
3935
|
-
|
3936
3933
|
column = Column.invoke_expression_over_column(col, expression.LastValue)
|
3937
3934
|
|
3938
3935
|
if ignoreNulls:
|
3939
|
-
|
3936
|
+
column = Column(expression.IgnoreNulls(this=column.column_expression))
|
3937
|
+
|
3938
|
+
if session._is_duckdb:
|
3939
|
+
agg_func = last(col, ignoreNulls) # type: ignore
|
3940
|
+
agg_func.expression._meta = agg_func.expression._meta or {}
|
3941
|
+
agg_func.expression._meta["window_func"] = column.expression
|
3942
|
+
return agg_func
|
3940
3943
|
return column
|
3941
3944
|
|
3942
3945
|
|
@@ -6,6 +6,7 @@ import typing as t
|
|
6
6
|
from collections import Counter
|
7
7
|
from decimal import Decimal
|
8
8
|
|
9
|
+
import pandas as pd
|
9
10
|
import pytest
|
10
11
|
import pytz
|
11
12
|
from pyspark.sql import SparkSession as PySparkSession
|
@@ -3959,14 +3960,51 @@ def test_json_object_keys(get_session_and_func, get_func):
|
|
3959
3960
|
]
|
3960
3961
|
|
3961
3962
|
|
3962
|
-
def test_last_value(get_session_and_func, get_func):
|
3963
|
+
def test_last_value(get_session_and_func, get_func, get_window):
|
3963
3964
|
session, last_value = get_session_and_func("last_value")
|
3965
|
+
col = get_func("col", session)
|
3966
|
+
Window = get_window(session)
|
3964
3967
|
assert session.createDataFrame(
|
3965
3968
|
[("a", 1), ("a", 2), ("a", 3), ("b", 8), (None, 2)], ["a", "b"]
|
3966
3969
|
).select(last_value("a"), last_value("b")).collect() == [Row(value1=None, value2=2)]
|
3967
3970
|
assert session.createDataFrame(
|
3968
3971
|
[("a", 1), ("a", 2), ("a", 3), ("b", 8), (None, 2)], ["a", "b"]
|
3969
3972
|
).select(last_value("a", True), last_value("b", True)).collect() == [Row(value1="b", value2=2)]
|
3973
|
+
data = {
|
3974
|
+
"b": ["a", None, None, None, "b", "c", None, None, None, "d"],
|
3975
|
+
"idx": list(range(10)),
|
3976
|
+
}
|
3977
|
+
window = (
|
3978
|
+
Window().orderBy(col("idx").asc_nulls_first()).rowsBetween(Window.unboundedPreceding, 0)
|
3979
|
+
)
|
3980
|
+
assert session.createDataFrame(pd.DataFrame(data)).withColumn(
|
3981
|
+
"bf", last_value("b", ignoreNulls=True).over(window)
|
3982
|
+
).collect() == [
|
3983
|
+
Row(b="a", idx=0, bf="a"),
|
3984
|
+
Row(b=None, idx=1, bf="a"),
|
3985
|
+
Row(b=None, idx=2, bf="a"),
|
3986
|
+
Row(b=None, idx=3, bf="a"),
|
3987
|
+
Row(b="b", idx=4, bf="b"),
|
3988
|
+
Row(b="c", idx=5, bf="c"),
|
3989
|
+
Row(b=None, idx=6, bf="c"),
|
3990
|
+
Row(b=None, idx=7, bf="c"),
|
3991
|
+
Row(b=None, idx=8, bf="c"),
|
3992
|
+
Row(b="d", idx=9, bf="d"),
|
3993
|
+
]
|
3994
|
+
assert session.createDataFrame(pd.DataFrame(data)).withColumn(
|
3995
|
+
"bf", last_value("b").over(window)
|
3996
|
+
).collect() == [
|
3997
|
+
Row(b="a", idx=0, bf="a"),
|
3998
|
+
Row(b=None, idx=1, bf=None),
|
3999
|
+
Row(b=None, idx=2, bf=None),
|
4000
|
+
Row(b=None, idx=3, bf=None),
|
4001
|
+
Row(b="b", idx=4, bf="b"),
|
4002
|
+
Row(b="c", idx=5, bf="c"),
|
4003
|
+
Row(b=None, idx=6, bf=None),
|
4004
|
+
Row(b=None, idx=7, bf=None),
|
4005
|
+
Row(b=None, idx=8, bf=None),
|
4006
|
+
Row(b="d", idx=9, bf="d"),
|
4007
|
+
]
|
3970
4008
|
|
3971
4009
|
|
3972
4010
|
def test_lcase(get_session_and_func, get_func):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.31.0 → sqlframe-3.31.1}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|