sqlframe 3.32.1__tar.gz → 3.33.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.32.1 → sqlframe-3.33.0}/PKG-INFO +1 -1
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/bigquery.md +4 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/duckdb.md +1 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/snowflake.md +1 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/_version.py +2 -2
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/column.py +4 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/function_alternatives.py +0 -11
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/functions.py +5 -36
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/session.py +4 -1
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +4 -4
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/spark/test_spark_dataframe.py +4 -4
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_column.py +20 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_int_functions.py +15 -3
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_column.py +4 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_functions.py +2 -2
- {sqlframe-3.32.1 → sqlframe-3.33.0}/.github/CODEOWNERS +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/.gitignore +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/.readthedocs.yaml +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/LICENSE +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/Makefile +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/README.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/cake.gif +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/configuration.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/databricks.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/docs/postgres.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/images/SF.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/images/favicon.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/index.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/postgres.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/redshift.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/requirements.txt +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/spark.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/standalone.md +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/mkdocs.yml +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/pytest.ini +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/renovate.json +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/setup.cfg +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/setup.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/LICENSE +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/util.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/base/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/py.typed +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/requires.txt +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/common_fixtures.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/conftest.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/conftest.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/duck/test_reader_options.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/spark/test_reader_options.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_base_reader_options.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_catalog.py +0 -0
- {sqlframe-3.32.1 → sqlframe-3.33.0}/tests/unit/test_util.py +0 -0
@@ -219,6 +219,8 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
219
219
|
* [asc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.asc_nulls_last.html)
|
220
220
|
* [between](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.between.html)
|
221
221
|
* [cast](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.cast.html)
|
222
|
+
* [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.contains.html)
|
223
|
+
* The argument to `contains` must be a string
|
222
224
|
* [desc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc.html)
|
223
225
|
* [desc_nulls_first](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_first.html)
|
224
226
|
* [desc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_last.html)
|
@@ -351,6 +353,8 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
351
353
|
* [concat](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.concat.html)
|
352
354
|
* Only works on strings (does not work on arrays)
|
353
355
|
* [concat_ws](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.concat_ws.html)
|
356
|
+
* [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.contains.html)
|
357
|
+
* The argument to `contains` must be a string
|
354
358
|
* [corr](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.corr.html)
|
355
359
|
* [cos](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cos.html)
|
356
360
|
* [cosh](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.cosh.html)
|
@@ -183,6 +183,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
183
183
|
* [asc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.asc_nulls_last.html)
|
184
184
|
* [between](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.between.html)
|
185
185
|
* [cast](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.cast.html)
|
186
|
+
* [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.contains.html)
|
186
187
|
* [desc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc.html)
|
187
188
|
* [desc_nulls_first](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_first.html)
|
188
189
|
* [desc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_last.html)
|
@@ -215,6 +215,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
215
215
|
* [asc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.asc_nulls_last.html)
|
216
216
|
* [between](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.between.html)
|
217
217
|
* [cast](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.cast.html)
|
218
|
+
* [contains](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.contains.html)
|
218
219
|
* [desc](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc.html)
|
219
220
|
* [desc_nulls_first](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_first.html)
|
220
221
|
* [desc_nulls_last](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.Column.desc_nulls_last.html)
|
@@ -517,3 +517,7 @@ class Column:
|
|
517
517
|
+---+
|
518
518
|
"""
|
519
519
|
return self.getItem(name)
|
520
|
+
|
521
|
+
def contains(self, value: t.Union[str, Column]) -> Column:
|
522
|
+
value = self._lit(value) if not isinstance(value, Column) else value
|
523
|
+
return self.invoke_expression_over_column(self, exp.Contains, expression=value.expression)
|
@@ -78,17 +78,6 @@ def to_timestamp_tz(col: ColumnOrName, format: t.Optional[str] = None) -> Column
|
|
78
78
|
return Column.ensure_col(col).cast("timestamptz", dialect="duckdb")
|
79
79
|
|
80
80
|
|
81
|
-
def to_timestamp_just_timestamp(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
|
82
|
-
from sqlframe.base.session import _BaseSession
|
83
|
-
|
84
|
-
if format is not None:
|
85
|
-
return Column.invoke_expression_over_column(
|
86
|
-
col, expression.StrToTime, format=_BaseSession().format_time(format)
|
87
|
-
)
|
88
|
-
|
89
|
-
return Column.ensure_col(col).cast("datetime", dialect="bigquery")
|
90
|
-
|
91
|
-
|
92
81
|
def bitwise_not_from_bitnot(col: ColumnOrName) -> Column:
|
93
82
|
return Column.invoke_anonymous_function(col, "BITNOT")
|
94
83
|
|
@@ -1356,7 +1356,6 @@ def to_date(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
|
|
1356
1356
|
@meta()
|
1357
1357
|
def to_timestamp(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
|
1358
1358
|
from sqlframe.base.function_alternatives import (
|
1359
|
-
to_timestamp_just_timestamp,
|
1360
1359
|
to_timestamp_tz,
|
1361
1360
|
to_timestamp_with_time_zone,
|
1362
1361
|
)
|
@@ -1366,9 +1365,6 @@ def to_timestamp(col: ColumnOrName, format: t.Optional[str] = None) -> Column:
|
|
1366
1365
|
if session._is_duckdb:
|
1367
1366
|
return to_timestamp_tz(col, format)
|
1368
1367
|
|
1369
|
-
if session._is_bigquery:
|
1370
|
-
return to_timestamp_just_timestamp(col, format)
|
1371
|
-
|
1372
1368
|
if session._is_postgres:
|
1373
1369
|
return to_timestamp_with_time_zone(col, format)
|
1374
1370
|
|
@@ -3068,7 +3064,7 @@ def character_length(str: ColumnOrName) -> Column:
|
|
3068
3064
|
return Column.invoke_expression_over_column(str, expression.Length)
|
3069
3065
|
|
3070
3066
|
|
3071
|
-
@meta(unsupported_engines=["
|
3067
|
+
@meta(unsupported_engines=["postgres"])
|
3072
3068
|
def contains(left: ColumnOrName, right: ColumnOrName) -> Column:
|
3073
3069
|
return Column.invoke_expression_over_column(
|
3074
3070
|
left, expression.Contains, expression=Column.ensure_col(right).column_expression
|
@@ -6594,27 +6590,16 @@ def unix_micros(col: ColumnOrName) -> Column:
|
|
6594
6590
|
"""
|
6595
6591
|
from sqlframe.base.function_alternatives import unix_micros_multiply_epoch
|
6596
6592
|
|
6593
|
+
to_timestamp = get_func_from_session("to_timestamp")
|
6594
|
+
|
6597
6595
|
if _get_session()._is_duckdb:
|
6598
6596
|
return Column.invoke_anonymous_function(col, "epoch_us")
|
6599
6597
|
|
6600
|
-
if _get_session()._is_bigquery:
|
6601
|
-
return Column(
|
6602
|
-
expression.Anonymous(
|
6603
|
-
this="UNIX_MICROS",
|
6604
|
-
expressions=[
|
6605
|
-
expression.Anonymous(
|
6606
|
-
this="TIMESTAMP",
|
6607
|
-
expressions=[
|
6608
|
-
Column.ensure_col(col).column_expression,
|
6609
|
-
],
|
6610
|
-
)
|
6611
|
-
],
|
6612
|
-
)
|
6613
|
-
)
|
6614
|
-
|
6615
6598
|
if _get_session()._is_postgres or _get_session()._is_snowflake:
|
6616
6599
|
return unix_micros_multiply_epoch(col)
|
6617
6600
|
|
6601
|
+
col = to_timestamp(col)
|
6602
|
+
|
6618
6603
|
return Column.invoke_anonymous_function(col, "unix_micros")
|
6619
6604
|
|
6620
6605
|
|
@@ -6666,22 +6651,6 @@ def unix_seconds(col: ColumnOrName) -> Column:
|
|
6666
6651
|
if _get_session()._is_postgres:
|
6667
6652
|
return unix_seconds_extract_epoch(col)
|
6668
6653
|
|
6669
|
-
if _get_session()._is_bigquery:
|
6670
|
-
return Column(
|
6671
|
-
expression.Anonymous(
|
6672
|
-
this="UNIX_SECONDS",
|
6673
|
-
expressions=[
|
6674
|
-
expression.Anonymous(
|
6675
|
-
this="TIMESTAMP",
|
6676
|
-
expressions=[
|
6677
|
-
Column.ensure_col(col).column_expression,
|
6678
|
-
expression.Literal.string("UTC"),
|
6679
|
-
],
|
6680
|
-
)
|
6681
|
-
],
|
6682
|
-
)
|
6683
|
-
)
|
6684
|
-
|
6685
6654
|
return Column.invoke_expression_over_column(col, expression.UnixSeconds)
|
6686
6655
|
|
6687
6656
|
|
@@ -304,7 +304,10 @@ class _BaseSession(t.Generic[CATALOG, READER, WRITER, DF, TABLE, CONN, UDF_REGIS
|
|
304
304
|
elif isinstance(value, float):
|
305
305
|
return "double"
|
306
306
|
elif isinstance(value, datetime.datetime):
|
307
|
-
|
307
|
+
if value.tzinfo:
|
308
|
+
# Spark defaults `timestamp` to be a timestamp with timezone
|
309
|
+
return "timestamp"
|
310
|
+
return "timestampntz"
|
308
311
|
elif isinstance(value, datetime.date):
|
309
312
|
return "date"
|
310
313
|
elif isinstance(value, str):
|
@@ -35,7 +35,7 @@ def duckdb_datatypes(duckdb_session: DuckDBSession) -> DuckDBDataFrame:
|
|
35
35
|
"array<bigint>_col",
|
36
36
|
"struct<a:bigint>_col",
|
37
37
|
"date_col",
|
38
|
-
"
|
38
|
+
"timestampntz_col",
|
39
39
|
"timestamptz_col",
|
40
40
|
"boolean_col",
|
41
41
|
],
|
@@ -79,7 +79,7 @@ root
|
|
79
79
|
|-- struct<a:bigint>_col: struct<a: bigint> (nullable = true)
|
80
80
|
| |-- a: bigint (nullable = true)
|
81
81
|
|-- date_col: date (nullable = true)
|
82
|
-
|--
|
82
|
+
|-- timestampntz_col: timestamp_ntz (nullable = true)
|
83
83
|
|-- timestamptz_col: timestamp (nullable = true)
|
84
84
|
|-- boolean_col: boolean (nullable = true)""".strip()
|
85
85
|
)
|
@@ -157,8 +157,8 @@ def test_schema_nested(duckdb_datatypes: DuckDBDataFrame):
|
|
157
157
|
)
|
158
158
|
assert struct_fields[7].name == "date_col"
|
159
159
|
assert struct_fields[7].dataType == types.DateType()
|
160
|
-
assert struct_fields[8].name == "
|
161
|
-
assert struct_fields[8].dataType == types.
|
160
|
+
assert struct_fields[8].name == "timestampntz_col"
|
161
|
+
assert struct_fields[8].dataType == types.TimestampNTZType()
|
162
162
|
assert struct_fields[9].name == "timestamptz_col"
|
163
163
|
assert struct_fields[9].dataType == types.TimestampType()
|
164
164
|
assert struct_fields[10].name == "boolean_col"
|
@@ -35,7 +35,7 @@ def spark_datatypes(spark_session: SparkSession) -> SparkDataFrame:
|
|
35
35
|
"array<bigint>_col",
|
36
36
|
"struct<a:bigint>_col",
|
37
37
|
"date_col",
|
38
|
-
"
|
38
|
+
"timestampntz_col",
|
39
39
|
"timestamptz_col",
|
40
40
|
"boolean_col",
|
41
41
|
],
|
@@ -79,7 +79,7 @@ root
|
|
79
79
|
|-- struct<a:bigint>_col: struct<a: bigint> (nullable = false)
|
80
80
|
| |-- a: bigint (nullable = true)
|
81
81
|
|-- date_col: date (nullable = true)
|
82
|
-
|--
|
82
|
+
|-- timestampntz_col: timestamp_ntz (nullable = true)
|
83
83
|
|-- timestamptz_col: timestamp (nullable = true)
|
84
84
|
|-- boolean_col: boolean (nullable = false)""".strip()
|
85
85
|
)
|
@@ -157,8 +157,8 @@ def test_schema_nested(spark_datatypes: SparkDataFrame):
|
|
157
157
|
)
|
158
158
|
assert struct_fields[7].name == "date_col"
|
159
159
|
assert struct_fields[7].dataType == types.DateType()
|
160
|
-
assert struct_fields[8].name == "
|
161
|
-
assert struct_fields[8].dataType == types.
|
160
|
+
assert struct_fields[8].name == "timestampntz_col"
|
161
|
+
assert struct_fields[8].dataType == types.TimestampNTZType()
|
162
162
|
assert struct_fields[9].name == "timestamptz_col"
|
163
163
|
assert struct_fields[9].dataType == types.TimestampType()
|
164
164
|
assert struct_fields[10].name == "boolean_col"
|
@@ -68,3 +68,23 @@ def test_column_get_field_struct(get_session: t.Callable[[], _BaseSession]):
|
|
68
68
|
result3 = df.select(df.r.a.alias("a_dot")).collect()
|
69
69
|
assert result3[0][0] == 1
|
70
70
|
assert result3[1][0] == 2
|
71
|
+
|
72
|
+
|
73
|
+
def test_contains(get_session: t.Callable[[], _BaseSession], get_func):
|
74
|
+
session = get_session()
|
75
|
+
if session._is_postgres:
|
76
|
+
pytest.skip("Postgres does not support the contains function")
|
77
|
+
lit = get_func("lit", session)
|
78
|
+
df = session.createDataFrame([Row(a="foo"), Row(a="bar")])
|
79
|
+
df_foo = df.select(df.a.contains("foo")).collect()
|
80
|
+
assert df_foo[0][0] is True
|
81
|
+
assert df_foo[1][0] is False
|
82
|
+
df_foo_lit = df.select(df.a.contains(lit("foo"))).collect()
|
83
|
+
assert df_foo_lit[0][0] is True
|
84
|
+
assert df_foo_lit[1][0] is False
|
85
|
+
df_bar = df.select(df.a.contains("bar")).collect()
|
86
|
+
assert df_bar[0][0] is False
|
87
|
+
assert df_bar[1][0] is True
|
88
|
+
df_bar_lit = df.select(df.a.contains(lit("bar"))).collect()
|
89
|
+
assert df_bar_lit[0][0] is False
|
90
|
+
assert df_bar_lit[1][0] is True
|
@@ -172,7 +172,7 @@ def test_col(get_session_and_func, input, output):
|
|
172
172
|
([1, 2, 3], "array<bigint>"),
|
173
173
|
(Row(a=1), "struct<a:bigint>"),
|
174
174
|
(datetime.date(2022, 1, 1), "date"),
|
175
|
-
(datetime.datetime(2022, 1, 1, 0, 0, 0), "
|
175
|
+
(datetime.datetime(2022, 1, 1, 0, 0, 0), "timestampntz"),
|
176
176
|
(datetime.datetime(2022, 1, 1, 0, 0, 0, tzinfo=datetime.timezone.utc), "timestamptz"),
|
177
177
|
(True, "boolean"),
|
178
178
|
(bytes("test", "utf-8"), "binary"),
|
@@ -188,9 +188,15 @@ def test_typeof(get_session_and_func, get_types, arg, expected):
|
|
188
188
|
if isinstance(session, PySparkSession)
|
189
189
|
else dialect_to_string(session.execution_dialect)
|
190
190
|
)
|
191
|
-
if isinstance(session, (SparkSession, PySparkSession, DatabricksSession)):
|
191
|
+
if isinstance(session, (SparkSession, PySparkSession, DatabricksSession, BigQuerySession)):
|
192
192
|
if expected == "timestamptz":
|
193
193
|
expected = "timestamp"
|
194
|
+
if isinstance(session, PostgresSession):
|
195
|
+
if expected == "timestampntz":
|
196
|
+
expected = "timestamp"
|
197
|
+
if isinstance(session, BigQuerySession):
|
198
|
+
if expected == "timestampntz":
|
199
|
+
expected = "datetime"
|
194
200
|
if isinstance(session, DuckDBSession):
|
195
201
|
if expected == "binary":
|
196
202
|
pytest.skip("DuckDB doesn't support binary")
|
@@ -218,6 +224,10 @@ def test_typeof(get_session_and_func, get_types, arg, expected):
|
|
218
224
|
expected = "object"
|
219
225
|
elif expected.startswith("array"):
|
220
226
|
pytest.skip("Snowflake doesn't handle arrays properly in values clause")
|
227
|
+
# https://github.com/eakmanrq/sqlframe/issues/383#issuecomment-2870750972
|
228
|
+
if isinstance(session, PySparkSession):
|
229
|
+
if expected == "timestampntz":
|
230
|
+
expected = "timestamp"
|
221
231
|
result = df.select(typeof("col").alias("test")).first()[0]
|
222
232
|
assert exp.DataType.build(result, dialect=dialect) == exp.DataType.build(
|
223
233
|
expected, dialect=dialect
|
@@ -3505,9 +3515,11 @@ def test_character_length(get_session_and_func, get_func):
|
|
3505
3515
|
|
3506
3516
|
def test_contains(get_session_and_func, get_func):
|
3507
3517
|
session, contains = get_session_and_func("contains")
|
3508
|
-
|
3518
|
+
if isinstance(session, BigQuerySession):
|
3519
|
+
pytest.skip("BigQuery just supports constaints for the contains function")
|
3509
3520
|
df = session.createDataFrame([("Spark SQL", "Spark")], ["a", "b"])
|
3510
3521
|
assert df.select(contains(df.a, df.b).alias("r")).collect() == [Row(r=True)]
|
3522
|
+
to_binary = get_func("to_binary", session)
|
3511
3523
|
df = session.createDataFrame(
|
3512
3524
|
[
|
3513
3525
|
(
|
@@ -4701,8 +4701,8 @@ def test_unix_date(expression, expected):
|
|
4701
4701
|
@pytest.mark.parametrize(
|
4702
4702
|
"expression, expected",
|
4703
4703
|
[
|
4704
|
-
(SF.unix_micros("cola"), "UNIX_MICROS(cola)"),
|
4705
|
-
(SF.unix_micros(SF.col("cola")), "UNIX_MICROS(cola)"),
|
4704
|
+
(SF.unix_micros("cola"), "UNIX_MICROS(CAST(cola AS TIMESTAMP_LTZ))"),
|
4705
|
+
(SF.unix_micros(SF.col("cola")), "UNIX_MICROS(CAST(cola AS TIMESTAMP_LTZ))"),
|
4706
4706
|
],
|
4707
4707
|
)
|
4708
4708
|
def test_unix_micros(expression, expected):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.32.1 → sqlframe-3.33.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.32.1 → sqlframe-3.33.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
|