[ https://issues.apache.org/jira/browse/TRAFODION-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15049605#comment-15049605 ]
ASF GitHub Bot commented on TRAFODION-1581: ------------------------------------------- Github user zellerh commented on a diff in the pull request: https://github.com/apache/incubator-trafodion/pull/218#discussion_r47168205 --- Diff: core/sql/src/main/java/org/trafodion/sql/udr/predef/JDBCUDR.java --- @@ -0,0 +1,690 @@ +/********************************************************************** +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +**********************************************************************/ + +/*************************************************** + * A TMUDF that executes a generic JDBC query + * and returns the result of the one SQL statement + * in the list that produces results as a table-valued + * output + * + * Invocation (all arguments are strings): + * + * select ... from udf(JDBC( + * <name of JDBC driver jar>, + * <name of JDBC driver class in the jar>, + * <connection string>, + * <user name>, + * <password>, + * <statement_type>, + * <sql statement 1> + * [ , <sql statements 2 ...n> ] )) ... + * + * The first 7 arguments are required and must be + * string literals that are available at compile + * time. --- End diff -- Unfortunately, yes. > Add a TMUDF that can return a JDBC result set as table-valued output > -------------------------------------------------------------------- > > Key: TRAFODION-1581 > URL: https://issues.apache.org/jira/browse/TRAFODION-1581 > Project: Apache Trafodion > Issue Type: Sub-task > Components: sql-general > Affects Versions: 1.3-incubating > Reporter: Hans Zeller > Assignee: Hans Zeller > Fix For: 2.0-incubating > > > One way to read data from other data sources would be a Trafodion TMUDF that > takes a connection string, an SQL statement and other necessary info as an > input, connects to a JDBC data source, prepares the statement, and returns > the result set as a table-valued output. This would enable a basic connector > for many data sources, including Spark, Drill and Kafka. > Specifically, I would like to add a "predefined" TMUDF to Trafodion that > takes the following parameters: > 1. The name of a jar with a JDBC driver. > 2. A connection string to use > 3. The class name of the driver > 4. A user id > 5. A password > 6. The type of processing to do (right now only one type is supported) > 7. Info depending on the type. > The first type of processing I would like to add is "source", and it does the > following: It accepts a list of SQL statements to execute. Only one of these > statements can return a result set. The data in the result set will be > returned as table-valued output. > Future processing types could do a parallel select like ODB does or they > could insert into a table on the system identified by the JDBC driver info. > All parameters need to be compile-time constants, so that the UDF can connect > to the data source at compile time and prepare the statement. Based on the > prepared statement, it will determine number, names and SQL types of the > column(s) of the table-valued result. -- This message was sent by Atlassian JIRA (v6.3.4#6332)