sqlframe 3.37.0__tar.gz → 3.38.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.37.0 → sqlframe-3.38.1}/PKG-INFO +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/bigquery.md +4 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/setup.py +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/_version.py +2 -2
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/column.py +8 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/functions.py +6 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/session.py +6 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe.egg-info/requires.txt +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_engine_column.py +18 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_int_functions.py +12 -2
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_column.py +1 -1
- {sqlframe-3.37.0 → sqlframe-3.38.1}/.github/CODEOWNERS +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/.gitignore +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/.readthedocs.yaml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/LICENSE +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/Makefile +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/README.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/cake.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/configuration.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/databricks.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/docs/postgres.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/duckdb.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/images/SF.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/images/favicon.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/index.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/postgres.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/redshift.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/requirements.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/snowflake.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/spark.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/standalone.md +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/mkdocs.yml +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/pytest.ini +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/renovate.json +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/setup.cfg +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/LICENSE +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/util.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/base/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/py.typed +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/common_fixtures.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/conftest.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/conftest.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/test_catalog.py +0 -0
- {sqlframe-3.37.0 → sqlframe-3.38.1}/tests/unit/test_util.py +0 -0
@@ -365,6 +365,10 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
365
365
|
* [cosh](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cosh.html)
|
366
366
|
* [cot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cot.html)
|
367
367
|
* [count](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.count.html)
|
368
|
+
* [countDistinct](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.countDistinct.html)
|
369
|
+
* Can only provide a single column
|
370
|
+
* [count_distinct](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.count_distinct.html)
|
371
|
+
* Can only provide a single column
|
368
372
|
* [count_if](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.count_if.html)
|
369
373
|
* [covar_pop](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.covar_pop.html)
|
370
374
|
* [covar_samp](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.covar_samp.html)
|
@@ -222,6 +222,12 @@ class Column:
|
|
222
222
|
else:
|
223
223
|
value = value.astimezone(datetime.timezone.utc).isoformat(sep=" ")
|
224
224
|
return cls(exp.cast(exp.Literal.string(value), exp.DataType.Type.TIMESTAMPTZ))
|
225
|
+
elif isinstance(value, datetime.timedelta):
|
226
|
+
return cls(
|
227
|
+
exp.Interval(
|
228
|
+
this=exp.Literal.string(int(value.total_seconds())), unit=exp.Var(this="SECOND")
|
229
|
+
)
|
230
|
+
)
|
225
231
|
return cls(exp.convert(value))
|
226
232
|
|
227
233
|
@classmethod
|
@@ -413,8 +419,9 @@ class Column:
|
|
413
419
|
return self.invoke_expression_over_column(self, exp.StartsWith, expression=value.expression)
|
414
420
|
|
415
421
|
def endswith(self, value: t.Union[str, Column]) -> Column:
|
422
|
+
ends_with_func = get_func_from_session("endswith")
|
416
423
|
value = self._lit(value) if not isinstance(value, Column) else value
|
417
|
-
return
|
424
|
+
return ends_with_func(self, value)
|
418
425
|
|
419
426
|
def rlike(self, regexp: str) -> Column:
|
420
427
|
return self.invoke_expression_over_column(
|
@@ -14,6 +14,7 @@ from sqlglot.helper import flatten as _flatten
|
|
14
14
|
|
15
15
|
from sqlframe.base.column import Column
|
16
16
|
from sqlframe.base.decorators import func_metadata as meta
|
17
|
+
from sqlframe.base.exceptions import UnsupportedOperationError
|
17
18
|
from sqlframe.base.util import (
|
18
19
|
get_func_from_session,
|
19
20
|
)
|
@@ -81,9 +82,13 @@ def least(*cols: ColumnOrName) -> Column:
|
|
81
82
|
return Column.invoke_expression_over_column(cols[0], expression.Least)
|
82
83
|
|
83
84
|
|
84
|
-
@meta(
|
85
|
+
@meta()
|
85
86
|
def count_distinct(col: ColumnOrName, *cols: ColumnOrName) -> Column:
|
86
87
|
columns = [Column.ensure_col(x) for x in [col] + list(cols)]
|
88
|
+
if len(columns) > 1 and _get_session()._is_bigquery:
|
89
|
+
raise UnsupportedOperationError(
|
90
|
+
"BigQuery does not support multiple columns in countDistinct"
|
91
|
+
)
|
87
92
|
return Column(
|
88
93
|
expression.Count(
|
89
94
|
this=expression.Distinct(expressions=[x.column_expression for x in columns])
|
@@ -12,6 +12,7 @@ from collections import defaultdict
|
|
12
12
|
from functools import cached_property
|
13
13
|
|
14
14
|
import sqlglot
|
15
|
+
from dateutil.relativedelta import relativedelta
|
15
16
|
from sqlglot import Dialect, exp
|
16
17
|
from sqlglot.dialects.dialect import DialectType, NormalizationStrategy
|
17
18
|
from sqlglot.expressions import parse_identifier
|
@@ -613,6 +614,11 @@ class _BaseSession(t.Generic[CATALOG, READER, WRITER, DF, TABLE, CONN, UDF_REGIS
|
|
613
614
|
return [cls._to_value(x) for x in value]
|
614
615
|
elif isinstance(value, datetime.datetime):
|
615
616
|
return value.replace(tzinfo=None)
|
617
|
+
elif isinstance(value, relativedelta):
|
618
|
+
return datetime.timedelta(
|
619
|
+
days=value.days, hours=value.hours, minutes=value.minutes, seconds=value.seconds
|
620
|
+
)
|
621
|
+
|
616
622
|
return value
|
617
623
|
|
618
624
|
@classmethod
|
@@ -90,3 +90,21 @@ def test_contains(get_session: t.Callable[[], _BaseSession], get_func):
|
|
90
90
|
df_bar_lit = df.select(df.a.contains(lit("bar"))).collect()
|
91
91
|
assert df_bar_lit[0][0] is False
|
92
92
|
assert df_bar_lit[1][0] is True
|
93
|
+
|
94
|
+
|
95
|
+
def test_endswith(get_session: t.Callable[[], _BaseSession], get_func):
|
96
|
+
session = get_session()
|
97
|
+
lit = get_func("lit", session)
|
98
|
+
df = session.createDataFrame([Row(a="abc"), Row(a="def")])
|
99
|
+
df_endswith_c = df.select(df.a.endswith("c")).collect()
|
100
|
+
assert df_endswith_c[0][0] is True
|
101
|
+
assert df_endswith_c[1][0] is False
|
102
|
+
df_endswith_c_lit = df.select(df.a.endswith(lit("c"))).collect()
|
103
|
+
assert df_endswith_c_lit[0][0] is True
|
104
|
+
assert df_endswith_c_lit[1][0] is False
|
105
|
+
df_endswith_f = df.select(df.a.endswith("f")).collect()
|
106
|
+
assert df_endswith_f[0][0] is False
|
107
|
+
assert df_endswith_f[1][0] is True
|
108
|
+
df_endswith_f_lit = df.select(df.a.endswith(lit("f"))).collect()
|
109
|
+
assert df_endswith_f_lit[0][0] is False
|
110
|
+
assert df_endswith_f_lit[1][0] is True
|
@@ -121,6 +121,7 @@ def get_types() -> t.Callable:
|
|
121
121
|
),
|
122
122
|
({"cola": 1}, {"cola": 1}),
|
123
123
|
(Row(**{"cola": 1, "colb": "test"}), Row(**{"cola": 1, "colb": "test"})),
|
124
|
+
(datetime.timedelta(1), datetime.timedelta(1)),
|
124
125
|
],
|
125
126
|
)
|
126
127
|
def test_lit(get_session_and_func, arg, expected):
|
@@ -141,6 +142,11 @@ def test_lit(get_session_and_func, arg, expected):
|
|
141
142
|
if isinstance(session, SnowflakeSession):
|
142
143
|
if isinstance(arg, Row):
|
143
144
|
pytest.skip("Snowflake doesn't support literal row types")
|
145
|
+
if isinstance(arg, datetime.timedelta):
|
146
|
+
pytest.skip("Snowflake doesn't support literal timedelta types")
|
147
|
+
if isinstance(session, DatabricksSession):
|
148
|
+
if isinstance(arg, datetime.timedelta):
|
149
|
+
pytest.skip("Databricks doesn't support literal timedelta types")
|
144
150
|
if isinstance(session, DuckDBSession):
|
145
151
|
if isinstance(arg, dict):
|
146
152
|
expected = Row(**expected)
|
@@ -873,7 +879,11 @@ def test_count_distinct(get_session_and_func):
|
|
873
879
|
df1 = session.createDataFrame([1, 1, 3], "int")
|
874
880
|
df2 = session.createDataFrame([1, 2], "int")
|
875
881
|
df_joined = df1.join(df2)
|
876
|
-
|
882
|
+
if isinstance(session, BigQuerySession):
|
883
|
+
# BigQuery does not support count_distinct with multiple columns
|
884
|
+
assert df_joined.select(count_distinct(df1.value)).collect() == [Row(value=2)]
|
885
|
+
else:
|
886
|
+
assert df_joined.select(count_distinct(df1.value, df2.value)).collect() == [Row(value=4)]
|
877
887
|
|
878
888
|
|
879
889
|
def test_first(get_session_and_func):
|
@@ -3748,7 +3758,6 @@ def test_elt(get_session_and_func, get_func):
|
|
3748
3758
|
|
3749
3759
|
def test_endswith(get_session_and_func, get_func):
|
3750
3760
|
session, endswith = get_session_and_func("endswith")
|
3751
|
-
to_binary = get_func("to_binary", session)
|
3752
3761
|
df = session.createDataFrame(
|
3753
3762
|
[
|
3754
3763
|
(
|
@@ -3768,6 +3777,7 @@ def test_endswith(get_session_and_func, get_func):
|
|
3768
3777
|
],
|
3769
3778
|
["e", "f"],
|
3770
3779
|
)
|
3780
|
+
to_binary = get_func("to_binary", session)
|
3771
3781
|
df = df.select(to_binary("e").alias("e"), to_binary("f").alias("f"))
|
3772
3782
|
assert df.select(endswith("e", "f"), endswith("f", "e")).collect() == [
|
3773
3783
|
Row(value1=True, value2=False)
|
@@ -105,7 +105,7 @@ def test_startswith():
|
|
105
105
|
|
106
106
|
|
107
107
|
def test_endswith():
|
108
|
-
assert (F.col("cola").endswith("test")).sql() == "ENDSWITH(cola, 'test')"
|
108
|
+
assert (F.col("cola").endswith("test")).sql() == "ENDSWITH(cola, 'test') AS endswith__cola__"
|
109
109
|
|
110
110
|
|
111
111
|
def test_rlike():
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.1}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.37.0 → sqlframe-3.38.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
|