Also, remember that Bash is going to interpret that semi-colon in your URL if you don't quote it. It will be treated as two separate commands:

`/usr/hdp/2.5.0.0-1245/phoenix/bin/sqlline-thin.py http://pqs1.mydomain.com:8765` and `TenantId=myTenant`

Please try `/usr/hdp/2.5.0.0-1245/phoenix/bin/sqlline-thin.py 'http://pqs1.mydomain.com:8765;TenantId=myTenant'`, and, if that still does not work, feel free to open a JIRA issue to investigate why this is happening.

Michael Young wrote:
In response to your question:
 >>So, just that I'm on the same page as you, when you invoke the Java
application yourself, it works fine, but when you use sqlline-thin.py,
the extra argument is dropped?
Yes. The property gets passed when invoking the Java application, but
not when adding it to the sqllin-thin.py command line.
It is simple to fix in my local dev test environment, but not in our
production environment, unfortunately.
We are using Phoenix 4.7 (from HDP 2.5 Community release).

On Wed, Feb 22, 2017 at 4:07 PM, Josh Elser <els...@apache.org
<mailto:els...@apache.org>> wrote:

    So, just that I'm on the same page as you, when you invoke the Java
    application yourself, it works fine, but when you use
    sqlline-thin.py, the extra argument is dropped?

    If so, that just sounds like a bug in sqlline-thin.py that we could
    fix...

    If you're skilled in Python (or even just adventurous), I'd guess it
    would be a relatively simple fix :)

    Michael Young wrote:

        Hi Josh,

        you are right, the TenantId property does get passed through
        when I run
        the command by hand (see below).

        Phoenix Version: phoenix-4.7.0.2.5.0.0-1245

        java $PHOENIX_OPTS \
        -cp $CLASSPATH \
        
-Dlog4j.configuration=file:/usr/hdp/2.5.0.0-1245/phoenix/bin/log4j.properties
        \
        org.apache.phoenix.queryserver.client.SqllineWrapper \
        -d org.apache.phoenix.queryserver.client.Driver \
        -u
        "jdbc:phoenix:thin:url=http://pqs1.mydomain.com:8765
        
<http://pqs1.mydomain.com:8765>;serialization=PROTOBUF;TenantId=myTenant"
        \
        -n none -p none --color=true --fastConnect=false --verbose=true
        --incremental=false --isolation=TRANSACTION_READ_COMMITTED

        However, with Phoenix version 4.7.0.2.5.0.0-1245 (which comes
        with HDP
        2.5), the python script doesn't pass any property along.
          Here's the
        obfuscated output when I connect to PQS:

        [prompt]$ /usr/hdp/2.5.0.0-1245/phoenix/bin/sqlline-thin.py
        http://pqs1.mydomain.com:8765;TenantId=myTenant

        Setting property: [incremental, false]
        Setting property: [isolation, TRANSACTION_READ_COMMITTED]
        issuing: !connect
        jdbc:phoenix:thin:url=http://pqs1.mydomain:8765;serialization=PROTOBUF
        none none org.apache.phoenix.queryserver.client.Driver
        Connecting to
        jdbc:phoenix:thin:url=http://pqs1.mydomain:8765;serialization=PROTOBUF
        SLF4J: Class path contains multiple SLF4J bindings.
        SLF4J: Found binding in
        
[jar:file:/usr/hdp/2.5.0.0-1245/phoenix/phoenix-4.7.0.2.5.0.0-1245-thin-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
        SLF4J: Found binding in
        
[jar:file:/usr/hdp/2.5.0.0-1245/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
        SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings
        <http://www.slf4j.org/codes.html#multiple_bindings> for an
        explanation.
        SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
        Connected to: Apache Phoenix (version unknown version)
        Driver: Phoenix Remote JDBC Driver (version unknown version)
        Autocommit status: true
        Transaction isolation: TRANSACTION_READ_COMMITTED
        Building list of tables and columns for tab-completion (set
        fastconnect
        to true to skip)...
        7603/7603 (100%) Done
        Done
        sqlline version 1.1.8
        0: jdbc:phoenix:thin:url=http://pqs1.mydomain
        <http://pqs1.mydomain>> !list
        1 active connection:
           #0  open
        jdbc:phoenix:thin:url=http://pqs1.mydomain:8765;serialization=PROTOBUF


        Is this something that has changed in newer versions of Phoenix?

        On Mon, Feb 20, 2017 at 1:47 PM, Josh Elser <els...@apache.org
        <mailto:els...@apache.org>
        <mailto:els...@apache.org <mailto:els...@apache.org>>> wrote:

             See
        
https://github.com/apache/calcite/blob/5181563f9f26d1533a7d98ecca8443077e7b7efa/avatica/core/src/main/java/org/apache/calcite/avatica/remote/Service.java#L1759-L1768
        
<https://github.com/apache/calcite/blob/5181563f9f26d1533a7d98ecca8443077e7b7efa/avatica/core/src/main/java/org/apache/calcite/avatica/remote/Service.java#L1759-L1768>
        
<https://github.com/apache/calcite/blob/5181563f9f26d1533a7d98ecca8443077e7b7efa/avatica/core/src/main/java/org/apache/calcite/avatica/remote/Service.java#L1759-L1768
        
<https://github.com/apache/calcite/blob/5181563f9f26d1533a7d98ecca8443077e7b7efa/avatica/core/src/main/java/org/apache/calcite/avatica/remote/Service.java#L1759-L1768>>

             This should be passed down just fine. If you can provide
        details as
             to how it isn't, that'd be great.


             Josh Elser wrote:

                 I thought arbitrary properties would be passed through,
        but I'm
                 not sure
                 off the top of my head anymore....

                 Would have to dig through the Avatica JDBC driver to
        (re)figure
                 this one
                 out.

                 Michael Young wrote:

                     Is it possible to pass the TenantID attribute on
        the URL
                     when using the
                     phoenix query server? For example,

                     /usr/hdp/2.5.0.0-1245/phoenix/bin/sqlline-thin.py
        http://pqshost.myhost.com:8765;TenantId=tenant1

                     This works fine for me when connecting via jdbc.
        Just didn't
                     seem to
                     work with the query server.

                     Thanks,
                     -Michael





Reply via email to