Phoenix has only added the ability to specify a binary literal in PHOENIX-6764 <https://issues.apache.org/jira/browse/PHOENIX-6764>, but that is not available in any released version yet.
Currently the only way to specify binary strings in a query is via PreparedStatment.setBytes() in JDBC. It is not possible to specify them in the query text directly. Also, *[B@4632cfc *doesn't even look like a valid UUID, more like a pointer to a java object as generated by .toString(), so you may also have a problem with inserting. regards Istvan On Sat, Feb 4, 2023 at 9:07 AM Suaro Email <su...@live.com> wrote: > Hi Phoenix Experts, > > I've never sent an email to an alias like this, so hope I'm doing the > right thing. > I'm working on a more complex query, but have my problem reduced to > something simple. I'm hoping someone can help me with. > > Given the following tables (see HOSTED_APPS_METADATA_UUID in yellow below > ) > > !tables > > +------------+--------------+-------------------------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+---------------+-----------------+------------+-------------+----------------+----------------------+ > | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE > | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | > INDEX_STATE | IMMUTABLE_ROWS | SALT_BUCKETS | MULTI_TENANT | > VIEW_STATEMENT | VIEW_TYPE | INDEX_TYPE | TRANSACTIONAL | > IS_NAMESPACE_MAPPED | > > +------------+--------------+-------------------------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+---------------+-----------------+------------+-------------+----------------+----------------------+ > | | SYSTEM | CATALOG | SYSTEM TABLE > | | | | | > | false | null | false | > | | | false | false | > | | SYSTEM | FUNCTION | SYSTEM TABLE > | | | | | > | false | null | false | > | | | false | false | > | | SYSTEM | LOG | SYSTEM TABLE > | | | | | > | true | 32 | false | > | | | false | false | > | | SYSTEM | SEQUENCE | SYSTEM TABLE > | | | | | > | false | 2 | false | > | | | false | false | > | | SYSTEM | STATS | SYSTEM TABLE > | | | | | > | false | null | false | > | | | false | false | > | | | CONTAINER_METRICS | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | HOSTED_APPS_METADATA_UUID | TABLE > | | | | | > | false | null | false | > | | | false | false | > | | | INSTANCE_HOST_METADATA | TABLE > | | | | | > | false | null | false | > | | | false | false | > | | | METRICS_METADATA_UUID | TABLE > | | | | | > | false | null | false | > | | | false | false | > | | | METRIC_AGGREGATE_DAILY_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_AGGREGATE_HOURLY_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_AGGREGATE_MINUTE_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_AGGREGATE_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_RECORD_DAILY_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_RECORD_HOURLY_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_RECORD_MINUTE_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_RECORD_UUID | TABLE > | | | | | > | true | null | false | > | | | false | false | > | | | METRIC_TRANSIENT | TABLE > | | | | | > | true | null | false | > | | | false | false | > > +------------+--------------+-------------------------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+---------------+-----------------+------------+-------------+----------------+----------------------+ > > > !describe HOSTED_APPS_METADATA_UUID > > > +------------+--------------+----------------------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+-------------+----------------+-------------------+--------------------+-------------------+---------------+ > | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | COLUMN_NAME | > DATA_TYPE | TYPE_NAME | COLUMN_SIZE | BUFFER_LENGTH | DECIMAL_DIGITS | > NUM_PREC_RADIX | NULLABLE | REMARKS | COLUMN_DEF | SQL_DATA_TYPE | > SQL_DATETIME_SUB | CHAR_OCTET_LENGTH | ORDINAL_POSITION | IS_NULLABLE | > > +------------+--------------+----------------------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+-------------+----------------+-------------------+--------------------+-------------------+---------------+ > | | | HOSTED_APPS_METADATA_UUID | HOSTNAME | > 12 | VARCHAR | null | null | null | > null | 0 | | | null | > null | null | 1 | false | > | | | HOSTED_APPS_METADATA_UUID | *UUID * | > -2 | BINARY | 4 | null | null | > null | 1 | | | null | > null | null | 2 | true | > | | | HOSTED_APPS_METADATA_UUID | APP_IDS | > 12 | VARCHAR | null | null | null | > null | 1 | | | null | > null | null | 3 | true | > > +------------+--------------+----------------------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+-------------+----------------+-------------------+--------------------+-------------------+---------------+ > > There is a column called UUID of BINARY type. > > I'm using sqlline.py to issue a query. Here's a simple one: > > *select * from HOSTED_APPS_METADATA_UUID;* > > +-----------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------------------------+ > | HOSTNAME | > UUID | > APP_IDS | > > +-----------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------------------------+ > | hn0-gjshdi.5uu4vnfquqlelgdmoqysq1y3jg.cx.internal.cloudapp.net | > [B@4632cfc | > hiveserver2,hivemetastore,resourcemanager,historyserver,HOST,applicationhistoryserver,jobhistoryserver,namenode,ams-hbase > | > | hn1-gjshdi.5uu4vnfquqlelgdmoqysq1y3jg.cx.internal.cloudapp.net | > [B@6e1f8469 | > hiveserver2,hivemetastore,resourcemanager,historyserver,HOST,namenode > | > | wn0-gjshdi.5uu4vnfquqlelgdmoqysq1y3jg.cx.internal.cloudapp.net | > [B@2e380628 | datanode,HOST,nodemanager > | > | zk0-gjshdi.5uu4vnfquqlelgdmoqysq1y3jg.cx.internal.cloudapp.net | > [B@3b6c624 | journalnode,HOST > | > | zk1-gjshdi.5uu4vnfquqlelgdmoqysq1y3jg.cx.internal.cloudapp.net | > [B@1eaf1e62 | journalnode,HOST > | > | zk3-gjshdi.5uu4vnfquqlelgdmoqysq1y3jg.cx.internal.cloudapp.net | > [B@c81fd12 | journalnode,HOST > | > > +-----------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------------------------+ > > > > How can I setup a query to filter on one of the UUID values ? > > For example, I'd like to select just the first row from the output above > but not sure about the formatting below: > > I've tried numerous variations and its driving me nuts :) > > *select * from HOSTED_APPS_METADATA_UUID where UUID = **[B@4632cfc**;* > > Error: ERROR 602 (42P00): Syntax error. Missing "LPAREN" at line 1, column > 47. (state=42P00,code=602) > org.apache.phoenix.exception.PhoenixParserException: ERROR 602 (42P00): > Syntax error. Missing "LPAREN" at line 1, column 47. > at > org.apache.phoenix.exception.PhoenixParserException.newException(PhoenixParserException.java:33) > at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:111) > at > org.apache.phoenix.jdbc.PhoenixStatement$PhoenixStatementParser.parseStatement(PhoenixStatement.java:1644) > at > org.apache.phoenix.jdbc.PhoenixStatement.parseStatement(PhoenixStatement.java:1727) > at > org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1819) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:813) > at sqlline.SqlLine.begin(SqlLine.java:686) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:291) > Caused by: MissingTokenException(inserted [@-1,0:0='<missing > LPAREN>',<100>,1:46] at UUID) > at > org.apache.phoenix.parse.PhoenixSQLParser.recoverFromMismatchedToken(PhoenixSQLParser.java:374) > at > org.apache.phoenix.shaded.org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115) > at > org.apache.phoenix.parse.PhoenixSQLParser.not_expression(PhoenixSQLParser.java:7851) > at > org.apache.phoenix.parse.PhoenixSQLParser.and_expression(PhoenixSQLParser.java:7671) > at > org.apache.phoenix.parse.PhoenixSQLParser.or_expression(PhoenixSQLParser.java:7608) > at > org.apache.phoenix.parse.PhoenixSQLParser.expression(PhoenixSQLParser.java:7573) > at > org.apache.phoenix.parse.PhoenixSQLParser.single_select(PhoenixSQLParser.java:5192) > at > org.apache.phoenix.parse.PhoenixSQLParser.unioned_selects(PhoenixSQLParser.java:5274) > at > org.apache.phoenix.parse.PhoenixSQLParser.select_node(PhoenixSQLParser.java:5340) > at > org.apache.phoenix.parse.PhoenixSQLParser.oneStatement(PhoenixSQLParser.java:841) > at > org.apache.phoenix.parse.PhoenixSQLParser.statement(PhoenixSQLParser.java:524) > at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:108) > ... 9 more > > > Broder picture. I'm trying to take a query such as : > > SELECT UUID, SERVER_TIME, METRIC_SUM, HOSTS_COUNT, METRIC_MAX, METRIC_MIN > FROM METRIC_AGGREGATE_UUID WHERE (UUID IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, > ?, ?, ?, ?)) AND SERVER_TIME >= ? AND SERVER_TIME < ? ORDER BY UUID, > SERVER_TIME, condition => Condition{uuids=[[B@2948f779, [B@3ca87491, > [B@6702e8f, [B@7a907628, [B@148da53c, [B@6bfe57c0, [B@6cfd0866, > [B@15a512e7, [B@6c78f12a, [B@75a1eb32, [B@719b73d8, [B@4c946526, > [B@67ce3c3f, [B@1dcca38f, [B@3763165d], appId='NODEMANAGER', > instanceId='null', startTime=1675461194000, endTime=1675461510000, > limit=null, grouped=true, orderBy=[], noLimit=true} > > > and create an isolated test from sqlline.py > > The base query is: > > SELECT UUID, SERVER_TIME, METRIC_SUM, HOSTS_COUNT, METRIC_MAX, METRIC_MIN > FROM METRIC_AGGREGATE_UUID WHERE (UUID IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, > ?, ?, ?, ?)) AND SERVER_TIME >= ? AND SERVER_TIME < ? ORDER BY UUID, > SERVER_TIME > > and you can see the 15 UUID parameters that follow. I keep getting the > same LPAREN error whenever I try UUID anywhere in a query. > > > Any tips greatly appreciated!! > > THanks > > - Greg > > > > -- *István Tóth* | Sr. Staff Software Engineer *Email*: st...@cloudera.com cloudera.com <https://www.cloudera.com> [image: Cloudera] <https://www.cloudera.com/> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image: Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera on LinkedIn] <https://www.linkedin.com/company/cloudera> ------------------------------ ------------------------------