sqlframe 3.14.0__tar.gz → 3.14.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.14.0 → sqlframe-3.14.2}/PKG-INFO +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/bigquery.md +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/duckdb.md +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/postgres.md +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/redshift.md +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/snowflake.md +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/setup.py +3 -3
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/_version.py +2 -2
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/dataframe.py +41 -18
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe.egg-info/requires.txt +3 -3
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/test_int_dataframe.py +63 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/.github/CODEOWNERS +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/.gitignore +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/.readthedocs.yaml +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/LICENSE +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/Makefile +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/README.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/cake.gif +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/configuration.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/databricks.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/images/favicon_old.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/docs/postgres.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/images/SF.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/images/favicon.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/images/favicon_old.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/index.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/requirements.txt +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/spark.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/standalone.md +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/mkdocs.yml +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/pytest.ini +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/renovate.json +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/setup.cfg +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/LICENSE +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/util.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/base/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/common_fixtures.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/conftest.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_int_functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/conftest.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.14.0 → sqlframe-3.14.2}/tests/unit/test_util.py +0 -0
|
@@ -641,7 +641,7 @@ df_employee = session.createDataFrame(
|
|
|
641
641
|
|
|
642
642
|
df_employee.write.mode("overwrite").saveAsTable("employee")
|
|
643
643
|
|
|
644
|
-
table_employee = session.table("employee") # This object is of Type
|
|
644
|
+
table_employee = session.table("employee") # This object is of Type BigqueryTable
|
|
645
645
|
```
|
|
646
646
|
|
|
647
647
|
#### Update Statement
|
|
@@ -592,7 +592,7 @@ df_employee = session.createDataFrame(
|
|
|
592
592
|
|
|
593
593
|
df_employee.write.mode("overwrite").saveAsTable("employee")
|
|
594
594
|
|
|
595
|
-
table_employee = session.table("employee") # This object is of Type
|
|
595
|
+
table_employee = session.table("employee") # This object is of Type DuckDBTable
|
|
596
596
|
```
|
|
597
597
|
|
|
598
598
|
#### Update Statement
|
|
@@ -587,7 +587,7 @@ df_employee = session.createDataFrame(
|
|
|
587
587
|
|
|
588
588
|
df_employee.write.mode("overwrite").saveAsTable("employee")
|
|
589
589
|
|
|
590
|
-
table_employee = session.table("employee") # This object is of Type
|
|
590
|
+
table_employee = session.table("employee") # This object is of Type PostgresTable
|
|
591
591
|
```
|
|
592
592
|
|
|
593
593
|
#### Update Statement
|
|
@@ -196,7 +196,7 @@ df_employee = session.createDataFrame(
|
|
|
196
196
|
|
|
197
197
|
df_employee.write.mode("overwrite").saveAsTable("employee")
|
|
198
198
|
|
|
199
|
-
table_employee = session.table("employee") # This object is of Type
|
|
199
|
+
table_employee = session.table("employee") # This object is of Type RedshiftTable
|
|
200
200
|
```
|
|
201
201
|
|
|
202
202
|
#### Update Statement
|
|
@@ -642,7 +642,7 @@ df_employee = session.createDataFrame(
|
|
|
642
642
|
|
|
643
643
|
df_employee.write.mode("overwrite").saveAsTable("employee")
|
|
644
644
|
|
|
645
|
-
table_employee = session.table("employee") # This object is of Type
|
|
645
|
+
table_employee = session.table("employee") # This object is of Type SnowflakeTable
|
|
646
646
|
```
|
|
647
647
|
|
|
648
648
|
#### Update Statement
|
|
@@ -20,7 +20,7 @@ setup(
|
|
|
20
20
|
python_requires=">=3.9",
|
|
21
21
|
install_requires=[
|
|
22
22
|
"prettytable<4",
|
|
23
|
-
"sqlglot>=24.0.0,<26.
|
|
23
|
+
"sqlglot>=24.0.0,<26.4",
|
|
24
24
|
"typing_extensions",
|
|
25
25
|
],
|
|
26
26
|
extras_require={
|
|
@@ -70,13 +70,13 @@ setup(
|
|
|
70
70
|
"redshift_connector>=2.1.1,<2.2.0",
|
|
71
71
|
],
|
|
72
72
|
"snowflake": [
|
|
73
|
-
"snowflake-connector-python[secure-local-storage]>=3.10.0,<3.
|
|
73
|
+
"snowflake-connector-python[secure-local-storage]>=3.10.0,<3.14",
|
|
74
74
|
],
|
|
75
75
|
"spark": [
|
|
76
76
|
"pyspark>=2,<3.6",
|
|
77
77
|
],
|
|
78
78
|
"databricks": [
|
|
79
|
-
"databricks-sql-connector>=3.6,<
|
|
79
|
+
"databricks-sql-connector>=3.6,<5",
|
|
80
80
|
],
|
|
81
81
|
},
|
|
82
82
|
classifiers=[
|
|
@@ -9,6 +9,7 @@ import json
|
|
|
9
9
|
import logging
|
|
10
10
|
import sys
|
|
11
11
|
import typing as t
|
|
12
|
+
import uuid
|
|
12
13
|
import zlib
|
|
13
14
|
from copy import copy
|
|
14
15
|
from dataclasses import dataclass
|
|
@@ -79,6 +80,23 @@ JOIN_HINTS = {
|
|
|
79
80
|
"SHUFFLE_REPLICATE_NL",
|
|
80
81
|
}
|
|
81
82
|
|
|
83
|
+
JOIN_TYPE_MAPPING = {
|
|
84
|
+
"inner": "inner",
|
|
85
|
+
"cross": "cross",
|
|
86
|
+
"outer": "full_outer",
|
|
87
|
+
"full": "full_outer",
|
|
88
|
+
"fullouter": "full_outer",
|
|
89
|
+
"left": "left_outer",
|
|
90
|
+
"leftouter": "left_outer",
|
|
91
|
+
"right": "right_outer",
|
|
92
|
+
"rightouter": "right_outer",
|
|
93
|
+
"semi": "left_semi",
|
|
94
|
+
"leftsemi": "left_semi",
|
|
95
|
+
"left_semi": "left_semi",
|
|
96
|
+
"anti": "left_anti",
|
|
97
|
+
"leftanti": "left_anti",
|
|
98
|
+
"left_anti": "left_anti",
|
|
99
|
+
}
|
|
82
100
|
|
|
83
101
|
DF = t.TypeVar("DF", bound="BaseDataFrame")
|
|
84
102
|
|
|
@@ -474,22 +492,20 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
474
492
|
with_expression = expression.args.get("with")
|
|
475
493
|
if with_expression:
|
|
476
494
|
existing_ctes = with_expression.expressions
|
|
477
|
-
|
|
495
|
+
existing_cte_names = {x.alias_or_name for x in existing_ctes}
|
|
478
496
|
replaced_cte_names = {} # type: ignore
|
|
479
497
|
for cte in ctes:
|
|
480
498
|
if replaced_cte_names:
|
|
481
499
|
cte = cte.transform(replace_id_value, replaced_cte_names) # type: ignore
|
|
482
|
-
if cte.alias_or_name in
|
|
483
|
-
|
|
500
|
+
if cte.alias_or_name in existing_cte_names:
|
|
501
|
+
random_filter = exp.Literal.string(uuid.uuid4().hex)
|
|
484
502
|
# Add unique where filter to ensure that the hash of the CTE is unique
|
|
485
503
|
cte.set(
|
|
486
504
|
"this",
|
|
487
505
|
cte.this.where(
|
|
488
506
|
exp.EQ(
|
|
489
|
-
this=
|
|
490
|
-
expression=
|
|
491
|
-
existing_cte_counts[cte.alias_or_name]
|
|
492
|
-
),
|
|
507
|
+
this=random_filter,
|
|
508
|
+
expression=random_filter,
|
|
493
509
|
)
|
|
494
510
|
),
|
|
495
511
|
)
|
|
@@ -503,7 +519,7 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
503
519
|
new_cte_alias, dialect=self.session.input_dialect, into=exp.TableAlias
|
|
504
520
|
),
|
|
505
521
|
)
|
|
506
|
-
|
|
522
|
+
existing_cte_names.add(new_cte_alias)
|
|
507
523
|
existing_ctes.append(cte)
|
|
508
524
|
else:
|
|
509
525
|
existing_ctes = ctes
|
|
@@ -944,16 +960,20 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
944
960
|
) -> Self:
|
|
945
961
|
from sqlframe.base.functions import coalesce
|
|
946
962
|
|
|
947
|
-
if on is None:
|
|
963
|
+
if (on is None) and ("cross" not in how):
|
|
948
964
|
logger.warning("Got no value for on. This appears to change the join to a cross join.")
|
|
949
965
|
how = "cross"
|
|
966
|
+
if (on is not None) and ("cross" in how):
|
|
967
|
+
# Not a lot of doc, but Spark handles cross with predicate as an inner join
|
|
968
|
+
# https://learn.microsoft.com/en-us/dotnet/api/microsoft.spark.sql.dataframe.join
|
|
969
|
+
logger.warning("Got cross join with an 'on' value. This will result in an inner join.")
|
|
970
|
+
how = "inner"
|
|
950
971
|
|
|
951
972
|
other_df = other_df._convert_leaf_to_cte()
|
|
952
973
|
join_expression = self._add_ctes_to_expression(self.expression, other_df.expression.ctes)
|
|
953
974
|
# We will determine actual "join on" expression later so we don't provide it at first
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
)
|
|
975
|
+
join_type = JOIN_TYPE_MAPPING.get(how, how).replace("_", " ")
|
|
976
|
+
join_expression = join_expression.join(join_expression.ctes[-1].alias, join_type=join_type)
|
|
957
977
|
self_columns = self._get_outer_select_columns(join_expression)
|
|
958
978
|
other_columns = self._get_outer_select_columns(other_df.expression)
|
|
959
979
|
join_columns = self._ensure_and_normalize_cols(on)
|
|
@@ -961,7 +981,12 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
961
981
|
|
|
962
982
|
# Determines the join clause and select columns to be used passed on what type of columns were provided for
|
|
963
983
|
# the join. The columns returned changes based on how the on expression is provided.
|
|
964
|
-
|
|
984
|
+
select_columns = (
|
|
985
|
+
self_columns
|
|
986
|
+
if join_type in ["left anti", "left semi"]
|
|
987
|
+
else self_columns + other_columns
|
|
988
|
+
)
|
|
989
|
+
if join_type != "cross":
|
|
965
990
|
if isinstance(join_columns[0].expression, exp.Column):
|
|
966
991
|
"""
|
|
967
992
|
Unique characteristics of join on column names only:
|
|
@@ -992,7 +1017,7 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
992
1017
|
if not isinstance(column.expression.this, exp.Star)
|
|
993
1018
|
else column.sql()
|
|
994
1019
|
)
|
|
995
|
-
for column in
|
|
1020
|
+
for column in select_columns
|
|
996
1021
|
]
|
|
997
1022
|
select_column_names = [
|
|
998
1023
|
column_name
|
|
@@ -1010,13 +1035,11 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
1010
1035
|
* The left join dataframe columns go first and right come after. No sort preference is given to join columns
|
|
1011
1036
|
"""
|
|
1012
1037
|
join_clause = self._normalize_join_clause(join_columns, join_expression)
|
|
1013
|
-
select_column_names = [
|
|
1014
|
-
column.alias_or_name for column in self_columns + other_columns
|
|
1015
|
-
]
|
|
1038
|
+
select_column_names = [column.alias_or_name for column in select_columns]
|
|
1016
1039
|
|
|
1017
1040
|
# Update the on expression with the actual join clause to replace the dummy one from before
|
|
1018
1041
|
else:
|
|
1019
|
-
select_column_names = [column.alias_or_name for column in
|
|
1042
|
+
select_column_names = [column.alias_or_name for column in select_columns]
|
|
1020
1043
|
join_clause = None
|
|
1021
1044
|
join_expression.args["joins"][-1].set("on", join_clause.expression if join_clause else None)
|
|
1022
1045
|
new_df = self.copy(expression=join_expression)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
prettytable<4
|
|
2
|
-
sqlglot<26.
|
|
2
|
+
sqlglot<26.4,>=24.0.0
|
|
3
3
|
typing_extensions
|
|
4
4
|
|
|
5
5
|
[bigquery]
|
|
@@ -7,7 +7,7 @@ google-cloud-bigquery-storage<3,>=2
|
|
|
7
7
|
google-cloud-bigquery[pandas]<4,>=3
|
|
8
8
|
|
|
9
9
|
[databricks]
|
|
10
|
-
databricks-sql-connector<
|
|
10
|
+
databricks-sql-connector<5,>=3.6
|
|
11
11
|
|
|
12
12
|
[dev]
|
|
13
13
|
duckdb<1.2,>=0.9
|
|
@@ -51,7 +51,7 @@ psycopg2<3,>=2.8
|
|
|
51
51
|
redshift_connector<2.2.0,>=2.1.1
|
|
52
52
|
|
|
53
53
|
[snowflake]
|
|
54
|
-
snowflake-connector-python[secure-local-storage]<3.
|
|
54
|
+
snowflake-connector-python[secure-local-storage]<3.14,>=3.10.0
|
|
55
55
|
|
|
56
56
|
[spark]
|
|
57
57
|
pyspark<3.6,>=2
|
|
@@ -435,6 +435,43 @@ def test_join_inner(
|
|
|
435
435
|
compare_frames(df_joined, dfs_joined, sort=True)
|
|
436
436
|
|
|
437
437
|
|
|
438
|
+
@pytest.mark.parametrize(
|
|
439
|
+
"how",
|
|
440
|
+
[
|
|
441
|
+
"inner",
|
|
442
|
+
"cross",
|
|
443
|
+
"outer",
|
|
444
|
+
"full",
|
|
445
|
+
"fullouter",
|
|
446
|
+
"full_outer",
|
|
447
|
+
"left",
|
|
448
|
+
"leftouter",
|
|
449
|
+
"left_outer",
|
|
450
|
+
"right",
|
|
451
|
+
"rightouter",
|
|
452
|
+
"right_outer",
|
|
453
|
+
"semi",
|
|
454
|
+
"leftsemi",
|
|
455
|
+
"left_semi",
|
|
456
|
+
"anti",
|
|
457
|
+
"leftanti",
|
|
458
|
+
"left_anti",
|
|
459
|
+
],
|
|
460
|
+
)
|
|
461
|
+
def test_join_various_how(
|
|
462
|
+
pyspark_employee: PySparkDataFrame,
|
|
463
|
+
pyspark_store: PySparkDataFrame,
|
|
464
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
|
465
|
+
compare_frames: t.Callable,
|
|
466
|
+
how: str,
|
|
467
|
+
):
|
|
468
|
+
employee = get_df("employee")
|
|
469
|
+
store = get_df("store")
|
|
470
|
+
df_joined = pyspark_employee.join(pyspark_store, on=["store_id"], how=how)
|
|
471
|
+
dfs_joined = employee.join(store, on=["store_id"], how=how)
|
|
472
|
+
compare_frames(df_joined, dfs_joined, sort=True)
|
|
473
|
+
|
|
474
|
+
|
|
438
475
|
def test_join_inner_no_select(
|
|
439
476
|
pyspark_employee: PySparkDataFrame,
|
|
440
477
|
pyspark_store: PySparkDataFrame,
|
|
@@ -2318,3 +2355,29 @@ def test_union_common_root(
|
|
|
2318
2355
|
dfs_final = dfs_1.union(dfs_2)
|
|
2319
2356
|
|
|
2320
2357
|
compare_frames(df_final, dfs_final, compare_schema=False)
|
|
2358
|
+
|
|
2359
|
+
|
|
2360
|
+
# https://github.com/eakmanrq/sqlframe/issues/253
|
|
2361
|
+
def test_union_common_root_again(
|
|
2362
|
+
pyspark_employee: PySparkDataFrame,
|
|
2363
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
|
2364
|
+
compare_frames: t.Callable,
|
|
2365
|
+
):
|
|
2366
|
+
df_1 = pyspark_employee.filter(F.col("age") > 40)
|
|
2367
|
+
df_2 = df_1.join(
|
|
2368
|
+
pyspark_employee.select("employee_id").distinct(),
|
|
2369
|
+
on="employee_id",
|
|
2370
|
+
how="right",
|
|
2371
|
+
)
|
|
2372
|
+
df_final = df_1.union(df_2).union(pyspark_employee)
|
|
2373
|
+
|
|
2374
|
+
employee = get_df("employee")
|
|
2375
|
+
dfs_1 = employee.filter(SF.col("age") > 40)
|
|
2376
|
+
dfs_2 = dfs_1.join(
|
|
2377
|
+
employee.select("employee_id").distinct(),
|
|
2378
|
+
on="employee_id",
|
|
2379
|
+
how="right",
|
|
2380
|
+
)
|
|
2381
|
+
dfs_final = dfs_1.union(dfs_2).union(employee)
|
|
2382
|
+
|
|
2383
|
+
compare_frames(df_final, dfs_final, compare_schema=False)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
|
File without changes
|
|
File without changes
|
{sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
|
File without changes
|
{sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
|
File without changes
|
{sqlframe-3.14.0 → sqlframe-3.14.2}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
|
File without changes
|
{sqlframe-3.14.0 → sqlframe-3.14.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
|