[ https://issues.apache.org/jira/browse/SOLR-15799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Potter updated SOLR-15799: ---------------------------------- Labels: RobustSQL (was: ) > 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 > Priority: Major > Labels: RobustSQL > > 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: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org