Browse Source

[Phoenix] Upgrading phoenixdb into it's latest version (#3053)

Ayush Goyal 3 years ago
parent
commit
89a3d65d92
32 changed files with 295 additions and 294 deletions
  1. 0 164
      desktop/core/ext-py/phoenixdb-1.1.0/PKG-INFO
  2. 0 36
      desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/common_pb2.py
  3. 0 36
      desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/requests_pb2.py
  4. 0 36
      desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/responses_pb2.py
  5. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/LICENSE
  6. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/NOTICE
  7. 169 0
      desktop/core/ext-py/phoenixdb-1.2.1/PKG-INFO
  8. 5 5
      desktop/core/ext-py/phoenixdb-1.2.1/README.rst
  9. 10 6
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/__init__.py
  10. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/__init__.py
  11. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/client.py
  12. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/__init__.py
  13. 33 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/common_pb2.py
  14. 33 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/requests_pb2.py
  15. 33 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/responses_pb2.py
  16. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/connection.py
  17. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/cursor.py
  18. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/errors.py
  19. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/meta.py
  20. 2 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/sqlalchemy_phoenix.py
  21. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/__init__.py
  22. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/dbapi20.py
  23. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_avatica.py
  24. 1 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_db.py
  25. 2 2
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_dbapi20.py
  26. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_errors.py
  27. 3 1
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_sqlalchemy.py
  28. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_types.py
  29. 0 0
      desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/types.py
  30. 0 5
      desktop/core/ext-py/phoenixdb-1.2.1/setup.cfg
  31. 3 2
      desktop/core/ext-py/phoenixdb-1.2.1/setup.py
  32. 1 1
      desktop/core/requirements.txt

+ 0 - 164
desktop/core/ext-py/phoenixdb-1.1.0/PKG-INFO

