sqlframe 3.38.2__tar.gz → 3.39.0__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.38.2 → sqlframe-3.39.0}/.github/workflows/main.workflow.yaml +1 -1
- {sqlframe-3.38.2 → sqlframe-3.39.0}/.github/workflows/publish.workflow.yaml +1 -1
- {sqlframe-3.38.2 → sqlframe-3.39.0}/PKG-INFO +1 -1
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/bigquery.md +1 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/duckdb.md +1 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/postgres.md +1 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/snowflake.md +1 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/setup.py +2 -2
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/_version.py +2 -2
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/functions.py +6 -11
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/session.py +2 -2
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/util.py +9 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe.egg-info/requires.txt +2 -2
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_int_functions.py +4 -3
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_functions.py +2 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/.github/CODEOWNERS +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/.gitignore +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/.readthedocs.yaml +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/LICENSE +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/Makefile +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/README.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/cake.gif +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/configuration.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/databricks.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/docs/postgres.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/images/SF.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/images/favicon.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/index.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/redshift.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/requirements.txt +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/spark.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/standalone.md +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/mkdocs.yml +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/pytest.ini +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/renovate.json +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/setup.cfg +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/LICENSE +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/base/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/py.typed +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/common_fixtures.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/conftest.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/conftest.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/test_catalog.py +0 -0
- {sqlframe-3.38.2 → sqlframe-3.39.0}/tests/unit/test_util.py +0 -0
@@ -382,6 +382,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
382
382
|
* [date_diff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_diff.html)
|
383
383
|
* [datediff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.datediff.html)
|
384
384
|
* [date_format](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_format.html)
|
385
|
+
* [date_from_unix_date](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_from_unix_date.html)
|
385
386
|
* [date_sub](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_sub.html)
|
386
387
|
* [date_trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_trunc.html)
|
387
388
|
* [dayofmonth](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.dayofmonth.html)
|
@@ -341,6 +341,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
341
341
|
* [date_diff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_diff.html)
|
342
342
|
* [datediff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.datediff.html)
|
343
343
|
* [date_format](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_format.html)
|
344
|
+
* [date_from_unix_date](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_from_unix_date.html)
|
344
345
|
* [date_sub](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_sub.html)
|
345
346
|
* [date_trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_trunc.html)
|
346
347
|
* [day](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.day.html)
|
@@ -346,6 +346,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
346
346
|
* [date_diff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_diff.html)
|
347
347
|
* [datediff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.datediff.html)
|
348
348
|
* [date_format](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_format.html)
|
349
|
+
* [date_from_unix_date](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_from_unix_date.html)
|
349
350
|
* [date_sub](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_sub.html)
|
350
351
|
* [date_trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_trunc.html)
|
351
352
|
* Rounded whole number is returned
|
@@ -375,6 +375,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
375
375
|
* [date_diff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_diff.html)
|
376
376
|
* [datediff](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.datediff.html)
|
377
377
|
* [date_format](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_format.html)
|
378
|
+
* [date_from_unix_date](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_from_unix_date.html)
|
378
379
|
* [date_sub](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_sub.html)
|
379
380
|
* [date_trunc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.date_trunc.html)
|
380
381
|
* [dayofmonth](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.dayofmonth.html)
|
@@ -20,7 +20,7 @@ setup(
|
|
20
20
|
python_requires=">=3.9",
|
21
21
|
install_requires=[
|
22
22
|
"prettytable<4",
|
23
|
-
"sqlglot>=24.0.0,<27.
|
23
|
+
"sqlglot>=24.0.0,<27.8",
|
24
24
|
"typing_extensions",
|
25
25
|
],
|
26
26
|
extras_require={
|
@@ -71,7 +71,7 @@ setup(
|
|
71
71
|
"redshift_connector>=2.1.1,<2.2.0",
|
72
72
|
],
|
73
73
|
"snowflake": [
|
74
|
-
"snowflake-connector-python[secure-local-storage]>=3.10.0,<3.
|
74
|
+
"snowflake-connector-python[secure-local-storage]>=3.10.0,<3.18",
|
75
75
|
],
|
76
76
|
"spark": [
|
77
77
|
"pyspark>=2,<3.6",
|
@@ -2572,7 +2572,7 @@ def shuffle(col: ColumnOrName) -> Column:
|
|
2572
2572
|
|
2573
2573
|
@meta(unsupported_engines="snowflake")
|
2574
2574
|
def reverse(col: ColumnOrName) -> Column:
|
2575
|
-
return Column.
|
2575
|
+
return Column.invoke_expression_over_column(col, expression.Reverse)
|
2576
2576
|
|
2577
2577
|
|
2578
2578
|
@meta(unsupported_engines=["bigquery", "postgres"])
|
@@ -3219,9 +3219,9 @@ def current_user() -> Column:
|
|
3219
3219
|
return Column.invoke_expression_over_column(None, expression.CurrentUser)
|
3220
3220
|
|
3221
3221
|
|
3222
|
-
@meta(
|
3222
|
+
@meta()
|
3223
3223
|
def date_from_unix_date(days: ColumnOrName) -> Column:
|
3224
|
-
return Column.
|
3224
|
+
return Column.invoke_expression_over_column(days, expression.DateFromUnixDate)
|
3225
3225
|
|
3226
3226
|
|
3227
3227
|
@meta(unsupported_engines="*")
|
@@ -6631,7 +6631,7 @@ def unix_micros(col: ColumnOrName) -> Column:
|
|
6631
6631
|
|
6632
6632
|
col = to_timestamp(col)
|
6633
6633
|
|
6634
|
-
return Column.
|
6634
|
+
return Column.invoke_expression_over_column(col, expression.UnixMicros)
|
6635
6635
|
|
6636
6636
|
|
6637
6637
|
@meta()
|
@@ -6651,15 +6651,10 @@ def unix_millis(col: ColumnOrName) -> Column:
|
|
6651
6651
|
"""
|
6652
6652
|
from sqlframe.base.function_alternatives import unix_millis_multiply_epoch
|
6653
6653
|
|
6654
|
-
if (
|
6655
|
-
_get_session()._is_bigquery
|
6656
|
-
or _get_session()._is_duckdb
|
6657
|
-
or _get_session()._is_postgres
|
6658
|
-
or _get_session()._is_snowflake
|
6659
|
-
):
|
6654
|
+
if _get_session()._is_duckdb or _get_session()._is_postgres or _get_session()._is_snowflake:
|
6660
6655
|
return unix_millis_multiply_epoch(col)
|
6661
6656
|
|
6662
|
-
return Column.
|
6657
|
+
return Column.invoke_expression_over_column(col, expression.UnixMillis)
|
6663
6658
|
|
6664
6659
|
|
6665
6660
|
@meta()
|
@@ -12,7 +12,6 @@ from collections import defaultdict
|
|
12
12
|
from functools import cached_property
|
13
13
|
|
14
14
|
import sqlglot
|
15
|
-
from dateutil.relativedelta import relativedelta
|
16
15
|
from sqlglot import Dialect, exp
|
17
16
|
from sqlglot.dialects.dialect import DialectType, NormalizationStrategy
|
18
17
|
from sqlglot.expressions import parse_identifier
|
@@ -34,6 +33,7 @@ from sqlframe.base.table import _BaseTable
|
|
34
33
|
from sqlframe.base.udf import _BaseUDFRegistration
|
35
34
|
from sqlframe.base.util import (
|
36
35
|
get_column_mapping_from_schema_input,
|
36
|
+
is_relativedelta_like,
|
37
37
|
normalize_string,
|
38
38
|
verify_pandas_installed,
|
39
39
|
)
|
@@ -614,7 +614,7 @@ class _BaseSession(t.Generic[CATALOG, READER, WRITER, DF, TABLE, CONN, UDF_REGIS
|
|
614
614
|
return [cls._to_value(x) for x in value]
|
615
615
|
elif isinstance(value, datetime.datetime):
|
616
616
|
return value.replace(tzinfo=None)
|
617
|
-
elif
|
617
|
+
elif is_relativedelta_like(value):
|
618
618
|
return datetime.timedelta(
|
619
619
|
days=value.days, hours=value.hours, minutes=value.minutes, seconds=value.seconds
|
620
620
|
)
|
@@ -524,3 +524,12 @@ def split_filepath(filepath: str) -> tuple[str, str]:
|
|
524
524
|
if len(split_) == 2: # noqa: PLR2004
|
525
525
|
return split_[0] + "://", split_[1]
|
526
526
|
return "", split_[0]
|
527
|
+
|
528
|
+
|
529
|
+
def is_relativedelta_like(value: t.Any) -> bool:
|
530
|
+
return (
|
531
|
+
hasattr(value, "years")
|
532
|
+
and hasattr(value, "months")
|
533
|
+
and hasattr(value, "weeks")
|
534
|
+
and hasattr(value, "leapdays")
|
535
|
+
)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
prettytable<4
|
2
|
-
sqlglot<27.
|
2
|
+
sqlglot<27.8,>=24.0.0
|
3
3
|
typing_extensions
|
4
4
|
|
5
5
|
[bigquery]
|
@@ -52,7 +52,7 @@ psycopg2<3,>=2.8
|
|
52
52
|
redshift_connector<2.2.0,>=2.1.1
|
53
53
|
|
54
54
|
[snowflake]
|
55
|
-
snowflake-connector-python[secure-local-storage]<3.
|
55
|
+
snowflake-connector-python[secure-local-storage]<3.18,>=3.10.0
|
56
56
|
|
57
57
|
[spark]
|
58
58
|
pyspark<3.6,>=2
|
@@ -3675,9 +3675,10 @@ def test_current_timezone(get_session_and_func, get_func):
|
|
3675
3675
|
def test_date_from_unix_date(get_session_and_func, get_func):
|
3676
3676
|
session, date_from_unix_date = get_session_and_func("date_from_unix_date")
|
3677
3677
|
lit = get_func("lit", session)
|
3678
|
-
assert session.range(1).select(date_from_unix_date(lit(1))).first()[0]
|
3679
|
-
1970, 1, 2
|
3680
|
-
|
3678
|
+
assert session.range(1).select(date_from_unix_date(lit(1))).first()[0] in [
|
3679
|
+
datetime.date(1970, 1, 2),
|
3680
|
+
datetime.datetime(1970, 1, 2, 0, 0),
|
3681
|
+
]
|
3681
3682
|
|
3682
3683
|
|
3683
3684
|
def test_date_part(get_session_and_func, get_func):
|
@@ -17,6 +17,7 @@ def test_invoke_anonymous(name, func):
|
|
17
17
|
# make_interval - SQLGlot doesn't support week
|
18
18
|
# to_char - convert to a cast that ignores the format provided
|
19
19
|
# ltrim/rtrim - don't seem to convert correctly on some engines
|
20
|
+
# unix_micros - it is actually supported just an engine specific override uses an anonymous function
|
20
21
|
ignore_funcs = {
|
21
22
|
"array_size",
|
22
23
|
"exists",
|
@@ -26,6 +27,7 @@ def test_invoke_anonymous(name, func):
|
|
26
27
|
"rtrim",
|
27
28
|
"ascii",
|
28
29
|
"current_schema",
|
30
|
+
"unix_micros",
|
29
31
|
}
|
30
32
|
if "invoke_anonymous_function" in inspect.getsource(func) and name not in ignore_funcs:
|
31
33
|
func = parse_one(f"{name}()", read="spark", error_level=ErrorLevel.IGNORE)
|
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.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.38.2 → sqlframe-3.39.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.38.2 → sqlframe-3.39.0}/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
|