Timothy Potter created SOLR-15799:
-------------------------------------
Summary: Solr SQL should allow the schema name on table names if
possible
Key: SOLR-15799
URL: https://issues.apache.org/jira/browse/SOLR-15799
Project: Solr
Issue Type: Improvement
Security Level: Public (Default Security Level. Issues are Public)
Components: Parallel SQL
Reporter: Timothy Potter
Assignee: Timothy Potter
Started kicking the tires on Solr SQL with Superset and the first issue I
encountered is Calcite's parsing doesn't like the schema name (Solr uses
{{default}}) on table names, such as:
{code}
Caused by: java.sql.SQLException: Error while executing SQL "SELECT genre_s AS
genre_s,
COUNT(*) AS `count`
FROM `default`.books
GROUP BY genre_s
ORDER BY `count` DESC
LIMIT 100": From line 3, column 6 to line 3, column 20: Object 'default' not
found
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
~[?:?]
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
~[?:?]
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
~[?:?]
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
~[?:?]
at
org.apache.solr.client.solrj.io.stream.JDBCStream.open(JDBCStream.java:283)
~[?:?]
... 55 more
Caused by: org.apache.calcite.runtime.CalciteContextException: From line 3,
column 6 to line 3, column 20: Object 'default' not found
at
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
~[?:?]
at
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
~[?:?]
at
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:490)
~[?:?]
at
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:506)
~[?:?]
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
~[?:?]
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:902)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5271)
~[?:?]
at
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:183)
~[?:?]
at
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:188)
~[?:?]
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1098)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1069)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3380)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3362)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3644)
~[?:?]
at
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:64)
~[?:?]
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1098)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1069)
~[?:?]
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:247) ~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1044)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:750)
~[?:?]
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:585)
~[?:?]
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:251)
~[?:?]
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:215)
~[?:?]
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
~[?:?]
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
~[?:?]
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
~[?:?]
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
~[?:?]
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:623)
~[?:?]
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
~[?:?]
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
~[?:?]
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
~[?:?]
at
org.apache.solr.client.solrj.io.stream.JDBCStream.open(JDBCStream.java:283)
~[?:?]
... 55 more
Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Object
'default' not found
at
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
~[?:?]
at
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
~[?:?]
at
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:490)
~[?:?]
at
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:506)
~[?:?]
at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:600)
~[?:?]
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917)
~[?:?]
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:902)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5271)
~[?:?]
at
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:183)
~[?:?]
at
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:188)
~[?:?]
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1098)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1069)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3380)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3362)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3644)
~[?:?]
at
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:64)
~[?:?]
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:89)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1098)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1069)
~[?:?]
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:247) ~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1044)
~[?:?]
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:750)
~[?:?]
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:585)
~[?:?]
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:251)
~[?:?]
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:215)
~[?:?]
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
~[?:?]
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
~[?:?]
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
~[?:?]
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
~[?:?]
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:623)
~[?:?]
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
~[?:?]
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
~[?:?]
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
~[?:?]
at
org.apache.solr.client.solrj.io.stream.JDBCStream.open(JDBCStream.java:283)
~[?:?]
... 55 more
{code}
Seems like {{`default`.TABLE}} should work but not sure if this is a Calcite
setting or something we're not doing correctly in the Solr code.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]