@@ -1,164 +0,0 @@
-Metadata-Version: 2.1
-Name: phoenixdb
-Version: 1.1.0
-Summary: Phoenix database adapter for Python
-Home-page: http://phoenix.apache.org/python.html
-Author: Apache Software Foundation
-Author-email: dev@phoenix.apache.org
-License: Apache 2
-Description: Phoenix database adapter for Python
-        ===================================
-        
-        ``phoenixdb`` is a Python library for accessing 
-        `Apache Phoenix <http://phoenix.apache.org/>`_
-        using the
-        `remote query server <http://phoenix.apache.org/server.html>`_.
-        This library implements the
-        standard `DB API 2.0 <https://www.python.org/dev/peps/pep-0249/>`_ interface and a
-        subset of `SQLAlchemy <https://www.sqlalchemy.org/>`_, either of which should be familiar
-        to most Python programmers.
-        
-        Installation
-        ------------
-        
-        The source code is part of the phoenix-queryserver source distribution.
-        You can download it from <https://phoenix.apache.org/>, or get the latest development version
-        from <https://github.com/apache/phoenix-queryserver>
-        
-        Extract the archive and then install it manually::
-        
-            cd /path/to/phoenix-queryserver-x.y.z/python/phoenixdb
-            python setup.py install
-        
-        Usage
-        -----
-        
-        The library implements the standard DB API 2.0 interface, so it can be
-        used the same way you would use any other SQL database from Python, for example::
-        
-            import phoenixdb
-            import phoenixdb.cursor
-        
-            database_url = 'http://localhost:8765/'
-            conn = phoenixdb.connect(database_url, autocommit=True)
-        
-            cursor = conn.cursor()
-            cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, username VARCHAR)")
-            cursor.execute("UPSERT INTO users VALUES (?, ?)", (1, 'admin'))
-            cursor.execute("SELECT * FROM users")
-            print(cursor.fetchall())
-        
-            cursor = conn.cursor(cursor_factory=phoenixdb.cursor.DictCursor)
-            cursor.execute("SELECT * FROM users WHERE id=1")
-            print(cursor.fetchone()['USERNAME'])
-        
-        
-        Setting up a development environment
-        ------------------------------------
-        
-        If you want to quickly try out the included examples, you can set up a
-        local `virtualenv <https://virtualenv.pypa.io/en/latest/>`_ with all the
-        necessary requirements::
-        
-            virtualenv e
-            source e/bin/activate
-            pip install -r requirements.txt
-            python setup.py develop
-        
-        You can start a Phoenix QueryServer instance on http://localhost:8765 for testing by running
-        the following command in the pohoenix-queryserver-parent directory::
-        
-            mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
-            -Dit.test=QueryServerBasicsIT\#startLocalPQS \
-            -Ddo.not.randomize.pqs.port=true -Dstart.unsecure.pqs=true
-        
-        You can start a secure (https+kerberos) Phoenix QueryServer instance on https://localhost:8765
-        for testing by running the following command in the phoenix-queryserver-parent directory::
-        
-            mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
-            -Dit.test=SecureQueryServerPhoenixDBIT\#startLocalPQS \
-            -Ddo.not.randomize.pqs.port=true -Dstart.secure.pqs=true
-        
-        this will also create a shell script in phoenix-queryserver-it/target/krb_setup.sh, that you can use to set
-        up the environment for the tests.
-        
-        If you want to use the library without installing the phoenixdb library, you can use
-        the `PYTHONPATH` environment variable to point to the library directly::
-        
-            cd phoenix-queryserver-parent/python-phoenixdb
-            python setup.py build
-            cd ~/my_project
-            PYTHONPATH=$PHOENIX_HOME/build/lib python my_app.py
-        
-        Don't forget to run flake8 on your changes.
-        
-        Running the test suite
-        ----------------------
-        
-        The library comes with a test suite for testing Python DB API 2.0 compliance and
-        various Phoenix-specific features. In order to run the test suite, you need a
-        working Phoenix database and set the ``PHOENIXDB_TEST_DB_URL`` environment variable::
-        
-            export PHOENIXDB_TEST_DB_URL='http://localhost:8765/'
-            nosetests
-        
-        If you use a secure PQS server, you can set the connection parameters via the following environment
-        variables:
-        
-        - PHOENIXDB_TEST_DB_TRUSTSTORE
-        - PHOENIXDB_TEST_DB_AUTHENTICATION
-        - PHOENIXDB_TEST_DB_AVATICA_USER
-        - PHOENIXDB_TEST_DB_AVATICA_PASSWORD
-        
-        Similarly, tox can be used to run the test suite against multiple Python versions::
-        
-            pyenv install 3.5.5
-            pyenv install 3.6.4
-            pyenv install 2.7.14
-            pyenv global 2.7.14 3.5.5 3.6.4
-            PHOENIXDB_TEST_DB_URL='http://localhost:8765' tox
-        
-        You can use tox and docker to run the tests on supported python versions up to 3.8 without
-        installing the environments locally::
-        
-            docker build -t toxtest .
-            docker run --rm  -v `pwd`:/src toxtest
-        
-        You can also run the test suite from maven as part of the Java build by setting the 
-        run.full.python.testsuite property. You DO NOT need to set the PHOENIXDB_* enviroment variables,
-        maven will set them up for you. The output of the test run will be saved in
-        phoenix-queryserver/phoenix-queryserver-it/target/python-stdout.log and python-stderr.log::
-        
-            mvn clean verify -Drun.full.python.testsuite=true
-        
-        Known issues
-        ------------
-        
-        - TIME and DATE columns in Phoenix are stored as full timestamps with a millisecond accuracy,
-          but the remote protocol only exposes the time (hour/minute/second) or date (year/month/day)
-          parts of the columns. (`CALCITE-797 <https://issues.apache.org/jira/browse/CALCITE-797>`_, `CALCITE-798 <https://issues.apache.org/jira/browse/CALCITE-798>`_)
-        - TIMESTAMP columns in Phoenix are stored with a nanosecond accuracy, but the remote protocol truncates them to milliseconds. (`CALCITE-796 <https://issues.apache.org/jira/browse/CALCITE-796>`_)
-        
-        
-        SQLAlchemy feature support
-        --------------------------
-        
-        SQLAlchemy has a wide breadth of API, ranging from basic SQL commands to object-relational mapping support.
-        
-        Today, python-phoenixdb only supports the following subset of the complete SQLAlchemy API:
-        
-        - `Textual SQL <https://docs.sqlalchemy.org/en/13/core/tutorial.html#using-textual-sql>`_
-        
-        All other API should be considered not implemented.
-        
-Platform: UNKNOWN
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Provides-Extra: SQLAlchemy

