sqlframe 1.1.0__tar.gz → 1.1.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-1.1.0 → sqlframe-1.1.2}/Makefile +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/PKG-INFO +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/bigquery.md +19 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/duckdb.md +16 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/postgres.md +18 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/standalone.md +18 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/setup.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/_version.py +2 -2
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/catalog.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/column.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/dataframe.py +4 -2
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/functions.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/normalize.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/operations.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/readerwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/session.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/transforms.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/types.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/window.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/readwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/catalog.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/readwriter.py +5 -2
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/catalog.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/readwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/catalog.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/readwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/catalog.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/readwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/catalog.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/readwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/group.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/readwriter.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/session.py +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe.egg-info/requires.txt +1 -1
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/duck/test_duckdb_reader.py +49 -6
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_dataframe.py +9 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/.github/CODEOWNERS +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/.gitignore +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/.pre-commit-config.yaml +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/.readthedocs.yaml +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/LICENSE +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/README.md +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/blogs/images/cake.gif +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/bigquery.md +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/duckdb.md +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/images/SF.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/images/favicon.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/images/favicon_old.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/docs/postgres.md +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/images/SF.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/images/favicon.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/images/favicon_old.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/index.md +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/requirements.txt +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/docs/stylesheets/extra.css +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/mkdocs.yml +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/pytest.ini +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/renovate.json +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/setup.cfg +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/LICENSE +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/_typing.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/decorators.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/base/util.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/postgres/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/redshift/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/spark/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe/standalone/window.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/common_fixtures.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/conftest.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/fixtures/employee.csv +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/fixtures/employee.json +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/test_int_functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/fixtures.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/test_int_dataframe.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/test_int_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-1.1.0 → sqlframe-1.1.2}/tests/unit/standalone/test_window.py +0 -0
|
@@ -43,6 +43,25 @@ Regardless of approach, it is recommended to configure `default_dataset` in the
|
|
|
43
43
|
session = BigQuerySession(conn=conn, default_dataset="sqlframe.db1")
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
## Imports
|
|
47
|
+
|
|
48
|
+
If converting a PySpark pipeline, all `pyspark.sql` should be replaced with `sqlframe.bigquery`.
|
|
49
|
+
In addition, many classes will have a `BigQuery` prefix.
|
|
50
|
+
For example, `BigQueryDataFrame` instead of `DataFrame`.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
# PySpark import
|
|
55
|
+
# from pyspark.sql import SparkSession
|
|
56
|
+
# from pyspark.sql import functions as F
|
|
57
|
+
# from pyspark.sql.dataframe import DataFrame
|
|
58
|
+
# SQLFrame import
|
|
59
|
+
from sqlframe.bigquery import BigQuerySession
|
|
60
|
+
from sqlframe.bigquery import functions as F
|
|
61
|
+
from sqlframe.bigquery import BigQueryDataFrame
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
|
|
46
65
|
## Example Usage
|
|
47
66
|
|
|
48
67
|
```python
|
|
@@ -30,7 +30,23 @@ By default, SQLFrame will create a connection to an in-memory database.
|
|
|
30
30
|
conn = duckdb.connect(database=":memory:")
|
|
31
31
|
session = DuckDBSession(conn=conn)
|
|
32
32
|
```
|
|
33
|
+
## Imports
|
|
33
34
|
|
|
35
|
+
If converting a PySpark pipeline, all `pyspark.sql` should be replaced with `sqlframe.duckdb`.
|
|
36
|
+
In addition, many classes will have a `DuckDB` prefix.
|
|
37
|
+
For example, `DuckDBDataFrame` instead of `DataFrame`.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
# PySpark import
|
|
42
|
+
# from pyspark.sql import SparkSession
|
|
43
|
+
# from pyspark.sql import functions as F
|
|
44
|
+
# from pyspark.sql.dataframe import DataFrame
|
|
45
|
+
# SQLFrame import
|
|
46
|
+
from sqlframe.duckdb import DuckDBSession
|
|
47
|
+
from sqlframe.duckdb import functions as F
|
|
48
|
+
from sqlframe.duckdb import DuckDBDataFrame
|
|
49
|
+
```
|
|
34
50
|
|
|
35
51
|
## Example Usage
|
|
36
52
|
|
|
@@ -25,6 +25,24 @@ conn = connect(
|
|
|
25
25
|
session = PostgresSession(conn=conn)
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Imports
|
|
29
|
+
|
|
30
|
+
If converting a PySpark pipeline, all `pyspark.sql` should be replaced with `sqlframe.postgres`.
|
|
31
|
+
In addition, many classes will have a `Postgres` prefix.
|
|
32
|
+
For example, `PostgresDataFrame` instead of `DataFrame`.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
# PySpark import
|
|
37
|
+
# from pyspark.sql import SparkSession
|
|
38
|
+
# from pyspark.sql import functions as F
|
|
39
|
+
# from pyspark.sql.dataframe import DataFrame
|
|
40
|
+
# SQLFrame import
|
|
41
|
+
from sqlframe.postgres import PostgresSession
|
|
42
|
+
from sqlframe.postgres import functions as F
|
|
43
|
+
from sqlframe.postgres import PostgresDataFrame
|
|
44
|
+
```
|
|
45
|
+
|
|
28
46
|
## Example Usage
|
|
29
47
|
|
|
30
48
|
```python
|
|
@@ -24,6 +24,24 @@ from sqlframe.standalone import StandaloneSession
|
|
|
24
24
|
session = StandaloneSession.builder.config(map={"sqlframe.input.dialect": 'duckdb', "sqlframe.output.dialect": 'bigquery'}).getOrCreate()
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
## Imports
|
|
28
|
+
|
|
29
|
+
If converting a PySpark pipeline, all `pyspark.sql` should be replaced with `sqlframe.standalone`.
|
|
30
|
+
In addition, many classes will have a `Standalone` prefix.
|
|
31
|
+
For example, `StandaloneDataFrame` instead of `DataFrame`.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
# PySpark import
|
|
36
|
+
# from pyspark.sql import SparkSession
|
|
37
|
+
# from pyspark.sql import functions as F
|
|
38
|
+
# from pyspark.sql.dataframe import DataFrame
|
|
39
|
+
# SQLFrame import
|
|
40
|
+
from sqlframe.standalone import StandaloneSession
|
|
41
|
+
from sqlframe.standalone import functions as F
|
|
42
|
+
from sqlframe.standalone import StandaloneDataFrame
|
|
43
|
+
```
|
|
44
|
+
|
|
27
45
|
## Accessing Tables
|
|
28
46
|
|
|
29
47
|
PySpark DataFrame API, and currently SQLFrame, requires that a table can be access to get it's schema information.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -608,7 +608,9 @@ class _BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
|
608
608
|
@operation(Operation.WHERE)
|
|
609
609
|
def where(self, column: t.Union[Column, str, bool], **kwargs) -> Self:
|
|
610
610
|
if isinstance(column, str):
|
|
611
|
-
col =
|
|
611
|
+
col = self._ensure_and_normalize_col(
|
|
612
|
+
sqlglot.parse_one(column, dialect=self.session.input_dialect)
|
|
613
|
+
)
|
|
612
614
|
else:
|
|
613
615
|
col = self._ensure_and_normalize_col(column)
|
|
614
616
|
return self.copy(expression=self.expression.where(col.expression))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
import typing as t
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -74,7 +74,10 @@ class DuckDBDataFrameReader(_BaseDataFrameReader["DuckDBSession", "DuckDBDataFra
|
|
|
74
74
|
"""
|
|
75
75
|
if schema:
|
|
76
76
|
column_mapping = ensure_column_mapping(schema)
|
|
77
|
-
|
|
77
|
+
select_column_mapping = column_mapping.copy()
|
|
78
|
+
if options.get("filename"):
|
|
79
|
+
select_column_mapping["filename"] = "VARCHAR"
|
|
80
|
+
select_columns = [x.expression for x in self._to_casted_columns(select_column_mapping)]
|
|
78
81
|
if format == "csv":
|
|
79
82
|
duckdb_columns = ", ".join(
|
|
80
83
|
[f"'{column}': '{dtype}'" for column, dtype in column_mapping.items()]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the '
|
|
1
|
+
# This code is based on code from Apache Spark under the license found in the LICENSE file located in the 'sqlframe' folder.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -17,13 +17,56 @@ def test_employee_extra_line_csv(duckdb_session: DuckDBSession):
|
|
|
17
17
|
auto_detect=False,
|
|
18
18
|
)
|
|
19
19
|
assert df.collect() == [
|
|
20
|
-
Row(**{"employee_id": 1, "fname": "Jack", "lname": "Shephard", "age": 37, "store_id": 1}),
|
|
21
|
-
Row(**{"employee_id": 2, "fname": "John", "lname": "Locke", "age": 65, "store_id": 1}),
|
|
22
|
-
Row(**{"employee_id": 3, "fname": "Kate", "lname": "Austen", "age": 37, "store_id": 2}),
|
|
23
20
|
Row(
|
|
24
|
-
**{
|
|
21
|
+
**{
|
|
22
|
+
"employee_id": 1,
|
|
23
|
+
"fname": "Jack",
|
|
24
|
+
"lname": "Shephard",
|
|
25
|
+
"age": 37,
|
|
26
|
+
"store_id": 1,
|
|
27
|
+
"filename": "tests/fixtures/employee_extra_line.csv",
|
|
28
|
+
}
|
|
29
|
+
),
|
|
30
|
+
Row(
|
|
31
|
+
**{
|
|
32
|
+
"employee_id": 2,
|
|
33
|
+
"fname": "John",
|
|
34
|
+
"lname": "Locke",
|
|
35
|
+
"age": 65,
|
|
36
|
+
"store_id": 1,
|
|
37
|
+
"filename": "tests/fixtures/employee_extra_line.csv",
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
Row(
|
|
41
|
+
**{
|
|
42
|
+
"employee_id": 3,
|
|
43
|
+
"fname": "Kate",
|
|
44
|
+
"lname": "Austen",
|
|
45
|
+
"age": 37,
|
|
46
|
+
"store_id": 2,
|
|
47
|
+
"filename": "tests/fixtures/employee_extra_line.csv",
|
|
48
|
+
}
|
|
49
|
+
),
|
|
50
|
+
Row(
|
|
51
|
+
**{
|
|
52
|
+
"employee_id": 4,
|
|
53
|
+
"fname": "Claire",
|
|
54
|
+
"lname": "Littleton",
|
|
55
|
+
"age": 27,
|
|
56
|
+
"store_id": 2,
|
|
57
|
+
"filename": "tests/fixtures/employee_extra_line.csv",
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
Row(
|
|
61
|
+
**{
|
|
62
|
+
"employee_id": 5,
|
|
63
|
+
"fname": "Hugo",
|
|
64
|
+
"lname": "Reyes",
|
|
65
|
+
"age": 29,
|
|
66
|
+
"store_id": 100,
|
|
67
|
+
"filename": "tests/fixtures/employee_extra_line.csv",
|
|
68
|
+
}
|
|
25
69
|
),
|
|
26
|
-
Row(**{"employee_id": 5, "fname": "Hugo", "lname": "Reyes", "age": 29, "store_id": 100}),
|
|
27
70
|
]
|
|
28
71
|
|
|
29
72
|
|
|
@@ -34,7 +77,7 @@ def test_employee_extra_line_csv_multiple(duckdb_session: DuckDBSession):
|
|
|
34
77
|
schema="employee_id INT, fname STRING, lname STRING, age INT, store_id INT",
|
|
35
78
|
skip=1,
|
|
36
79
|
header=1,
|
|
37
|
-
filename=
|
|
80
|
+
filename=0,
|
|
38
81
|
null_padding=True,
|
|
39
82
|
ignore_errors=1,
|
|
40
83
|
auto_detect=False,
|
|
@@ -55,3 +55,12 @@ def test_with_column_duplicate_alias(standalone_employee: StandaloneDataFrame):
|
|
|
55
55
|
df.sql(pretty=False)
|
|
56
56
|
== "SELECT `a1`.`employee_id` AS `employee_id`, CAST(`a1`.`age` AS STRING) AS `fname`, CAST(`a1`.`lname` AS STRING) AS `lname`, `a1`.`age` AS `age`, `a1`.`store_id` AS `store_id` FROM VALUES (1, 'Jack', 'Shephard', 37, 1), (2, 'John', 'Locke', 65, 1), (3, 'Kate', 'Austen', 37, 2), (4, 'Claire', 'Littleton', 27, 2), (5, 'Hugo', 'Reyes', 29, 100) AS `a1`(`employee_id`, `fname`, `lname`, `age`, `store_id`)"
|
|
57
57
|
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def test_where_expr(standalone_employee: StandaloneDataFrame):
|
|
61
|
+
df = standalone_employee.where("fname = 'Jack' AND age = 37")
|
|
62
|
+
assert df.columns == ["employee_id", "fname", "lname", "age", "store_id"]
|
|
63
|
+
assert (
|
|
64
|
+
df.sql(pretty=False)
|
|
65
|
+
== "SELECT `a1`.`employee_id` AS `employee_id`, CAST(`a1`.`fname` AS STRING) AS `fname`, CAST(`a1`.`lname` AS STRING) AS `lname`, `a1`.`age` AS `age`, `a1`.`store_id` AS `store_id` FROM VALUES (1, 'Jack', 'Shephard', 37, 1), (2, 'John', 'Locke', 65, 1), (3, 'Kate', 'Austen', 37, 2), (4, 'Claire', 'Littleton', 27, 2), (5, 'Hugo', 'Reyes', 29, 100) AS `a1`(`employee_id`, `fname`, `lname`, `age`, `store_id`) WHERE `a1`.`age` = 37 AND CAST(`a1`.`fname` AS STRING) = 'Jack'"
|
|
66
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/bigquery/test_bigquery_catalog.py
RENAMED
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/bigquery/test_bigquery_session.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/postgres/test_postgres_catalog.py
RENAMED
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/postgres/test_postgres_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/redshift/test_redshift_catalog.py
RENAMED
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/redshift/test_redshift_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/snowflake/test_snowflake_catalog.py
RENAMED
|
File without changes
|
{sqlframe-1.1.0 → sqlframe-1.1.2}/tests/integration/engines/snowflake/test_snowflake_session.py
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
|