sqlalchemy-cratedb 0.38.0__tar.gz → 0.39.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.
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/CHANGES.md +3 -1
- {sqlalchemy_cratedb-0.38.0/src/sqlalchemy_cratedb.egg-info → sqlalchemy_cratedb-0.39.0}/PKG-INFO +8 -9
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/pyproject.toml +118 -110
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/__init__.py +7 -4
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/api13.py +5 -9
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/core10.py +26 -37
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/core14.py +30 -52
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/core20.py +35 -58
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compiler.py +72 -83
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/dialect.py +62 -53
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/predicate.py +14 -17
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/sa_version.py +2 -2
- sqlalchemy_cratedb-0.39.0/src/sqlalchemy_cratedb/support/__init__.py +18 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/support/pandas.py +4 -5
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/support/polyfill.py +9 -4
- sqlalchemy_cratedb-0.39.0/src/sqlalchemy_cratedb/support/util.py +82 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/type/__init__.py +9 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/type/array.py +5 -8
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/type/geo.py +5 -10
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/type/object.py +13 -11
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/type/vector.py +6 -3
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0/src/sqlalchemy_cratedb.egg-info}/PKG-INFO +8 -9
- sqlalchemy_cratedb-0.39.0/src/sqlalchemy_cratedb.egg-info/SOURCES.txt +43 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb.egg-info/requires.txt +7 -8
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/tests/test_support_pandas.py +26 -11
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/tests/test_support_polyfill.py +24 -10
- sqlalchemy_cratedb-0.39.0/tests/test_support_util.py +51 -0
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/advanced-querying.rst.txt +0 -335
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/crud.rst.txt +0 -301
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/data-types.rst.txt +0 -87
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/dataframe.rst.txt +0 -258
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/getting-started.rst.txt +0 -211
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/index-all.rst.txt +0 -21
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/index.rst.txt +0 -252
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/inspection-reflection.rst.txt +0 -126
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/install.rst.txt +0 -50
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/migrate-from-crate-client.md.txt +0 -54
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/overview.rst.txt +0 -761
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/support.md.txt +0 -243
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_sources/working-with-types.rst.txt +0 -303
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/_static/bundle/main.js.LICENSE.txt +0 -19
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build/output.txt +0 -13
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/Babel-2.15.0.dist-info/entry_points.txt +0 -20
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/Babel-2.15.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/MarkupSafe-2.1.5.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/PyYAML-6.0.1.dist-info/top_level.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/alabaster-0.7.16.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/certifi-2024.6.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/charset_normalizer-3.3.2.dist-info/entry_points.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/charset_normalizer-3.3.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt +0 -27
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/crate/theme/rtd/crate/static/bundle/main.js.LICENSE.txt +0 -19
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/crate_docs_theme-0.32.4.dev1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/README.txt +0 -17
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsa.txt +0 -162
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsb.txt +0 -126
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsc.txt +0 -29
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsn.txt +0 -96
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamso.txt +0 -62
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsr.txt +0 -191
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isobox.txt +0 -46
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isocyr1.txt +0 -73
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isocyr2.txt +0 -32
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isodia.txt +0 -20
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk1.txt +0 -55
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk2.txt +0 -26
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk3.txt +0 -52
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk4-wide.txt +0 -49
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk4.txt +0 -8
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isolat1.txt +0 -68
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isolat2.txt +0 -128
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomfrk-wide.txt +0 -58
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomfrk.txt +0 -11
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomopf-wide.txt +0 -32
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomopf.txt +0 -13
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomscr-wide.txt +0 -58
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomscr.txt +0 -17
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isonum.txt +0 -82
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isopub.txt +0 -90
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isotech.txt +0 -168
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlalias.txt +0 -554
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlextra-wide.txt +0 -113
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlextra.txt +0 -87
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/s5defs.txt +0 -68
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-lat1.txt +0 -102
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-special.txt +0 -37
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-symbol.txt +0 -130
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/html4css1/template.txt +0 -8
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/html5_polyglot/template.txt +0 -8
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/pep_html/template.txt +0 -29
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/s5_html/themes/README.txt +0 -6
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils-0.16.dist-info/COPYING.txt +0 -137
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils-0.16.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/imagesize-1.4.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/importlib_metadata-7.1.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/jinja2-3.1.4.dist-info/LICENSE.txt +0 -28
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/jinja2-3.1.4.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/linkify_it_py-1.0.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/livereload-2.6.3.dist-info/entry_points.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/livereload-2.6.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/markdown_it_py-2.2.0.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/myst_parser-1.0.0.dist-info/entry_points.txt +0 -10
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +0 -24
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/AUTHORS.txt +0 -760
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/LICENSE.txt +0 -20
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/entry_points.txt +0 -4
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pygments-2.18.0.dist-info/entry_points.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/requests-2.32.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/setuptools-58.1.0.dist-info/entry_points.txt +0 -56
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/setuptools-58.1.0.dist-info/top_level.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/six-1.16.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/snowballstemmer-2.2.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx-5.3.0.dist-info/entry_points.txt +0 -9
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_autobuild-2021.3.14.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_copybutton-0.5.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_design/compiled/material-icons_VERSION.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_design_elements-0.3.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_sitemap-2.6.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_togglebutton-0.3.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info/namespace_packages.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_mermaid-0.9.2.dist-info/namespace_packages.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_mermaid-0.9.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_plantuml-0.30.dist-info/namespace_packages.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_plantuml-0.30.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxext_opengraph-0.9.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado/test/static/robots.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado/test/static_foo.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado-6.4.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/uc_micro_py-1.0.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/urllib3-2.2.1.dist-info/licenses/LICENSE.txt +0 -21
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel/vendored/vendor.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel-0.43.0.dist-info/LICENSE.txt +0 -21
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel-0.43.0.dist-info/entry_points.txt +0 -6
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.venv/lib/python3.9/site-packages/zipp-3.19.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/common-build/requirements.txt +0 -12
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/docs/_extra/robots.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/docs/requirements.txt +0 -2
- sqlalchemy_cratedb-0.38.0/docs/.crate-docs/helpers/preview/etc/requirements.txt +0 -3
- sqlalchemy_cratedb-0.38.0/docs/_extra/robots.txt +0 -4
- sqlalchemy_cratedb-0.38.0/src/sqlalchemy_cratedb/support/__init__.py +0 -14
- sqlalchemy_cratedb-0.38.0/src/sqlalchemy_cratedb/support/util.py +0 -41
- sqlalchemy_cratedb-0.38.0/src/sqlalchemy_cratedb.egg-info/SOURCES.txt +0 -156
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/CODE_OF_CONDUCT.md +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/CONTRIBUTING.md +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/DEVELOP.md +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/LICENSE +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/MANIFEST.in +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/NOTICE +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/README.md +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/backlog.md +0 -0
- {sqlalchemy_cratedb-0.38.0/docs/.crate-docs/.build → sqlalchemy_cratedb-0.39.0/docs/_extra}/robots.txt +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/docs/requirements.txt +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/setup.cfg +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/setup.py +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/__init__.py +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb.egg-info/dependency_links.txt +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb.egg-info/entry_points.txt +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb.egg-info/top_level.txt +0 -0
- {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/tests/test_schema.py +0 -0
@@ -1,8 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
4
3
|
## Unreleased
|
5
4
|
|
5
|
+
## 2024/08/29 0.39.0
|
6
|
+
Added `quote_relation_name` support utility function
|
7
|
+
|
6
8
|
## 2024/06/25 0.38.0
|
7
9
|
- Added/reactivated documentation as `sqlalchemy-cratedb`
|
8
10
|
- Added `CrateIdentifierPreparer`, in order to quote reserved words
|
{sqlalchemy_cratedb-0.38.0/src/sqlalchemy_cratedb.egg-info → sqlalchemy_cratedb-0.39.0}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sqlalchemy-cratedb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.39.0
|
4
4
|
Summary: SQLAlchemy dialect for CrateDB.
|
5
5
|
Author-email: "Crate.io" <office@crate.io>
|
6
6
|
License: Apache License 2.0
|
@@ -63,7 +63,7 @@ Description-Content-Type: text/markdown
|
|
63
63
|
License-File: LICENSE
|
64
64
|
License-File: NOTICE
|
65
65
|
Requires-Dist: backports.zoneinfo<1; python_version < "3.9"
|
66
|
-
Requires-Dist: crate==1.0.
|
66
|
+
Requires-Dist: crate==1.0.0.dev0
|
67
67
|
Requires-Dist: geojson<4,>=2.5
|
68
68
|
Requires-Dist: importlib-resources; python_version < "3.9"
|
69
69
|
Requires-Dist: sqlalchemy<2.1,>=1
|
@@ -71,15 +71,14 @@ Requires-Dist: verlib2==0.2
|
|
71
71
|
Provides-Extra: all
|
72
72
|
Requires-Dist: sqlalchemy-cratedb[vector]; extra == "all"
|
73
73
|
Provides-Extra: develop
|
74
|
-
Requires-Dist:
|
75
|
-
Requires-Dist:
|
76
|
-
Requires-Dist:
|
77
|
-
Requires-Dist:
|
78
|
-
Requires-Dist:
|
79
|
-
Requires-Dist: validate-pyproject<0.19; extra == "develop"
|
74
|
+
Requires-Dist: mypy<1.12; extra == "develop"
|
75
|
+
Requires-Dist: poethepoet<0.28; extra == "develop"
|
76
|
+
Requires-Dist: pyproject-fmt<2.3; extra == "develop"
|
77
|
+
Requires-Dist: ruff<0.7; extra == "develop"
|
78
|
+
Requires-Dist: validate-pyproject<0.20; extra == "develop"
|
80
79
|
Provides-Extra: doc
|
81
80
|
Requires-Dist: crate-docs-theme>=0.26.5; extra == "doc"
|
82
|
-
Requires-Dist: sphinx<
|
81
|
+
Requires-Dist: sphinx<9,>=3.5; extra == "doc"
|
83
82
|
Provides-Extra: release
|
84
83
|
Requires-Dist: build<2; extra == "release"
|
85
84
|
Requires-Dist: twine<6; extra == "release"
|
@@ -5,10 +5,6 @@ requires = [
|
|
5
5
|
"versioningit",
|
6
6
|
]
|
7
7
|
|
8
|
-
[tool.versioningit.vcs]
|
9
|
-
method = "git"
|
10
|
-
default-tag = "0.0.0"
|
11
|
-
|
12
8
|
[project]
|
13
9
|
name = "sqlalchemy-cratedb"
|
14
10
|
description = "SQLAlchemy dialect for CrateDB."
|
@@ -84,34 +80,32 @@ dynamic = [
|
|
84
80
|
"version",
|
85
81
|
]
|
86
82
|
dependencies = [
|
87
|
-
|
88
|
-
"crate==1.0.
|
83
|
+
"backports.zoneinfo<1; python_version<'3.9'",
|
84
|
+
"crate==1.0.0.dev0",
|
89
85
|
"geojson<4,>=2.5",
|
90
|
-
|
86
|
+
"importlib-resources; python_version<'3.9'",
|
91
87
|
"sqlalchemy<2.1,>=1",
|
92
88
|
"verlib2==0.2",
|
93
89
|
]
|
94
|
-
|
95
|
-
all = [
|
90
|
+
optional-dependencies.all = [
|
96
91
|
"sqlalchemy-cratedb[vector]",
|
97
92
|
]
|
98
|
-
develop = [
|
99
|
-
"
|
100
|
-
"
|
101
|
-
"
|
102
|
-
"
|
103
|
-
"
|
104
|
-
"validate-pyproject<0.19",
|
93
|
+
optional-dependencies.develop = [
|
94
|
+
"mypy<1.12",
|
95
|
+
"poethepoet<0.28",
|
96
|
+
"pyproject-fmt<2.3",
|
97
|
+
"ruff<0.7",
|
98
|
+
"validate-pyproject<0.20",
|
105
99
|
]
|
106
|
-
doc = [
|
100
|
+
optional-dependencies.doc = [
|
107
101
|
"crate-docs-theme>=0.26.5",
|
108
|
-
"sphinx
|
102
|
+
"sphinx>=3.5,<9",
|
109
103
|
]
|
110
|
-
release = [
|
104
|
+
optional-dependencies.release = [
|
111
105
|
"build<2",
|
112
106
|
"twine<6",
|
113
107
|
]
|
114
|
-
test = [
|
108
|
+
optional-dependencies.test = [
|
115
109
|
"cratedb-toolkit[testing]",
|
116
110
|
"dask[dataframe]",
|
117
111
|
"pandas<2.3",
|
@@ -120,54 +114,81 @@ test = [
|
|
120
114
|
"pytest-cov<6",
|
121
115
|
"pytest-mock<4",
|
122
116
|
]
|
123
|
-
vector = [
|
117
|
+
optional-dependencies.vector = [
|
124
118
|
"numpy",
|
125
119
|
]
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
[project.entry-points."sqlalchemy.dialects"]
|
132
|
-
crate = "sqlalchemy_cratedb:dialect"
|
120
|
+
urls.changelog = "https://github.com/crate/sqlalchemy-cratedb/blob/main/CHANGES.md"
|
121
|
+
urls.documentation = "https://cratedb.com/docs/sqlalchemy-cratedb/"
|
122
|
+
urls.homepage = "https://cratedb.com/docs/sqlalchemy-cratedb/"
|
123
|
+
urls.repository = "https://github.com/crate/sqlalchemy-cratedb"
|
124
|
+
entry-points."sqlalchemy.dialects".crate = "sqlalchemy_cratedb:dialect"
|
133
125
|
|
134
126
|
[tool.black]
|
135
127
|
line-length = 100
|
136
128
|
|
137
|
-
[tool.
|
138
|
-
|
139
|
-
|
129
|
+
[tool.ruff]
|
130
|
+
line-length = 100
|
131
|
+
|
132
|
+
extend-exclude = [
|
140
133
|
]
|
141
134
|
|
142
|
-
[
|
143
|
-
|
144
|
-
|
145
|
-
|
135
|
+
lint.select = [
|
136
|
+
# Builtins
|
137
|
+
"A",
|
138
|
+
# Bugbear
|
139
|
+
"B",
|
140
|
+
# comprehensions
|
141
|
+
"C4",
|
142
|
+
# Pycodestyle
|
143
|
+
"E",
|
144
|
+
# eradicate
|
145
|
+
"ERA",
|
146
|
+
# Pyflakes
|
147
|
+
"F",
|
148
|
+
# isort
|
149
|
+
"I",
|
150
|
+
# pandas-vet
|
151
|
+
"PD",
|
152
|
+
# return
|
153
|
+
"RET",
|
154
|
+
# Bandit
|
155
|
+
"S",
|
156
|
+
# print
|
157
|
+
"T20",
|
158
|
+
"W",
|
159
|
+
# flake8-2020
|
160
|
+
"YTT",
|
146
161
|
]
|
147
162
|
|
148
|
-
[
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
"
|
153
|
-
|
163
|
+
lint.extend-ignore = [
|
164
|
+
# zip() without an explicit strict= parameter
|
165
|
+
"B905",
|
166
|
+
# Unnecessary generator (rewrite as a `dict` comprehension)
|
167
|
+
"C402",
|
168
|
+
# Unnecessary `map` usage (rewrite using a `set` comprehension)
|
169
|
+
"C417",
|
170
|
+
# df is a bad variable name. Be kinder to your future self.
|
171
|
+
"PD901",
|
172
|
+
# Unnecessary variable assignment before `return` statement
|
173
|
+
"RET504",
|
174
|
+
# Unnecessary `elif` after `return` statement
|
175
|
+
"RET505",
|
176
|
+
# Probable insecure usage of temporary file or directory
|
177
|
+
"S108",
|
178
|
+
# Possible SQL injection vector through string-based query construction
|
179
|
+
"S608",
|
154
180
|
]
|
155
181
|
|
156
|
-
[
|
157
|
-
|
158
|
-
|
159
|
-
|
182
|
+
lint.per-file-ignores."examples/*" = [
|
183
|
+
"T201", # Allow `print`
|
184
|
+
]
|
185
|
+
|
186
|
+
lint.per-file-ignores."tests/*" = [
|
187
|
+
"S101", # Allow use of `assert`, and `print`
|
188
|
+
"S608", # Possible SQL injection vector through string-based query construction
|
189
|
+
"W291", # Trailing whitespace
|
190
|
+
"W293", # Blank line contains whitespace
|
160
191
|
]
|
161
|
-
check_untyped_defs = true
|
162
|
-
explicit_package_bases = true
|
163
|
-
ignore_missing_imports = true
|
164
|
-
implicit_optional = true
|
165
|
-
install_types = true
|
166
|
-
namespace_packages = true
|
167
|
-
non_interactive = true
|
168
|
-
# Needed until `mypy-0.990` for `ConverterDefinition` in `converter.py`.
|
169
|
-
# https://github.com/python/mypy/issues/731#issuecomment-1260976955
|
170
|
-
# enable_recursive_aliases = true
|
171
192
|
|
172
193
|
[tool.pytest.ini_options]
|
173
194
|
addopts = """
|
@@ -179,7 +200,7 @@ log_level = "DEBUG"
|
|
179
200
|
log_cli_level = "DEBUG"
|
180
201
|
log_format = "%(asctime)-15s [%(name)-36s] %(levelname)-8s: %(message)s"
|
181
202
|
pythonpath = [
|
182
|
-
"src"
|
203
|
+
"src",
|
183
204
|
]
|
184
205
|
testpaths = [
|
185
206
|
"examples",
|
@@ -194,60 +215,44 @@ xfail_strict = true
|
|
194
215
|
markers = [
|
195
216
|
]
|
196
217
|
|
197
|
-
[tool.
|
198
|
-
|
199
|
-
|
200
|
-
select = [
|
201
|
-
# Bandit
|
202
|
-
"S",
|
203
|
-
# Bugbear
|
204
|
-
"B",
|
205
|
-
# Builtins
|
206
|
-
"A",
|
207
|
-
# comprehensions
|
208
|
-
"C4",
|
209
|
-
# eradicate
|
210
|
-
"ERA",
|
211
|
-
# flake8-2020
|
212
|
-
"YTT",
|
213
|
-
# isort
|
214
|
-
"I",
|
215
|
-
# pandas-vet
|
216
|
-
"PD",
|
217
|
-
# print
|
218
|
-
"T20",
|
219
|
-
# Pycodestyle
|
220
|
-
"E",
|
221
|
-
"W",
|
222
|
-
# Pyflakes
|
223
|
-
"F",
|
224
|
-
# return
|
225
|
-
"RET",
|
218
|
+
[tool.coverage.paths]
|
219
|
+
source = [
|
220
|
+
"src/",
|
226
221
|
]
|
227
222
|
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
"PD901",
|
233
|
-
# Unnecessary variable assignment before `return` statement
|
234
|
-
"RET504",
|
235
|
-
# Unnecessary `elif` after `return` statement
|
236
|
-
"RET505",
|
237
|
-
# Probable insecure usage of temporary file or directory
|
238
|
-
"S108",
|
223
|
+
[tool.coverage.run]
|
224
|
+
branch = false
|
225
|
+
omit = [
|
226
|
+
"tests/*",
|
239
227
|
]
|
240
228
|
|
241
|
-
|
229
|
+
[tool.coverage.report]
|
230
|
+
fail_under = 0
|
231
|
+
show_missing = true
|
232
|
+
exclude_lines = [
|
233
|
+
"# pragma: no cover",
|
234
|
+
"raise NotImplemented",
|
242
235
|
]
|
243
236
|
|
244
|
-
[tool.
|
245
|
-
|
246
|
-
|
247
|
-
|
237
|
+
[tool.mypy]
|
238
|
+
mypy_path = "src"
|
239
|
+
packages = [ "sqlalchemy_cratedb" ]
|
240
|
+
exclude = [
|
248
241
|
]
|
249
|
-
|
242
|
+
check_untyped_defs = true
|
243
|
+
explicit_package_bases = true
|
244
|
+
ignore_missing_imports = true
|
245
|
+
implicit_optional = true
|
246
|
+
install_types = true
|
247
|
+
namespace_packages = true
|
248
|
+
non_interactive = true
|
249
|
+
# Needed until `mypy-0.990` for `ConverterDefinition` in `converter.py`.
|
250
|
+
# https://github.com/python/mypy/issues/731#issuecomment-1260976955
|
251
|
+
# enable_recursive_aliases = true
|
250
252
|
|
253
|
+
[tool.versioningit.vcs]
|
254
|
+
method = "git"
|
255
|
+
default-tag = "0.0.0"
|
251
256
|
|
252
257
|
# ===================
|
253
258
|
# Tasks configuration
|
@@ -256,23 +261,26 @@ extend-exclude = [
|
|
256
261
|
[tool.poe.tasks]
|
257
262
|
|
258
263
|
check = [
|
259
|
-
|
264
|
+
"lint",
|
260
265
|
"test",
|
261
266
|
]
|
262
267
|
|
263
268
|
format = [
|
264
|
-
|
265
|
-
# Configure Ruff not to auto-fix (remove!):
|
266
|
-
# unused imports (F401), unused variables (F841), `print` statements (T201), and commented-out code (ERA001).
|
267
|
-
{ cmd = "ruff --fix --ignore=ERA --ignore=F401 --ignore=F841 --ignore=T20 --ignore=ERA001 ." },
|
269
|
+
# Format project metadata.
|
268
270
|
{ cmd = "pyproject-fmt --keep-full-version pyproject.toml" },
|
271
|
+
|
272
|
+
# Format code.
|
273
|
+
# Configure Ruff not to auto-fix a few items that are useful in workbench mode.
|
274
|
+
# e.g.: unused imports (F401), unused variables (F841), `print` statements (T201), commented-out code (ERA001)
|
275
|
+
{ cmd = "ruff format" },
|
276
|
+
{ cmd = "ruff check --fix --ignore=ERA --ignore=F401 --ignore=F841 --ignore=T20 --ignore=ERA001" },
|
269
277
|
]
|
270
278
|
|
271
279
|
lint = [
|
272
|
-
{ cmd = "ruff
|
273
|
-
{ cmd = "
|
280
|
+
{ cmd = "ruff format --check" },
|
281
|
+
{ cmd = "ruff check" },
|
274
282
|
{ cmd = "validate-pyproject pyproject.toml" },
|
275
|
-
{ cmd = "mypy" },
|
283
|
+
# { cmd = "mypy" },
|
276
284
|
]
|
277
285
|
|
278
286
|
release = [
|
@@ -22,7 +22,7 @@
|
|
22
22
|
from .compat.api13 import monkeypatch_add_exec_driver_sql
|
23
23
|
from .dialect import dialect
|
24
24
|
from .predicate import match
|
25
|
-
from .sa_version import SA_1_4,
|
25
|
+
from .sa_version import SA_1_4, SA_VERSION
|
26
26
|
from .support import insert_bulk
|
27
27
|
from .type.array import ObjectArray
|
28
28
|
from .type.geo import Geopoint, Geoshape
|
@@ -34,7 +34,8 @@ if SA_VERSION < SA_1_4:
|
|
34
34
|
import warnings
|
35
35
|
|
36
36
|
# SQLAlchemy 1.3 is effectively EOL.
|
37
|
-
SA13_DEPRECATION_WARNING = textwrap.dedent(
|
37
|
+
SA13_DEPRECATION_WARNING = textwrap.dedent(
|
38
|
+
"""
|
38
39
|
WARNING: SQLAlchemy 1.3 is effectively EOL.
|
39
40
|
|
40
41
|
SQLAlchemy 1.3 is EOL since 2023-01-27.
|
@@ -43,8 +44,9 @@ if SA_VERSION < SA_1_4:
|
|
43
44
|
|
44
45
|
- https://docs.sqlalchemy.org/en/14/changelog/migration_14.html
|
45
46
|
- https://docs.sqlalchemy.org/en/20/changelog/migration_20.html
|
46
|
-
""".lstrip("\n")
|
47
|
-
|
47
|
+
""".lstrip("\n")
|
48
|
+
)
|
49
|
+
warnings.warn(message=SA13_DEPRECATION_WARNING, category=DeprecationWarning, stacklevel=2)
|
48
50
|
|
49
51
|
# SQLAlchemy 1.3 does not have the `exec_driver_sql` method, so add it.
|
50
52
|
monkeypatch_add_exec_driver_sql()
|
@@ -59,4 +61,5 @@ __all__ = [
|
|
59
61
|
ObjectType,
|
60
62
|
match,
|
61
63
|
knn_match,
|
64
|
+
insert_bulk,
|
62
65
|
]
|
{sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/api13.py
RENAMED
@@ -40,7 +40,6 @@ from sqlalchemy.sql import Select
|
|
40
40
|
from sqlalchemy.sql import select as original_select
|
41
41
|
from sqlalchemy.util import immutabledict
|
42
42
|
|
43
|
-
|
44
43
|
# `_distill_params_20` copied from SA14's `sqlalchemy.engine.{base,util}`.
|
45
44
|
_no_tuple = ()
|
46
45
|
_no_kw = immutabledict()
|
@@ -52,9 +51,7 @@ def _distill_params_20(params):
|
|
52
51
|
elif isinstance(params, list):
|
53
52
|
# collections_abc.MutableSequence): # avoid abc.__instancecheck__
|
54
53
|
if params and not isinstance(params[0], (collections_abc.Mapping, tuple)):
|
55
|
-
raise exc.ArgumentError(
|
56
|
-
"List argument must consist only of tuples or dictionaries"
|
57
|
-
)
|
54
|
+
raise exc.ArgumentError("List argument must consist only of tuples or dictionaries")
|
58
55
|
|
59
56
|
return (params,), _no_kw
|
60
57
|
elif isinstance(
|
@@ -74,8 +71,7 @@ def exec_driver_sql(self, statement, parameters=None, execution_options=None):
|
|
74
71
|
"""
|
75
72
|
if execution_options is not None:
|
76
73
|
raise ValueError(
|
77
|
-
"SA13 backward-compatibility: "
|
78
|
-
"`exec_driver_sql` does not support `execution_options`"
|
74
|
+
"SA13 backward-compatibility: " "`exec_driver_sql` does not support `execution_options`"
|
79
75
|
)
|
80
76
|
args_10style, kwargs_10style = _distill_params_20(parameters)
|
81
77
|
return self.execute(statement, *args_10style, **kwargs_10style)
|
@@ -106,12 +102,11 @@ def select_sa14(*columns, **kw) -> Select:
|
|
106
102
|
Derived from https://github.com/sqlalchemy/alembic/blob/b1fad6b6/alembic/util/sqla_compat.py#L557-L558
|
107
103
|
|
108
104
|
sqlalchemy.exc.ArgumentError: columns argument to select() must be a Python list or other iterable
|
109
|
-
"""
|
105
|
+
""" # noqa: E501
|
110
106
|
if isinstance(columns, tuple) and isinstance(columns[0], list):
|
111
107
|
if "whereclause" in kw:
|
112
108
|
raise ValueError(
|
113
|
-
"SA13 backward-compatibility: "
|
114
|
-
"`whereclause` is both in kwargs and columns tuple"
|
109
|
+
"SA13 backward-compatibility: " "`whereclause` is both in kwargs and columns tuple"
|
115
110
|
)
|
116
111
|
columns, whereclause = columns
|
117
112
|
kw["whereclause"] = whereclause
|
@@ -153,4 +148,5 @@ def connectionfairy_driver_connection_sa14(self):
|
|
153
148
|
|
154
149
|
def monkeypatch_add_connectionfairy_driver_connection():
|
155
150
|
import sqlalchemy.pool.base
|
151
|
+
|
156
152
|
sqlalchemy.pool.base._ConnectionFairy.driver_connection = connectionfairy_driver_connection_sa14
|
{sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.39.0}/src/sqlalchemy_cratedb/compat/core10.py
RENAMED
@@ -21,18 +21,21 @@
|
|
21
21
|
|
22
22
|
import sqlalchemy as sa
|
23
23
|
from sqlalchemy.dialects.postgresql.base import PGCompiler
|
24
|
-
from sqlalchemy.sql.crud import (
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
from sqlalchemy.sql.crud import (
|
25
|
+
REQUIRED,
|
26
|
+
_create_bind_param,
|
27
|
+
_extend_values_for_multiparams,
|
28
|
+
_get_multitable_params,
|
29
|
+
_get_stmt_parameters_params,
|
30
|
+
_key_getters_for_crud_column,
|
31
|
+
_scan_cols,
|
32
|
+
_scan_insert_from_select_cols,
|
33
|
+
)
|
30
34
|
|
31
35
|
from sqlalchemy_cratedb.compiler import CrateCompiler
|
32
36
|
|
33
37
|
|
34
38
|
class CrateCompilerSA10(CrateCompiler):
|
35
|
-
|
36
39
|
def returning_clause(self, stmt, returning_cols):
|
37
40
|
"""
|
38
41
|
Generate RETURNING clause, PostgreSQL-compatible.
|
@@ -46,70 +49,58 @@ class CrateCompilerSA10(CrateCompiler):
|
|
46
49
|
"""
|
47
50
|
|
48
51
|
# [10] CrateDB patch.
|
49
|
-
if not update_stmt.parameters and
|
50
|
-
not hasattr(update_stmt, '_crate_specific'):
|
52
|
+
if not update_stmt.parameters and not hasattr(update_stmt, "_crate_specific"):
|
51
53
|
return super().visit_update(update_stmt, **kw)
|
52
54
|
|
53
55
|
self.isupdate = True
|
54
56
|
|
55
57
|
extra_froms = update_stmt._extra_froms
|
56
58
|
|
57
|
-
text =
|
59
|
+
text = "UPDATE "
|
58
60
|
|
59
61
|
if update_stmt._prefixes:
|
60
|
-
text += self._generate_prefixes(update_stmt,
|
61
|
-
update_stmt._prefixes, **kw)
|
62
|
+
text += self._generate_prefixes(update_stmt, update_stmt._prefixes, **kw)
|
62
63
|
|
63
|
-
table_text = self.update_tables_clause(update_stmt, update_stmt.table,
|
64
|
-
extra_froms, **kw)
|
64
|
+
table_text = self.update_tables_clause(update_stmt, update_stmt.table, extra_froms, **kw)
|
65
65
|
|
66
66
|
dialect_hints = None
|
67
67
|
if update_stmt._hints:
|
68
|
-
dialect_hints, table_text = self._setup_crud_hints(
|
69
|
-
update_stmt, table_text
|
70
|
-
)
|
68
|
+
dialect_hints, table_text = self._setup_crud_hints(update_stmt, table_text)
|
71
69
|
|
72
70
|
# [10] CrateDB patch.
|
73
71
|
crud_params = _get_crud_params(self, update_stmt, **kw)
|
74
72
|
|
75
73
|
text += table_text
|
76
74
|
|
77
|
-
text +=
|
75
|
+
text += " SET "
|
78
76
|
|
79
77
|
# [10] CrateDB patch begin.
|
80
|
-
include_table =
|
81
|
-
extra_froms and self.render_table_with_column_in_update_from
|
78
|
+
include_table = extra_froms and self.render_table_with_column_in_update_from
|
82
79
|
|
83
80
|
set_clauses = []
|
84
81
|
|
85
82
|
for k, v in crud_params:
|
86
|
-
clause = k._compiler_dispatch(self,
|
87
|
-
include_table=include_table) + \
|
88
|
-
' = ' + v
|
83
|
+
clause = k._compiler_dispatch(self, include_table=include_table) + " = " + v
|
89
84
|
set_clauses.append(clause)
|
90
85
|
|
91
86
|
for k, v in update_stmt.parameters.items():
|
92
|
-
if isinstance(k, str) and
|
87
|
+
if isinstance(k, str) and "[" in k:
|
93
88
|
bindparam = sa.sql.bindparam(k, v)
|
94
|
-
set_clauses.append(k +
|
89
|
+
set_clauses.append(k + " = " + self.process(bindparam))
|
95
90
|
|
96
|
-
text +=
|
91
|
+
text += ", ".join(set_clauses)
|
97
92
|
# [10] CrateDB patch end.
|
98
93
|
|
99
94
|
if self.returning or update_stmt._returning:
|
100
95
|
if not self.returning:
|
101
96
|
self.returning = update_stmt._returning
|
102
97
|
if self.returning_precedes_values:
|
103
|
-
text += " " + self.returning_clause(
|
104
|
-
update_stmt, self.returning)
|
98
|
+
text += " " + self.returning_clause(update_stmt, self.returning)
|
105
99
|
|
106
100
|
if extra_froms:
|
107
101
|
extra_from_text = self.update_from_clause(
|
108
|
-
update_stmt,
|
109
|
-
|
110
|
-
extra_froms,
|
111
|
-
dialect_hints,
|
112
|
-
**kw)
|
102
|
+
update_stmt, update_stmt.table, extra_froms, dialect_hints, **kw
|
103
|
+
)
|
113
104
|
if extra_from_text:
|
114
105
|
text += " " + extra_from_text
|
115
106
|
|
@@ -123,8 +114,7 @@ class CrateCompilerSA10(CrateCompiler):
|
|
123
114
|
text += " " + limit_clause
|
124
115
|
|
125
116
|
if self.returning and not self.returning_precedes_values:
|
126
|
-
text += " " + self.returning_clause(
|
127
|
-
update_stmt, self.returning)
|
117
|
+
text += " " + self.returning_clause(update_stmt, self.returning)
|
128
118
|
|
129
119
|
return text
|
130
120
|
|
@@ -149,8 +139,7 @@ def _get_crud_params(compiler, stmt, **kw):
|
|
149
139
|
# compiled params - return binds for all columns
|
150
140
|
if compiler.column_keys is None and stmt.parameters is None:
|
151
141
|
return [
|
152
|
-
(c, _create_bind_param(compiler, c, None, required=True))
|
153
|
-
for c in stmt.table.columns
|
142
|
+
(c, _create_bind_param(compiler, c, None, required=True)) for c in stmt.table.columns
|
154
143
|
]
|
155
144
|
|
156
145
|
if stmt._has_multi_parameters:
|