File diff suppressed because it is too large
+ 0 - 36
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/common_pb2.py


File diff suppressed because it is too large
+ 0 - 36
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/requests_pb2.py


File diff suppressed because it is too large
+ 0 - 36
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/responses_pb2.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/LICENSE → desktop/core/ext-py/phoenixdb-1.2.1/LICENSE


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/NOTICE → desktop/core/ext-py/phoenixdb-1.2.1/NOTICE


+ 169 - 0
desktop/core/ext-py/phoenixdb-1.2.1/PKG-INFO

@@ -0,0 +1,169 @@
+Metadata-Version: 2.1
+Name: phoenixdb
+Version: 1.2.1
+Summary: Phoenix database adapter for Python
+Home-page: http://phoenix.apache.org/python.html
+Author: Apache Software Foundation
+Author-email: dev@phoenix.apache.org
+License: Apache 2
+Platform: UNKNOWN
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Provides-Extra: SQLAlchemy
+License-File: LICENSE
+License-File: NOTICE
+
+Phoenix database adapter for Python
+===================================
+
+``phoenixdb`` is a Python library for accessing 
+`Apache Phoenix <http://phoenix.apache.org/>`_
+using the
+`remote query server <http://phoenix.apache.org/server.html>`_.
+This library implements the
+standard `DB API 2.0 <https://www.python.org/dev/peps/pep-0249/>`_ interface and a
+subset of `SQLAlchemy <https://www.sqlalchemy.org/>`_, either of which should be familiar
+to most Python programmers.
+
+Installation
+------------
+
+The source code is part of the phoenix-queryserver source distribution.
+You can download it from <https://phoenix.apache.org/>, or get the latest development version
+from <https://github.com/apache/phoenix-queryserver>
+
+Extract the archive and then install it manually::
+
+    cd /path/to/phoenix-queryserver-x.y.z/python/phoenixdb
+    python setup.py install
+
+Usage
+-----
+
+The library implements the standard DB API 2.0 interface, so it can be
+used the same way you would use any other SQL database from Python, for example::
+
+    import phoenixdb
+    import phoenixdb.cursor
+
+    database_url = 'http://localhost:8765/'
+    conn = phoenixdb.connect(database_url, autocommit=True)
+
+    cursor = conn.cursor()
+    cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, username VARCHAR)")
+    cursor.execute("UPSERT INTO users VALUES (?, ?)", (1, 'admin'))
+    cursor.execute("SELECT * FROM users")
+    print(cursor.fetchall())
+
+    cursor = conn.cursor(cursor_factory=phoenixdb.cursor.DictCursor)
+    cursor.execute("SELECT * FROM users WHERE id=1")
+    print(cursor.fetchone()['USERNAME'])
+
+
+Setting up a development environment
+------------------------------------
+
+If you want to quickly try out the included examples, you can set up a
+local `virtualenv <https://virtualenv.pypa.io/en/latest/>`_ with all the
+necessary requirements::
+
+    virtualenv e
+    source e/bin/activate
+    pip install -r requirements.txt
+    python setup.py develop
+
+You can start a Phoenix QueryServer instance on http://localhost:8765 for testing by running
+the following command in the pohoenix-queryserver-parent directory::
+
+    mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
+    -Dit.test=QueryServerBasicsIT#startLocalPQS \
+    -Ddo.not.randomize.pqs.port=true -Dstart.unsecure.pqs=true
+
+You can start a secure (https+kerberos) Phoenix QueryServer instance on https://localhost:8765
+for testing by running the following command in the phoenix-queryserver-parent directory::
+
+    mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
+    -Dit.test=SecureQueryServerPhoenixDBIT#startLocalPQS \
+    -Ddo.not.randomize.pqs.port=true -Dstart.secure.pqs=true
+
+this will also create a shell script in phoenix-queryserver-it/target/krb_setup.sh, that you can use to set
+up the environment for the tests.
+
+If you want to use the library without installing the phoenixdb library, you can use
+the `PYTHONPATH` environment variable to point to the library directly::
+
+    cd phoenix-queryserver-parent/python-phoenixdb
+    python setup.py build
+    cd ~/my_project
+    PYTHONPATH=$PHOENIX_HOME/build/lib python my_app.py
+
+Don't forget to run flake8 on your changes.
+
+Running the test suite
+----------------------
+
+The library comes with a test suite for testing Python DB API 2.0 compliance and
+various Phoenix-specific features. In order to run the test suite, you need a
+working Phoenix database and set the ``PHOENIXDB_TEST_DB_URL`` environment variable::
+
+    export PHOENIXDB_TEST_DB_URL='http://localhost:8765/'
+    tox
+
+If you use a secure PQS server, you can set the connection parameters via the following environment
+variables:
+
+- PHOENIXDB_TEST_DB_TRUSTSTORE
+- PHOENIXDB_TEST_DB_AUTHENTICATION
+- PHOENIXDB_TEST_DB_AVATICA_USER
+- PHOENIXDB_TEST_DB_AVATICA_PASSWORD
+
+Similarly, tox can be used to run the test suite against multiple Python versions::
+
+    pyenv install 3.5.5
+    pyenv install 3.6.4
+    pyenv install 2.7.14
+    pyenv global 2.7.14 3.5.5 3.6.4
+    PHOENIXDB_TEST_DB_URL='http://localhost:8765' tox
+
+You can use tox and docker to run the tests on supported python versions without
+installing the environments locally::
+
+    docker build -t toxtest .
+    docker run --rm --add-host=host.docker.internal:host-gateway -v `pwd`:/src toxtest
+
+You can also run the test suite from maven as part of the Java build by setting the 
+run.full.python.testsuite property. You DO NOT need to set the PHOENIXDB_* enviroment variables,
+maven will set them up for you. The output of the test run will be saved in
+phoenix-queryserver/phoenix-queryserver-it/target/python-stdout.log and python-stderr.log::
+
+    mvn clean verify -Drun.full.python.testsuite=true
+
+Known issues
+------------
+
+- TIME and DATE columns in Phoenix are stored as full timestamps with a millisecond accuracy,
+  but the remote protocol only exposes the time (hour/minute/second) or date (year/month/day)
+  parts of the columns. (`CALCITE-797 <https://issues.apache.org/jira/browse/CALCITE-797>`_, `CALCITE-798 <https://issues.apache.org/jira/browse/CALCITE-798>`_)
+- TIMESTAMP columns in Phoenix are stored with a nanosecond accuracy, but the remote protocol truncates them to milliseconds. (`CALCITE-796 <https://issues.apache.org/jira/browse/CALCITE-796>`_)
+
+
+SQLAlchemy feature support
+--------------------------
+
+SQLAlchemy has a wide breadth of API, ranging from basic SQL commands to object-relational mapping support.
+
+Today, python-phoenixdb only supports the following subset of the complete SQLAlchemy API:
+
+- `Textual SQL <https://docs.sqlalchemy.org/en/13/core/tutorial.html#using-textual-sql>`_
+
+All other API should be considered not implemented.
+
+

