[teiid-issues] [JBoss JIRA] (TEIID-4899) import foreign schema "import qualifiers" problem
Bram Gadeyne (JIRA)
issues at jboss.org
Wed May 10 04:03:01 EDT 2017
Bram Gadeyne created TEIID-4899:
-----------------------------------
Summary: import foreign schema "import qualifiers" problem
Key: TEIID-4899
URL: https://issues.jboss.org/browse/TEIID-4899
Project: Teiid
Issue Type: Bug
Affects Versions: 9.3
Reporter: Bram Gadeyne
Assignee: Steven Hawkins
Hi I'm trying to import a schema but I get an error
{code:sql}
IMPORT FOREIGN SCHEMA GLIMS
FROM SERVER glims
INTO glims
OPTIONS(
importer.useFullSchemaName false,
importer.tableTypes 'TABLE,VIEW'
);
{code}
This results in an error:
09:57:34,782 ERROR [org.teiid.RUNTIME] (Worker6) TEIID30021 Uncaught exception processing work: org.teiid.metadata.ParseException: TEIID31259 In the
statement ending with token ) on line 45 column 1 the ddl is not valid: TEIID60013 Duplicate Table TOAD_PLAN_TABLE
at org.teiid.query.parser.QueryParser.parseDDL(QueryParser.java:567)
at org.teiid.runtime.AbstractVDBDeployer.processVDBDDL(AbstractVDBDeployer.java:358)
at org.teiid.runtime.AbstractVDBDeployer.metadataLoaded(AbstractVDBDeployer.java:262)
at org.teiid.jboss.VDBService.access$1000(VDBService.java:82)
at org.teiid.jboss.VDBService$6.run(VDBService.java:362)
at org.teiid.jboss.VDBService$7.run(VDBService.java:392)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:282)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.teiid.metadata.DuplicateRecordException: TEIID60013 Duplicate Table TOAD_PLAN_TABLE
at org.teiid.metadata.Schema.addTable(Schema.java:51)
at org.teiid.metadata.MetadataFactory.addTable(MetadataFactory.java:179)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.addTable(JDBCMetdataProcessor.java:368)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.addTable(JDBCMetdataProcessor.java:351)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.getTables(JDBCMetdataProcessor.java:324)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.getConnectorMetadata(JDBCMetdataProcessor.java:166)
at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:306)
at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:69)
at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
at org.teiid.metadata.MetadataRepository.loadMetadata(MetadataRepository.java:46)
at org.teiid.runtime.AbstractVDBDeployer$MetadataRepositoryWrapper.loadMetadata(AbstractVDBDeployer.java:85)
at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
at org.teiid.runtime.AbstractVDBDeployer$2.importSchema(AbstractVDBDeployer.java:334)
at org.teiid.query.parser.SQLParser.importSchema(SQLParser.java:15411)
at org.teiid.query.parser.SQLParser.ddlStmt(SQLParser.java:12641)
at org.teiid.query.parser.SQLParser.parseMetadata(SQLParser.java:12577)
at org.teiid.query.parser.QueryParser.parseDDL(QueryParser.java:561)
... 11 more
Changing the import statement to only the desired tables results in the same error.
{code:sql}
IMPORT FOREIGN SCHEMA GLIMS
LIMIT TO (LABANALYSE,LABANALYSECODE,LABANALYSESERIZIVCODE,LABERROR,LABFMD2ARTS,LABORDER,LABORDER2PRINT,LABPAT,LABPAT2ORDER,LABPRINTERCONFIG, LABPRINTERCONFIG_BACKUP,LABSPECIMEN,LABTITEL)
FROM SERVER glims
INTO glims
OPTIONS(
importer.useFullSchemaName false,
importer.tableTypes 'TABLE,VIEW'
);
{code}
Now explicitly stating that this TOAD_PLAN_TABLE should be ignored:
{code:sql}
IMPORT FOREIGN SCHEMA GLIMS
EXCEPT (TOAD_PLAN_TABLE)
FROM SERVER glims
INTO glims
OPTIONS(
importer.useFullSchemaName false,
importer.tableTypes 'TABLE,VIEW'
);
{code}
results in:
[standalone at localhost:9990 /] deploy D:\workspaceTeiid\IZ\vdb4-vdb.ddl
{"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"WFLYCTL0080: Failed services" => {"jbos
s.deployment.unit.\"vdb4-vdb.ddl\".PARSE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"vdb4-vdb.ddl\".PARSE: WFLYSRV015
3: Failed to process phase PARSE of deployment \"vdb4-vdb.ddl\"
Caused by: org.teiid.metadata.ParseException: TEIID30386 org.teiid.api.exception.query.QueryParserException: TEIID31100 Parsing error: Encountered
\"FOREIGN SCHEMA GLIMS [*]EXCEPT[*] (TOAD_PLAN_TABLE\" at line 40, column 9.
Was expecting: \"from\" | \"limit\" | \"(\"
Caused by: org.teiid.api.exception.query.QueryParserException: TEIID31100 Parsing error: Encountered \"FOREIGN SCHEMA GLIMS [*]EXCEPT[*] (TOAD_PLA
N_TABLE\" at line 40, column 9.
Was expecting: \"from\" | \"limit\" | \"(\""},"WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.unit.\"vdb4-vdb.ddl\".PAR
SE"],"WFLYCTL0180: Services with missing/unavailable dependencies" => undefined}}}
Also a small note about the docs:
In the [example|https://teiid.gitbooks.io/documents/content/v/9.2.x/reference/ddl_deployment_mode.html#import_schema] "LIMIT TO customers, orders" should be "LIMIT TO (customers, orders)".
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the teiid-issues
mailing list