sqlframe 3.38.0__tar.gz → 3.38.2__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.0 → sqlframe-3.38.2}/PKG-INFO +1 -1
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/bigquery.md +4 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/setup.py +1 -1
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/_version.py +2 -2
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/functions.py +14 -1
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe.egg-info/requires.txt +1 -1
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_int_functions.py +10 -1
- {sqlframe-3.38.0 → sqlframe-3.38.2}/.github/CODEOWNERS +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/.gitignore +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/.readthedocs.yaml +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/LICENSE +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/Makefile +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/README.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/cake.gif +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/configuration.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/databricks.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/docs/postgres.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/duckdb.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/images/SF.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/images/favicon.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/index.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/postgres.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/redshift.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/requirements.txt +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/snowflake.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/spark.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/standalone.md +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/mkdocs.yml +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/pytest.ini +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/renovate.json +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/setup.cfg +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/LICENSE +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/util.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/base/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/py.typed +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/common_fixtures.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/conftest.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/conftest.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/tests/unit/test_catalog.py +0 -0
- {sqlframe-3.38.0 → sqlframe-3.38.2}/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)
|
@@ -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])
|
@@ -2313,6 +2318,14 @@ def array_distinct(col: ColumnOrName) -> Column:
|
|
2313
2318
|
if session._is_bigquery:
|
2314
2319
|
return array_distinct_bgutil(col)
|
2315
2320
|
|
2321
|
+
if session._is_duckdb:
|
2322
|
+
# DuckDB's array_distinct removes nulls, but we need to preserve them
|
2323
|
+
# Check if original array contains null and append it back if needed
|
2324
|
+
original_col = Column.ensure_col(col)
|
2325
|
+
distinct_result = Column.invoke_anonymous_function(col, "ARRAY_DISTINCT")
|
2326
|
+
has_null = array_position(original_col, lit(None)) > lit(0)
|
2327
|
+
return when(has_null, array_append(distinct_result, lit(None))).otherwise(distinct_result)
|
2328
|
+
|
2316
2329
|
return Column.invoke_anonymous_function(col, "ARRAY_DISTINCT")
|
2317
2330
|
|
2318
2331
|
|
@@ -879,7 +879,11 @@ def test_count_distinct(get_session_and_func):
|
|
879
879
|
df1 = session.createDataFrame([1, 1, 3], "int")
|
880
880
|
df2 = session.createDataFrame([1, 2], "int")
|
881
881
|
df_joined = df1.join(df2)
|
882
|
-
|
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)]
|
883
887
|
|
884
888
|
|
885
889
|
def test_first(get_session_and_func):
|
@@ -2286,16 +2290,21 @@ def test_array_remove(get_session_and_func, get_func):
|
|
2286
2290
|
def test_array_distinct(get_session_and_func, get_func):
|
2287
2291
|
session, array_distinct = get_session_and_func("array_distinct")
|
2288
2292
|
lit = get_func("lit", session)
|
2293
|
+
# BigQuery doesn't support null values in arrays
|
2294
|
+
value3 = lit([1]) if isinstance(session, BigQuerySession) else lit([1, None])
|
2289
2295
|
results = (
|
2290
2296
|
session.range(1)
|
2291
2297
|
.select(
|
2292
2298
|
array_distinct(lit([1, 2, 3, 2])).alias("value"),
|
2293
2299
|
array_distinct(lit([4, 5, 5, 4])).alias("value2"),
|
2300
|
+
array_distinct(lit(value3)).alias("value3"),
|
2294
2301
|
)
|
2295
2302
|
.collect()
|
2296
2303
|
)
|
2297
2304
|
assert results[0][0] in ([1, 2, 3], [3, 2, 1])
|
2298
2305
|
assert results[0][1] in ([4, 5], [5, 4])
|
2306
|
+
if not isinstance(session, BigQuerySession):
|
2307
|
+
assert results[0][2] in ([1, None], [None, 1])
|
2299
2308
|
|
2300
2309
|
|
2301
2310
|
def test_array_intersect(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.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.38.0 → sqlframe-3.38.2}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.38.0 → sqlframe-3.38.2}/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
|