+ 5 - 5
desktop/core/ext-py/phoenixdb-1.1.0/README.rst → desktop/core/ext-py/phoenixdb-1.2.1/README.rst

@@ -61,14 +61,14 @@ You can start a Phoenix QueryServer instance on http://localhost:8765 for testin
 the following command in the pohoenix-queryserver-parent directory::
 the following command in the pohoenix-queryserver-parent directory::
 
 
     mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
     mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
-    -Dit.test=QueryServerBasicsIT\#startLocalPQS \
+    -Dit.test=QueryServerBasicsIT#startLocalPQS \
     -Ddo.not.randomize.pqs.port=true -Dstart.unsecure.pqs=true
     -Ddo.not.randomize.pqs.port=true -Dstart.unsecure.pqs=true
 
 
 You can start a secure (https+kerberos) Phoenix QueryServer instance on https://localhost:8765
 You can start a secure (https+kerberos) Phoenix QueryServer instance on https://localhost:8765
 for testing by running the following command in the phoenix-queryserver-parent directory::
 for testing by running the following command in the phoenix-queryserver-parent directory::
 
 
     mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
     mvn clean verify -am -pl phoenix-queryserver-it -Dtest=foo \
-    -Dit.test=SecureQueryServerPhoenixDBIT\#startLocalPQS \
+    -Dit.test=SecureQueryServerPhoenixDBIT#startLocalPQS \
     -Ddo.not.randomize.pqs.port=true -Dstart.secure.pqs=true
     -Ddo.not.randomize.pqs.port=true -Dstart.secure.pqs=true
 
 
 this will also create a shell script in phoenix-queryserver-it/target/krb_setup.sh, that you can use to set
 this will also create a shell script in phoenix-queryserver-it/target/krb_setup.sh, that you can use to set
@@ -92,7 +92,7 @@ various Phoenix-specific features. In order to run the test suite, you need a
 working Phoenix database and set the ``PHOENIXDB_TEST_DB_URL`` environment variable::
 working Phoenix database and set the ``PHOENIXDB_TEST_DB_URL`` environment variable::
 
 
     export PHOENIXDB_TEST_DB_URL='http://localhost:8765/'
     export PHOENIXDB_TEST_DB_URL='http://localhost:8765/'
-    nosetests
+    tox
 
 
 If you use a secure PQS server, you can set the connection parameters via the following environment
 If you use a secure PQS server, you can set the connection parameters via the following environment
 variables:
 variables:
@@ -110,11 +110,11 @@ Similarly, tox can be used to run the test suite against multiple Python version
     pyenv global 2.7.14 3.5.5 3.6.4
     pyenv global 2.7.14 3.5.5 3.6.4
     PHOENIXDB_TEST_DB_URL='http://localhost:8765' tox
     PHOENIXDB_TEST_DB_URL='http://localhost:8765' tox
 
 
-You can use tox and docker to run the tests on supported python versions up to 3.8 without
+You can use tox and docker to run the tests on supported python versions without
 installing the environments locally::
 installing the environments locally::
 
 
     docker build -t toxtest .
     docker build -t toxtest .
-    docker run --rm  -v `pwd`:/src toxtest
+    docker run --rm --add-host=host.docker.internal:host-gateway -v `pwd`:/src toxtest
 
 
 You can also run the test suite from maven as part of the Java build by setting the 
 You can also run the test suite from maven as part of the Java build by setting the 
 run.full.python.testsuite property. You DO NOT need to set the PHOENIXDB_* enviroment variables,
 run.full.python.testsuite property. You DO NOT need to set the PHOENIXDB_* enviroment variables,

+ 10 - 6
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/__init__.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/__init__.py

@@ -123,6 +123,14 @@ def connect(url, max_retries=None, auth=None, authentication=None, avatica_user=
     return Connection(client, **kwargs)
     return Connection(client, **kwargs)
 
 
 
 
+def _get_SPNEGOAuth():
+    try:
+        spnego = gssapi.mechs.Mechanism.from_sasl_name("SPNEGO")
+    except AttributeError:
+        spnego = gssapi.OID.from_int_seq("1.3.6.1.5.5.2")
+    return HTTPSPNEGOAuth(opportunistic_auth=True, mech=spnego)
+
+
 def _process_args(
 def _process_args(
         url, auth=None, authentication=None, avatica_user=None, avatica_password=None,
         url, auth=None, authentication=None, avatica_user=None, avatica_password=None,
         truststore=None, verify=None, do_as=None, user=None, password=None):
         truststore=None, verify=None, do_as=None, user=None, password=None):
@@ -176,14 +184,10 @@ def _process_args(
 
 
     if auth == "SPNEGO":
     if auth == "SPNEGO":
         # Special case for backwards compatibility
         # Special case for backwards compatibility
-        auth = HTTPSPNEGOAuth(opportunistic_auth=True)
+        auth = _get_SPNEGOAuth()
     elif auth is None and authentication is not None:
     elif auth is None and authentication is not None:
         if authentication == "SPNEGO":
         if authentication == "SPNEGO":
-            try:
-                spnego = gssapi.mechs.Mechanism.from_sasl_name("SPNEGO")
-            except AttributeError:
-                spnego = gssapi.OID.from_int_seq("1.3.6.1.5.5.2")
-            auth = HTTPSPNEGOAuth(opportunistic_auth=True, mech=spnego)
+            auth = _get_SPNEGOAuth()
         elif authentication == "BASIC" and avatica_user is not None and avatica_password is not None:
         elif authentication == "BASIC" and avatica_user is not None and avatica_password is not None:
             auth = HTTPBasicAuth(avatica_user, avatica_password)
             auth = HTTPBasicAuth(avatica_user, avatica_password)
         elif authentication == "DIGEST" and avatica_user is not None and avatica_password is not None:
         elif authentication == "DIGEST" and avatica_user is not None and avatica_password is not None:

+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/__init__.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/__init__.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/client.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/client.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/avatica/proto/__init__.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/__init__.py


File diff suppressed because it is too large
+ 33 - 0
desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/common_pb2.py


File diff suppressed because it is too large
+ 33 - 0
desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/requests_pb2.py


File diff suppressed because it is too large
+ 33 - 0
desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/avatica/proto/responses_pb2.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/connection.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/connection.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/cursor.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/cursor.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/errors.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/errors.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/meta.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/meta.py


+ 2 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/sqlalchemy_phoenix.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/sqlalchemy_phoenix.py

@@ -90,6 +90,8 @@ class PhoenixDialect(DefaultDialect):
 
 
     driver = "phoenixdb"
     driver = "phoenixdb"
 
 
+    supports_statement_cache = False  # We only implement textual SQL anyway
+
     ddl_compiler = PhoenixDDLCompiler
     ddl_compiler = PhoenixDDLCompiler
 
 
     execution_ctx_cls = PhoenixExecutionContext
     execution_ctx_cls = PhoenixExecutionContext

+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/__init__.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/__init__.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/dbapi20.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/dbapi20.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/test_avatica.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_avatica.py


+ 1 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/test_db.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_db.py

@@ -125,6 +125,7 @@ class PhoenixDatabaseTest(DatabaseTestCase):
     def test_meta(self):
     def test_meta(self):
         with self.conn.cursor() as cursor:
         with self.conn.cursor() as cursor:
             try:
             try:
+                cursor.execute('drop table if exists USERS')
                 cursor.execute('drop table if exists DEFAULT_TABLE')
                 cursor.execute('drop table if exists DEFAULT_TABLE')
                 cursor.execute('drop table if exists A_SCHEMA.A_TABLE')
                 cursor.execute('drop table if exists A_SCHEMA.A_TABLE')
                 cursor.execute('drop table if exists B_SCHMEA.B_TABLE')
                 cursor.execute('drop table if exists B_SCHMEA.B_TABLE')

+ 2 - 2
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/test_dbapi20.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_dbapi20.py

@@ -105,7 +105,7 @@ class PhoenixDatabaseAPI20Test(dbapi20.DatabaseAPI20Test):
             # no rows
             # no rows
             cur.execute('select name from %sbooze' % self.table_prefix)
             cur.execute('select name from %sbooze' % self.table_prefix)
             self.assertRaises(StopIteration, cur.next)
             self.assertRaises(StopIteration, cur.next)
-            self.failUnless(cur.rowcount in (-1, 0))
+            self.assertTrue(cur.rowcount in (-1, 0))
 
 
             # cursor.next should raise an Error if called after
             # cursor.next should raise an Error if called after
             # executing a query that cannnot return rows
             # executing a query that cannnot return rows
@@ -120,6 +120,6 @@ class PhoenixDatabaseAPI20Test(dbapi20.DatabaseAPI20Test):
             self.assertEqual(r[0], 'Victoria Bitter', 'cursor.next retrieved incorrect data')
             self.assertEqual(r[0], 'Victoria Bitter', 'cursor.next retrieved incorrect data')
             # cursor.next should raise StopIteration if no more rows available
             # cursor.next should raise StopIteration if no more rows available
             self.assertRaises(StopIteration, cur.next)
             self.assertRaises(StopIteration, cur.next)
-            self.failUnless(cur.rowcount in (-1, 1))
+            self.assertTrue(cur.rowcount in (-1, 1))
         finally:
         finally:
             con.close()
             con.close()

+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/test_errors.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_errors.py


+ 3 - 1
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/test_sqlalchemy.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_sqlalchemy.py

@@ -59,11 +59,13 @@ class SQLAlchemyTest(unittest.TestCase):
             try:
             try:
                 inspector = db.inspect(engine)
                 inspector = db.inspect(engine)
 
 
+                connection.execute('drop table if exists USERS')
                 connection.execute('drop table if exists ALCHEMY_TEST')
                 connection.execute('drop table if exists ALCHEMY_TEST')
                 connection.execute('drop table if exists A.ALCHEMY_TEST_A')
                 connection.execute('drop table if exists A.ALCHEMY_TEST_A')
                 connection.execute('drop table if exists B.ALCHEMY_TEST_B')
                 connection.execute('drop table if exists B.ALCHEMY_TEST_B')
 
 
                 self.assertEqual(inspector.get_schema_names(), ['', 'SYSTEM'])
                 self.assertEqual(inspector.get_schema_names(), ['', 'SYSTEM'])
+                self.assertEqual(inspector.get_table_names(), [])
 
 
                 connection.execute(text('create table ALCHEMY_TEST (ID integer primary key)'))
                 connection.execute(text('create table ALCHEMY_TEST (ID integer primary key)'))
                 connection.execute(text('create table A.ALCHEMY_TEST_A (ID_A integer primary key)'))
                 connection.execute(text('create table A.ALCHEMY_TEST_A (ID_A integer primary key)'))
@@ -78,7 +80,7 @@ class SQLAlchemyTest(unittest.TestCase):
                 self.assertEqual(inspector.get_table_names('B'), ['ALCHEMY_TEST_B'])
                 self.assertEqual(inspector.get_table_names('B'), ['ALCHEMY_TEST_B'])
 
 
                 self.assertEqual(inspector.get_view_names(), ['ALCHEMY_TEST_VIEW'])
                 self.assertEqual(inspector.get_view_names(), ['ALCHEMY_TEST_VIEW'])
-                
+
                 self.assertEqual(inspector.get_columns('ALCHEMY_TEST').pop()['name'], 'ID')
                 self.assertEqual(inspector.get_columns('ALCHEMY_TEST').pop()['name'], 'ID')
                 self.assertEqual(
                 self.assertEqual(
                     inspector.get_columns('ALCHEMY_TEST', '').pop()['name'], 'ID')
                     inspector.get_columns('ALCHEMY_TEST', '').pop()['name'], 'ID')

+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/tests/test_types.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/tests/test_types.py


+ 0 - 0
desktop/core/ext-py/phoenixdb-1.1.0/phoenixdb/types.py → desktop/core/ext-py/phoenixdb-1.2.1/phoenixdb/types.py


+ 0 - 5
desktop/core/ext-py/phoenixdb-1.1.0/setup.cfg → desktop/core/ext-py/phoenixdb-1.2.1/setup.cfg

@@ -1,8 +1,3 @@
-[nosetests]
-verbosity = 2
-testmatch = ^test_.+
-where = phoenixdb/tests
-
 [build_sphinx]
 [build_sphinx]
 source-dir = doc
 source-dir = doc
 build-dir = doc/build
 build-dir = doc/build

+ 3 - 2
desktop/core/ext-py/phoenixdb-1.1.0/setup.py → desktop/core/ext-py/phoenixdb-1.2.1/setup.py

@@ -59,7 +59,7 @@ else:
         'Sphinx;python_version>="3.6"',
         'Sphinx;python_version>="3.6"',
     ],
     ],
 
 
-version = "1.1.0"
+version = "1.2.1"
 
 
 setup(
 setup(
     name="phoenixdb",
     name="phoenixdb",
@@ -84,11 +84,12 @@ setup(
         'Programming Language :: Python :: 2',
         'Programming Language :: Python :: 2',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
         'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
+        'Programming Language :: Python :: 3.10'
     ],
     ],
     install_requires=install_requires,
     install_requires=install_requires,
     extras_require={
     extras_require={

+ 1 - 1
desktop/core/requirements.txt

@@ -43,7 +43,7 @@ Markdown==3.1
 nose==1.3.7
 nose==1.3.7
 openpyxl==3.0.9
 openpyxl==3.0.9
 pandas==1.4.2
 pandas==1.4.2
-phoenixdb==1.2.0
+phoenixdb==1.2.1
 prompt-toolkit==2.0.10
 prompt-toolkit==2.0.10
 protobuf==3.20.3
 protobuf==3.20.3
 pyformance==0.3.2
 pyformance==0.3.2

Some files were not shown because too many files changed in this diff