Are you using the ORDER BY in the query? If you are the rows should be in the same order every time. -- C
> On Jun 30, 2020, at 4:37 PM, Christopher Kane > <[email protected]> wrote: > > I do have an additional question and I apologize if this is a simple > question, but the response from the Drill API when querying, is there a way > to order how the "rows" object is returned? Or can you be sure that the order > of how those rows are returned never change? I did execute the same query a > couple times and it looks like the structure remained the same but was > curious if there is a way to influence it so that it is always the same. > > -Chris > > -----Original Message----- > From: Christopher Kane <[email protected]> > Sent: Tuesday, June 30, 2020 4:14 PM > To: [email protected] > Subject: RE: Initial Oracle Setup > > You are totally right and for the time being in my POC I am not concerned > really with the datetime columns on the table I'm querying so for now I > figured it would be easier to just remove them entirely. > > You have a good point about the overhead, the query from Drill to Oracle > isn't the quickest thing in the world but if your goal is E2E testing from > Postman with little setup, I feel like this could work as a decent middle of > the road approach. However, your suggestion around creating a REST API with > Python to provide a quicker and more convenient way to access the same data > might be the way to go for the reasons that you mentioned, if you wouldn't > mind, is there a framework or two that you'd recommend off the top of your > head? > > Again, thanks so much for your help. > Chris > > -----Original Message----- > From: Charles Givre <[email protected]> > Sent: Tuesday, June 30, 2020 4:06 PM > To: user <[email protected]> > Subject: Re: Initial Oracle Setup > > Hey Chris, > Glad you got things working. Just to be clear... you don't have to remove > all the columns in your view in Oracle. You can transform them to a JDBC > compatible datatype. > For example: (Ignore the syntax...) > > SELECT CAST(timezone_field AS DATETIME) AS timezone_field > .... > > Then you won't lose the data. > > Regarding your next question, does this approach have merit... Usually it > doesn't make much sense to query a relational database from Drill by itself > as now you are adding Drill's overhead to your queries. However, if you are > joining that data with other datasets that are not in your database, that > does make sense, because that usually involves coding or something a lot more > complicated than Drill. > I had never thought about using Drill as an API for a database. I guess if > it works for you, then Hey the approach has merit! > > In all honesty, I would think it wouldn't be too difficult to create a quick > REST API using one of the many Python API frameworks and that would probably > be my preferred approach. That would get you a lot of benefits that Drill > doesn't have such as more flexibility, better authentication, etc. However, I > don't know all the details of your use case, so I'd say carry on... > Ultimately, it depends on what you're trying to do as to whether Drill is the > best tool or not. > Best, > -- C > > > > > >> On Jun 29, 2020, at 7:15 PM, Christopher Kane >> <[email protected]> wrote: >> >> Alright, so I was finally able to create a view in my own schema that >> removed all of the columns with the timestamp with timezone data type and >> was able to perform a query as expected! Now the next step will be utilizing >> the API to be able to query oracle from Postman which will be able to >> provide some sort of "end to end" testing which currently is not available >> since Oracle does not offer any sort of API to hit their databases directly, >> so once I saw Apache Drill I figured that was an excellent use case for your >> wonderful technology 😊. >> >> I probably won't have a full POC up and running for when you guys do your >> Apache Conference, but as I am new in the field (2+ years), in your opinion >> do you think my POC has merit and would be useful for other people to know >> that this potential exists? >> >> Thanks again for all your help! >> Chris >> >> -----Original Message----- >> From: Christopher Kane <[email protected]> >> Sent: Thursday, June 25, 2020 11:27 AM >> To: [email protected] >> Subject: RE: Initial Oracle Setup >> >> Ah okay, that makes a lot of sense now. I will look into what you and Ted >> have suggested about a materialized view, I guess I just might have to do >> that for the time being to test my POC further. I'll let you know if I run >> into any issues with that, thanks again I appreciate all of your help 😊! If >> you guys develop a fix for that and need someone to test it, let me know and >> I'd be happy to do that for you! >> >> -Chris >> >> -----Original Message----- >> From: Charles Givre <[email protected]> >> Sent: Wednesday, June 24, 2020 10:14 PM >> To: [email protected] >> Subject: Re: Initial Oracle Setup >> >> That actually explains a lot... While Drill has a timestamp data type, Drill >> does not have a timezone with tz data type. Ted Dunning made a suggestion >> that would likely fix the issue and that is can you create a materialized >> view of your merchant table (on the Oracle DB) that doesn't have this data >> type? (Like CAST it to a regular TIMESTAMP) Drill should be able to query >> that. >> The long term fix is to figure out how to get Drill to deal with unknown >> data types from JDBC sources, but in the interim, a materialized view might >> do the trick. >> Best, >> -- C >> >> >> >> >>> On Jun 24, 2020, at 6:10 PM, Christopher Kane >>> <[email protected]> wrote: >>> >>> I KNEW IT! My initial hunch was correct.. when I listed all of the data >>> types used by Oracle I initially said I had a feeling that TIMESTAMP(6) >>> WITH TIME ZONE was probably the one that was causing an issue. I added each >>> data type as a new column one by one, and the one that finally threw the >>> error was TIMESTAMP(6) WITH TIME ZONE. So because the BIZ schema has tables >>> with TIMESTAMP(6) WITH TIME ZONE as the data type, that's probably while >>> it's failing. Now I am curious though if there is any other column this >>> could be occurring with, but at least for right now we know that >>> TIMESTAMP(6) WITH TIME ZONE is causing an issue, I can't speak for other >>> data types that might not have been present in the merchant table but I >>> can't imagine the other tables would really be all that different. >>> >>> -Chris >>> >>> -----Original Message----- >>> From: Christopher Kane <[email protected]> >>> Sent: Wednesday, June 24, 2020 5:34 PM >>> To: [email protected] >>> Subject: RE: Initial Oracle Setup >>> >>> Ayyyy!!! That worked! I did the following: CREATE TABLE CKANE.TEST >>> (column_1 INT, column_2 VARCHAR(50)); >>> >>> Then I did select * from CKANE.TEST where column_1=1 and it returned what >>> was expected, column_1 which contained the value of 1 and column_2 which >>> contained the value of test. >>> >>> As far as telling Oracle to convert it to something different, if that's a >>> database management level change I can't really go that route since I'm >>> unable to change the configuration of Oracle for a POC like this, I kind of >>> have to get it working with the current constraints. >>> >>> What would be the next data types you'd suggest we try? I listed the data >>> types previously but they are: NUMBER, VARCHAR2, DATE, TIMESTAMP(6) WITH >>> TIME ZONE, so should I start adding a column for each of those until I get >>> the message Unknown SQL Type -101 like before? >>> >>> -----Original Message----- >>> From: Charles Givre <[email protected]> >>> Sent: Wednesday, June 24, 2020 5:25 PM >>> To: [email protected] >>> Subject: Re: Initial Oracle Setup >>> >>> Hi Chris, >>> You’re correct… >>> Maybe if you can create a simple table with an INT and a VARCHAR column and >>> get Drill to query that. (It should). If that works, let’s try other data >>> types and see what works and what doesn’t. I’m also wondering if there is >>> some way of telling Oracle to convert the BINARY DOUBLE to some other data >>> type that can be read. I don’t know enough about Oracle though… >>> — C >>> >>> >>>> On Jun 24, 2020, at 5:20 PM, Christopher Kane >>>> <[email protected]> wrote: >>>> >>>> You know Charles, I think you're right on the money there. Considering >>>> what we've tested at this point, I think you're right. So I would like to >>>> prove that hypothesis for you, so to confirm do I need to find a schema >>>> with tables that do not have a binary double? I might be able to create a >>>> table under my personal oracle schema which shouldn't have anything in >>>> there currently. We should agree on the SQL used to create the table so we >>>> are on the same page before that though. >>>> >>>> In my opinion, that sounds like a good thing to do. If my POC works as I >>>> am hoping it will, I am hoping that Apache Drill proves to be a useful >>>> tool in attempting "end to end" test automation entirely from Postman, >>>> since Oracle does not natively provide an API to query. It would be really >>>> cool if the idea I have in my head plays out as I'm thinking it will, and >>>> I would love for the solution to be used by other people (if it works) >>>> which would require Drill to be updated to allow for this to work with >>>> Oracle. >>>> >>>> -Chris >>>> >>>> -----Original Message----- >>>> From: Charles Givre <[email protected]> >>>> Sent: Wednesday, June 24, 2020 5:13 PM >>>> To: [email protected] >>>> Subject: Re: Initial Oracle Setup >>>> >>>> I think the issue is that Drill is receiving a schema from Oracle that is >>>> including a binary double column. At that point, Drill has no idea how to >>>> handle that so you get the validation error. I’d like to prove this >>>> hypothesis by successfully querying a table that does not have a binary >>>> double (or other unrecognizable column) and getting Drill to successfully >>>> read the results. >>>> >>>> My other thought is that it might be possible to do something with this >>>> via the JDBC config. Sometimes databases have configuration options which >>>> can be passed when you connect, and if Oracle has such options, we might >>>> be able to fix this in the connection string. My gut is telling me at >>>> this point that we’re going to have to fix this in Drill by adding some >>>> code that basically says if the type is unknown, read the data as a string >>>> or something like that. >>>> — C >>>> >>>> >>>>> On Jun 24, 2020, at 5:02 PM, Christopher Kane >>>>> <[email protected]> wrote: >>>>> >>>>> Alright so following that logic of Data Type 101 being a binary double, I >>>>> did the following: >>>>> select CAST(merchant_id AS DOUBLE) from biz.merchant where >>>>> merchant_id=85616270 >>>>> >>>>> That unfortunately still results in the unknown sql type -101 error. I >>>>> did want to say that I was able to go onto the CLI and have it list out >>>>> all the schemas and tables it could find and what it listed was correct >>>>> so at least we know we are connected to what we should be. >>>>> >>>>> -----Original Message----- >>>>> From: Charles Givre <[email protected]> >>>>> Sent: Wednesday, June 24, 2020 4:55 PM >>>>> To: [email protected] >>>>> Subject: Re: Initial Oracle Setup >>>>> >>>>> I looked this up… SQL Data Type 101 is a binary double. >>>>> >>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.oracle.com_d >>>>> atabase_121_SQLRF_sql-5Felements001.htm-23SQLRF30020&d=DwIFaQ&c=rE3mhB >>>>> YFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=92i9K >>>>> _mRKLwMJIZS_WhSN_ymKbr9rZoUleISKhZY3sE&s=zj9nUe9KXfBlHIyl4ie5_edWAPRFs >>>>> hIVqbqiRRDh2qs&e= >>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.oracle.com_ >>>>> database_121_SQLRF_sql-5Felements001.htm-23SQLRF30020&d=DwIFaQ&c=rE3mh >>>>> BYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=92i9 >>>>> K_mRKLwMJIZS_WhSN_ymKbr9rZoUleISKhZY3sE&s=zj9nUe9KXfBlHIyl4ie5_edWAPRF >>>>> shIVqbqiRRDh2qs&e= > >>>>> >>>>> >>>>> >>>>> >>>>>> On Jun 24, 2020, at 4:52 PM, Charles Givre <[email protected]> wrote: >>>>>> >>>>>> Some more questions… >>>>>> 1. Are there other tables you can query? I want to see if we can at >>>>>> least get something to work ;-) (Although we can read the schema via >>>>>> SHOW TABLES) 2. Can you try the following query: >>>>>> SELECT CAST(<some field> AS INT) >>>>>> FROM merchant…. Basically I’m wondering if we force Drill to map the >>>>>> field to a type, if we can get it to read the data. >>>>>> >>>>>> >>>>>> >>>>>>> On Jun 24, 2020, at 4:44 PM, Christopher Kane >>>>>>> <[email protected]> wrote: >>>>>>> >>>>>>> Hey Charles, >>>>>>> >>>>>>> I ran a couple of different queries selecting only a single column from >>>>>>> the table and it seems multiple columns are all giving me the same >>>>>>> unknown sql type -101 error. >>>>>>> The stacktrace also appears to be the same per column, so to me it >>>>>>> appears that the issue is maybe with the format of the data itself >>>>>>> coming from Oracle, I'm not too sure at this point. >>>>>>> >>>>>>> -Chris >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Charles Givre <[email protected]> >>>>>>> Sent: Wednesday, June 24, 2020 3:30 PM >>>>>>> To: user <[email protected]> >>>>>>> Subject: Re: Initial Oracle Setup >>>>>>> >>>>>>> Hey Christopher, >>>>>>> Can you run a query with individual columns so we can see which column >>>>>>> is causing the issue? >>>>>>> Thx, >>>>>>> --C >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Jun 23, 2020, at 5:25 PM, Christopher Kane >>>>>>>> <[email protected]> wrote: >>>>>>>> >>>>>>>> Rafael >>>>>>>> -Okay so doing "show schemas;" (I didn't include the semicolon before) >>>>>>>> resulted in all of the schemas I was expecting to see be listed, so >>>>>>>> it's awesome that Drill was actually able to make the connection. So I >>>>>>>> do think my issue might be with the data types of the columns in the >>>>>>>> table I'm trying to query. >>>>>>>> >>>>>>>> Charles >>>>>>>> -here are the data types on the table "merchant": NUMBER, VARCHAR2, >>>>>>>> DATE, TIMESTAMP(6) WITH TIME ZONE. >>>>>>>> -if I had to take a guess, I would bet money that the problem child >>>>>>>> here is the timestamp data type. >>>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Christopher Kane <[email protected]> >>>>>>>> Sent: Tuesday, June 23, 2020 5:19 PM >>>>>>>> To: [email protected] >>>>>>>> Subject: RE: Initial Oracle Setup >>>>>>>> >>>>>>>> Rafael >>>>>>>> -I am running this in embedded mode on my Windows Laptop and I believe >>>>>>>> I have access to the shell but I'm not too familiar with the syntax so >>>>>>>> I'll have to look that up and I'll let you know what I get. >>>>>>>> >>>>>>>> Charles >>>>>>>> -I'm glad you were able to find something about that error because I >>>>>>>> was having a tough time finding something related to it. I actually >>>>>>>> thought something similar and actually changed my query to only return >>>>>>>> the merchant_id of the merchant because I thought maybe there was a >>>>>>>> column that Drill didn't know how to handle. I will take a look at the >>>>>>>> stackoverflow link that you sent me and will let you know what I come >>>>>>>> up with. >>>>>>>> -Here is the stacktrace for the VALIDATION ERROR: >>>>>>>> 2020-06-23 17:15:56,017 [qtp409347742-245] ERROR >>>>>>>> o.a.d.e.server.rest.QueryResources - Query from Web UI Failed: {} >>>>>>>> org.apache.drill.common.exceptions.UserRemoteException: VALIDATION >>>>>>>> ERROR: Unknown SQL type -101 >>>>>>>> >>>>>>>> >>>>>>>> [Error Id: def7533c-bb11-48da-b770-28c6730a1799 ] at >>>>>>>> org.apache.drill.exec.server.rest.RestQueryRunner.submitQuery(RestQ >>>>>>>> u >>>>>>>> eryRunner.java:181) at >>>>>>>> org.apache.drill.exec.server.rest.RestQueryRunner.run(RestQueryRunn >>>>>>>> e >>>>>>>> r.java:70) at >>>>>>>> org.apache.drill.exec.server.rest.QueryResources.submitQueryJSON(Qu >>>>>>>> e >>>>>>>> ryResources.java:96) at >>>>>>>> org.apache.drill.exec.server.rest.QueryResources.submitQuery(QueryR >>>>>>>> e >>>>>>>> sources.java:114) at >>>>>>>> jdk.internal.reflect.GeneratedMethodAccessor16.invoke(Unknown >>>>>>>> Source) at >>>>>>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( >>>>>>>> D >>>>>>>> elegatingMethodAccessorImpl.java:43) >>>>>>>> at java.base/java.lang.reflect.Method.invoke(Method.java:564) >>>>>>>> at >>>>>>>> org.glassfish.jersey.server.model.internal.ResourceMethodInvocation >>>>>>>> H >>>>>>>> andlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java: >>>>>>>> 8 >>>>>>>> 1) at >>>>>>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMeth >>>>>>>> o >>>>>>>> dDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) >>>>>>>> at >>>>>>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMeth >>>>>>>> o >>>>>>>> dDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) >>>>>>>> at >>>>>>>> org.glassfish.jersey.server.model.internal.JavaResourceMethodDispat >>>>>>>> c >>>>>>>> herProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherP >>>>>>>> r >>>>>>>> ovider.java:205) at >>>>>>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMeth >>>>>>>> o >>>>>>>> dDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) >>>>>>>> at >>>>>>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(Reso >>>>>>>> u >>>>>>>> rceMethodInvoker.java:389) at >>>>>>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(Resou >>>>>>>> r >>>>>>>> ceMethodInvoker.java:347) at >>>>>>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(Resou >>>>>>>> r >>>>>>>> ceMethodInvoker.java:102) at >>>>>>>> org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java: >>>>>>>> 3 >>>>>>>> 26) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) >>>>>>>> at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) >>>>>>>> at org.glassfish.jersey.internal.Errors.process(Errors.java:315) >>>>>>>> at org.glassfish.jersey.internal.Errors.process(Errors.java:297) >>>>>>>> at org.glassfish.jersey.internal.Errors.process(Errors.java:267) >>>>>>>> at >>>>>>>> org.glassfish.jersey.process.internal.RequestScope.runInScope(Reque >>>>>>>> s >>>>>>>> tScope.java:317) at >>>>>>>> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.jav >>>>>>>> a >>>>>>>> :305) at >>>>>>>> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHa >>>>>>>> n >>>>>>>> dler.java:1154) at >>>>>>>> org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent. >>>>>>>> j >>>>>>>> ava:473) at >>>>>>>> org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java: >>>>>>>> 427) at >>>>>>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletContai >>>>>>>> n >>>>>>>> er.java:388) at >>>>>>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletContai >>>>>>>> n >>>>>>>> er.java:341) at >>>>>>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletContai >>>>>>>> n >>>>>>>> er.java:228) at >>>>>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:8 >>>>>>>> 4 >>>>>>>> 8) at >>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servl >>>>>>>> e >>>>>>>> tHandler.java:1780) at >>>>>>>> org.apache.drill.exec.server.rest.header.ResponseHeadersSettingFilt >>>>>>>> e >>>>>>>> r.doFilter(ResponseHeadersSettingFilter.java:71) >>>>>>>> at >>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servl >>>>>>>> e >>>>>>>> tHandler.java:1767) at >>>>>>>> org.apache.drill.exec.server.rest.CsrfTokenValidateFilter.doFilter( >>>>>>>> C >>>>>>>> srfTokenValidateFilter.java:55) at >>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servl >>>>>>>> e >>>>>>>> tHandler.java:1767) at >>>>>>>> org.apache.drill.exec.server.rest.CsrfTokenInjectFilter.doFilter(Cs >>>>>>>> r >>>>>>>> fTokenInjectFilter.java:54) at >>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servl >>>>>>>> e >>>>>>>> tHandler.java:1767) at >>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.ja >>>>>>>> v >>>>>>>> a:583) at >>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHan >>>>>>>> d >>>>>>>> ler.java:224) at >>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHan >>>>>>>> d >>>>>>>> ler.java:1180) at >>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.jav >>>>>>>> a >>>>>>>> :513) at >>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHand >>>>>>>> l >>>>>>>> er.java:185) at >>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHand >>>>>>>> l >>>>>>>> er.java:1112) at >>>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler. >>>>>>>> java:141) at >>>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapp >>>>>>>> e >>>>>>>> r.java:134) at >>>>>>>> org.eclipse.jetty.server.Server.handle(Server.java:539) >>>>>>>> at >>>>>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) >>>>>>>> at >>>>>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.j >>>>>>>> a >>>>>>>> va:251) at >>>>>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(Abst >>>>>>>> r >>>>>>>> actConnection.java:283) at >>>>>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) >>>>>>>> at >>>>>>>> org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPo >>>>>>>> i >>>>>>>> nt.java:93) at >>>>>>>> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.execut >>>>>>>> e >>>>>>>> ProduceConsume(ExecuteProduceConsume.java:303) >>>>>>>> at >>>>>>>> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produc >>>>>>>> e >>>>>>>> Consume(ExecuteProduceConsume.java:148) >>>>>>>> at >>>>>>>> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(Ex >>>>>>>> e >>>>>>>> cuteProduceConsume.java:136) at >>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadP >>>>>>>> o >>>>>>>> ol.java:671) at >>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPo >>>>>>>> o >>>>>>>> l.java:589) at java.base/java.lang.Thread.run(Thread.java:832) >>>>>>>> Caused by: java.lang.IllegalArgumentException: Unknown SQL type >>>>>>>> -101 at >>>>>>>> org.apache.calcite.avatica.SqlType.valueOf(SqlType.java:383) >>>>>>>> at >>>>>>>> org.apache.calcite.adapter.jdbc.JdbcSchema.getRelDataType(JdbcSchem >>>>>>>> a >>>>>>>> .java:385) at >>>>>>>> org.apache.calcite.adapter.jdbc.JdbcSchema.getRelDataType(JdbcSchem >>>>>>>> a >>>>>>>> .java:362) at >>>>>>>> org.apache.calcite.adapter.jdbc.JdbcTable.getRowType(JdbcTable.java: >>>>>>>> 117) at >>>>>>>> org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java: >>>>>>>> 159) at >>>>>>>> org.apache.calcite.sql.validate.EmptyScope.resolveTable(EmptyScope. >>>>>>>> j >>>>>>>> ava:99) at >>>>>>>> org.apache.calcite.sql.validate.DelegatingScope.resolveTable(Delega >>>>>>>> t >>>>>>>> ingScope.java:203) at >>>>>>>> org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(Ide >>>>>>>> n >>>>>>>> tifierNamespace.java:105) at >>>>>>>> org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(Id >>>>>>>> e >>>>>>>> ntifierNamespace.java:177) at >>>>>>>> org.apache.calcite.sql.validate.AbstractNamespace.validate(Abstract >>>>>>>> N >>>>>>>> amespace.java:84) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace( >>>>>>>> S >>>>>>>> qlValidatorImpl.java:1009) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlV >>>>>>>> a >>>>>>>> lidatorImpl.java:969) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlVa >>>>>>>> l >>>>>>>> idatorImpl.java:3129) at >>>>>>>> org.apache.drill.exec.planner.sql.conversion.DrillValidator.validat >>>>>>>> e >>>>>>>> From(DrillValidator.java:63) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlVa >>>>>>>> l >>>>>>>> idatorImpl.java:3111) at >>>>>>>> org.apache.drill.exec.planner.sql.conversion.DrillValidator.validat >>>>>>>> e >>>>>>>> From(DrillValidator.java:63) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(Sql >>>>>>>> V >>>>>>>> alidatorImpl.java:3383) at >>>>>>>> org.apache.calcite.sql.validate.SelectNamespace.validateImpl(Select >>>>>>>> N >>>>>>>> amespace.java:60) at >>>>>>>> org.apache.calcite.sql.validate.AbstractNamespace.validate(Abstract >>>>>>>> N >>>>>>>> amespace.java:84) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace( >>>>>>>> S >>>>>>>> qlValidatorImpl.java:1009) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlV >>>>>>>> a >>>>>>>> lidatorImpl.java:969) at >>>>>>>> org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216) >>>>>>>> at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpr >>>>>>>> e >>>>>>>> ssion(SqlValidatorImpl.java:944) at >>>>>>>> org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValida >>>>>>>> t >>>>>>>> orImpl.java:651) at >>>>>>>> org.apache.drill.exec.planner.sql.conversion.SqlConverter.validate( >>>>>>>> S >>>>>>>> qlConverter.java:189) at >>>>>>>> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.valida >>>>>>>> t >>>>>>>> eNode(DefaultSqlHandler.java:641) at >>>>>>>> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.valida >>>>>>>> t >>>>>>>> eAndConvert(DefaultSqlHandler.java:195) >>>>>>>> at >>>>>>>> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPla >>>>>>>> n >>>>>>>> (DefaultSqlHandler.java:169) at >>>>>>>> org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan(Drill >>>>>>>> S >>>>>>>> qlWorker.java:283) at >>>>>>>> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan(Dr >>>>>>>> i >>>>>>>> llSqlWorker.java:163) at >>>>>>>> org.apache.drill.exec.planner.sql.DrillSqlWorker.convertPlan(DrillS >>>>>>>> q >>>>>>>> lWorker.java:128) at >>>>>>>> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWo >>>>>>>> r >>>>>>>> ker.java:93) at >>>>>>>> org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:593) >>>>>>>> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:274) >>>>>>>> at .......(:0) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Charles Givre <[email protected]> >>>>>>>> Sent: Tuesday, June 23, 2020 4:35 PM >>>>>>>> To: [email protected] >>>>>>>> Subject: Re: Initial Oracle Setup >>>>>>>> >>>>>>>> One more thing... >>>>>>>> >>>>>>>> Could you run the query that is producing the VALIDATION ERROR and >>>>>>>> send the full stack trace? I'm thinking that can be fixed on the >>>>>>>> Drill end of things, at least until Calcite fixes that. >>>>>>>> -- C >>>>>>>> >>>>>>>>> On Jun 23, 2020, at 3:58 PM, Christopher Kane >>>>>>>>> <[email protected]> wrote: >>>>>>>>> >>>>>>>>> Yes thank you! To your point about using 1.17, I could always take >>>>>>>>> the config from 1.18 and copy it over and see if that fixes my issue. >>>>>>>>> >>>>>>>>> I think the only thing I'm having an issue with now I think is >>>>>>>>> related to this: >>>>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache. >>>>>>>>> org >>>>>>>>> _jira_browse_CALCITE-2D3533&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BY >>>>>>>>> R >>>>>>>>> bCB >>>>>>>>> lPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=g39OzDxVVrucBo3nnaZNaIqoh9 >>>>>>>>> S ZZi >>>>>>>>> dthZ3H6QSOkWE&s=oVohCx-25EZLkSVY7yEV1FtFZ-nNDTnGvek4Sx67nYc&e= >>>>>>>>> >>>>>>>>> Everything appears to be setup now but when executing a query for the >>>>>>>>> data source I setup, I receive >>>>>>>>> org.apache.drill.common.exceptions.UserRemoteException: VALIDATION >>>>>>>>> ERROR: Unknown SQL type -101. Any suggestions there? >>>>>>>>> >>>>>>>>> -----Original Message----- >>>>>>>>> From: Rafael Jaimes III <[email protected]> >>>>>>>>> Sent: Tuesday, June 23, 2020 3:43 PM >>>>>>>>> To: [email protected] >>>>>>>>> Subject: Re: Initial Oracle Setup >>>>>>>>> >>>>>>>>> Glad you got it working with the new version regardless! >>>>>>>>> >>>>>>>>> On Tue, Jun 23, 2020 at 3:38 PM Christopher Kane >>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> Wow, I gotta hand it to you, I don't know what I was expecting to >>>>>>>>>> happen but I got a Success! So that's awesome, thank you so much for >>>>>>>>>> your help! I am going to quickly run a test query on this data >>>>>>>>>> source now and see what happens. >>>>>>>>>> >>>>>>>>>> -----Original Message----- >>>>>>>>>> From: Christopher Kane <[email protected]> >>>>>>>>>> Sent: Tuesday, June 23, 2020 3:31 PM >>>>>>>>>> To: [email protected] >>>>>>>>>> Subject: RE: Initial Oracle Setup >>>>>>>>>> >>>>>>>>>> Yeah I am not the most familiar with building from source, so I'll >>>>>>>>>> check out your pre-release, install it like I did 1.17.0 and see >>>>>>>>>> what happens! >>>>>>>>>> >>>>>>>>>> -----Original Message----- >>>>>>>>>> From: Charles Givre <[email protected]> >>>>>>>>>> Sent: Tuesday, June 23, 2020 3:23 PM >>>>>>>>>> To: user <[email protected]> >>>>>>>>>> Subject: Re: Initial Oracle Setup >>>>>>>>>> >>>>>>>>>> It hasn't been released yet, so you'd have to d/l from github >>>>>>>>>> (https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ >>>>>>>>>> a >>>>>>>>>> pac >>>>>>>>>> h >>>>>>>>>> e_drill&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lf >>>>>>>>>> l >>>>>>>>>> lmV >>>>>>>>>> q >>>>>>>>>> BXbraSyDLC7XDswJU&m=b6gHt-qP_soEwZSNloM5zPbmSepKW4FaAKoOwoxYlUk&s >>>>>>>>>> = >>>>>>>>>> C8v >>>>>>>>>> 5 -xTogFlPrAmfl-0zcAfmZZUP5ZIkcddMxV8aGcg&e= >>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ >>>>>>>>>> a >>>>>>>>>> pac >>>>>>>>>> h >>>>>>>>>> e_drill&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lf >>>>>>>>>> l >>>>>>>>>> lmV >>>>>>>>>> q >>>>>>>>>> BXbraSyDLC7XDswJU&m=b6gHt-qP_soEwZSNloM5zPbmSepKW4FaAKoOwoxYlUk&s >>>>>>>>>> = >>>>>>>>>> C8v >>>>>>>>>> 5 -xTogFlPrAmfl-0zcAfmZZUP5ZIkcddMxV8aGcg&e= >) and build from >>>>>>>>>> source. >>>>>>>>>> If you can't do that, I have a pre-release here: >>>>>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_c >>>>>>>>>> g >>>>>>>>>> ivr >>>>>>>>>> e >>>>>>>>>> _drill_releases_tag_1.18.0-2DSNAPSHOT&d=DwIFAg&c=rE3mhBYFJfJGqQ7W >>>>>>>>>> I >>>>>>>>>> 0-D >>>>>>>>>> P >>>>>>>>>> w&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=b6gHt-qP_soEwZS >>>>>>>>>> N >>>>>>>>>> loM >>>>>>>>>> 5 >>>>>>>>>> zPbmSepKW4FaAKoOwoxYlUk&s=3IE3kzUlrMTuhmPxkBggBYoK9fszW_xrb--95H- >>>>>>>>>> q >>>>>>>>>> XY0 >>>>>>>>>> & >>>>>>>>>> e= >>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ >>>>>>>>>> c >>>>>>>>>> giv >>>>>>>>>> r >>>>>>>>>> e_drill_releases_tag_1.18.0-2DSNAPSHOT&d=DwIFAg&c=rE3mhBYFJfJGqQ7 >>>>>>>>>> W >>>>>>>>>> I0- >>>>>>>>>> D >>>>>>>>>> Pw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=b6gHt-qP_soEwZ >>>>>>>>>> S >>>>>>>>>> Nlo >>>>>>>>>> M >>>>>>>>>> 5zPbmSepKW4FaAKoOwoxYlUk&s=3IE3kzUlrMTuhmPxkBggBYoK9fszW_xrb--95H >>>>>>>>>> - >>>>>>>>>> qXY >>>>>>>>>> 0 >>>>>>>>>> &e= > >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Jun 23, 2020, at 3:21 PM, Christopher Kane >>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>> You might have to provide a link for Drill 1.18, I'm not seeing >>>>>>>>>>> that available on the downloads section of the site. >>>>>>>>>>> >>>>>>>>>>> -----Original Message----- >>>>>>>>>>> From: Christopher Kane >>>>>>>>>>> <[email protected]> >>>>>>>>>>> Sent: Tuesday, June 23, 2020 3:14 PM >>>>>>>>>>> To: [email protected] >>>>>>>>>>> Subject: RE: Initial Oracle Setup >>>>>>>>>>> >>>>>>>>>>> I'm all for it honestly, I've never used Apache Drill before and am >>>>>>>>>>> trying it out as a POC for something I'm trying to do at work. So >>>>>>>>>>> you're saying in addition to the driver required by whichever RDBMS >>>>>>>>>>> you're setting up, there is an Apache Drill JDBC plugin that works >>>>>>>>>>> in combination with the driver? >>>>>>>>>>> >>>>>>>>>>> -----Original Message----- >>>>>>>>>>> From: Charles Givre <[email protected]> >>>>>>>>>>> Sent: Tuesday, June 23, 2020 3:11 PM >>>>>>>>>>> To: [email protected] >>>>>>>>>>> Subject: Re: Initial Oracle Setup >>>>>>>>>>> >>>>>>>>>>> Another qq: Would you be willing to try Drill 1.18? There were >>>>>>>>>>> some significant changes made to the JDBC plugin in 1.18 and I >>>>>>>>>>> wonder if that might solve the issue. >>>>>>>>>>> >>>>>>>>>>>> On Jun 23, 2020, at 3:05 PM, Christopher Kane >>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>> On both the directory of drill and on startup I am running >>>>>>>>>>>> Apache Drill 1.17.0 >>>>>>>>>>>> >>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>> From: Charles Givre <[email protected] >>>>>>>>>>>> <mailto:[email protected]>> >>>>>>>>>>>> Sent: Tuesday, June 23, 2020 3:03 PM >>>>>>>>>>>> To: user <[email protected] <mailto:[email protected]>> >>>>>>>>>>>> Subject: Re: Initial Oracle Setup >>>>>>>>>>>> >>>>>>>>>>>> One more question.. what version of Drill are you using? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On Jun 23, 2020, at 3:01 PM, Christopher Kane >>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Rafael >>>>>>>>>>>>> -I did place it in the jars/3rdparty folder. >>>>>>>>>>>>> >>>>>>>>>>>>> Storage Plugin Config: >>>>>>>>>>>>> { >>>>>>>>>>>>> "type": "jdbc", >>>>>>>>>>>>> "enabled": true, >>>>>>>>>>>>> "driver": "oracle.jdbc.driver.OracleDriver", >>>>>>>>>>>>> "url": >>>>>>>>>>>>> "jdbc:oracle:thin:username/password@chris-ora-scan:1521/chris_app" >>>>>>>>>>>>> } >>>>>>>>>>>>> (it's been modified to remove sensitive information) >>>>>>>>>>>>> >>>>>>>>>>>>> Charles >>>>>>>>>>>>> -I did turn Verbose on as you instructed, below is the full >>>>>>>>>>>>> stacktrace. Now I will say that the one DBA I was conversing with >>>>>>>>>>>>> mentioned something about JRE, and I find interesting in this >>>>>>>>>>>>> stack trace that it seems to be a RunTime exception. >>>>>>>>>>>>> -I'm not sure if I was aware they were at a version 10? This is >>>>>>>>>>>>> the link I was using to download the JDBC driver: >>>>>>>>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.oracle.com_database_technologies_jdbc-2Ddrivers-2D12c-2Ddownloads.html&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=8cPWOW4PY_sKPTUxECbL9XacM9DQCSnBbAJL9oQht0s&s=zddp1Im2FovgkwAQ3SyRaJzBS1FxeOgiwYdViTSn4H4&e= >>>>>>>>>>>>> >>>>>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.oracle.com_database_technologies_jdbc-2Ddrivers-2D12c-2Ddownloads.html&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=8cPWOW4PY_sKPTUxECbL9XacM9DQCSnBbAJL9oQht0s&s=zddp1Im2FovgkwAQ3SyRaJzBS1FxeOgiwYdViTSn4H4&e=> >>>>>>>>>>>>> and the only options I see available and relevant are either >>>>>>>>>>>>> ojdbc7.jar or ojdbc6.jar. At this point I've tried both but am >>>>>>>>>>>>> willing to change my configuration while troubleshooting. In >>>>>>>>>>>>> addition the recommended driver for Oracle by Apache seems to be >>>>>>>>>>>>> ojdbc7.12.1.0.2.jar referenced from this page here: >>>>>>>>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__drill.apache.org_docs_rdbms-2Dstorage-2Dplugin_&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=8cPWOW4PY_sKPTUxECbL9XacM9DQCSnBbAJL9oQht0s&s=rzaAsfW2VGICMfzMAhjoT2vZqBRkti6X56uH4Uv1HU0&e= >>>>>>>>>>>>> >>>>>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__drill.apache.org_docs_rdbms-2Dstorage-2Dplugin_&d=DwIFAg&c=rE3mhBYFJfJGqQ7WI0-DPw&r=BYRbCBlPlEiTy68EGn8lfllmVqBXbraSyDLC7XDswJU&m=8cPWOW4PY_sKPTUxECbL9XacM9DQCSnBbAJL9oQht0s&s=rzaAsfW2VGICMfzMAhjoT2vZqBRkti6X56uH4Uv1HU0&e=> >>>>>>>>>>>>> and that is the one I am currently using, ojdbc7.jar from the >>>>>>>>>>>>> 12.1.0.2 release of Oracle Database. >>>>>>>>>>>>> >>>>>>>>>>>>> 2020-06-23 14:52:37,017 [qtp377017996-50] ERROR >>>>>>>>>>>>> o.a.d.e.server.rest.StorageResources - Unable to create/ >>>>>>>>>>>>> update >>>>>>>>>>>>> plugin: QA2 Oracle >>>>>>>>>>>>> org.apache.drill.common.exceptions.ExecutionSetupException: >>>>>>>>>>>>> Failure setting up new storage plugin configuration for config >>>>>>>>>>>>> org.apache.drill.exec.store.jdbc.JdbcStorageConfig@7d9c9e53 >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.drill.exec.store.StoragePluginRegistryImpl.create(S >>>>>>>>>>>>> t >>>>>>>>>>>>> ora >>>>>>>>>>>>> ge >>>>>>>>>>>>> P >>>>>>>>>>>>> l >>>>>>>>>>>>> uginRegistryImpl.java:536) at >>>>>>>>>>>>> org.apache.drill.exec.store.StoragePluginRegistryImpl.createOr >>>>>>>>>>>>> U >>>>>>>>>>>>> pda >>>>>>>>>>>>> te >>>>>>>>>>>>> ( >>>>>>>>>>>>> S >>>>>>>>>>>>> toragePluginRegistryImpl.java:132) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.drill.exec.server.rest.PluginConfigWrapper.createOr >>>>>>>>>>>>> U >>>>>>>>>>>>> pda >>>>>>>>>>>>> te >>>>>>>>>>>>> I >>>>>>>>>>>>> n >>>>>>>>>>>>> Storage(PluginConfigWrapper.java:56) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.drill.exec.server.rest.StorageResources.createOrUpd >>>>>>>>>>>>> a >>>>>>>>>>>>> teP >>>>>>>>>>>>> lu >>>>>>>>>>>>> g >>>>>>>>>>>>> i >>>>>>>>>>>>> nJSON(StorageResources.java:212) at >>>>>>>>>>>>> org.apache.drill.exec.server.rest.StorageResources.createOrUpd >>>>>>>>>>>>> a >>>>>>>>>>>>> teP >>>>>>>>>>>>> lu >>>>>>>>>>>>> g >>>>>>>>>>>>> i >>>>>>>>>>>>> n(StorageResources.java:233) at >>>>>>>>>>>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke >>>>>>>>>>>>> 0 >>>>>>>>>>>>> (Na >>>>>>>>>>>>> ti >>>>>>>>>>>>> v >>>>>>>>>>>>> e >>>>>>>>>>>>> Method) at >>>>>>>>>>>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke >>>>>>>>>>>>> ( >>>>>>>>>>>>> Nat >>>>>>>>>>>>> iv >>>>>>>>>>>>> e >>>>>>>>>>>>> M >>>>>>>>>>>>> ethodAccessorImpl.java:62) at >>>>>>>>>>>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.in >>>>>>>>>>>>> v >>>>>>>>>>>>> oke >>>>>>>>>>>>> (D >>>>>>>>>>>>> e >>>>>>>>>>>>> l >>>>>>>>>>>>> egatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.base/java.lang.reflect.Method.invoke(Method.java:564) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.server.model.internal.ResourceMethodInvoc >>>>>>>>>>>>> a >>>>>>>>>>>>> tio >>>>>>>>>>>>> nH >>>>>>>>>>>>> a >>>>>>>>>>>>> n >>>>>>>>>>>>> dlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.ja >>>>>>>>>>>>> v >>>>>>>>>>>>> a:8 >>>>>>>>>>>>> 1) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourc >>>>>>>>>>>>> e >>>>>>>>>>>>> Met >>>>>>>>>>>>> ho >>>>>>>>>>>>> d >>>>>>>>>>>>> D >>>>>>>>>>>>> ispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourc >>>>>>>>>>>>> e >>>>>>>>>>>>> Met >>>>>>>>>>>>> ho >>>>>>>>>>>>> d >>>>>>>>>>>>> D >>>>>>>>>>>>> ispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161 >>>>>>>>>>>>> ) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.server.model.internal.JavaResourceMethodD >>>>>>>>>>>>> i >>>>>>>>>>>>> spa >>>>>>>>>>>>> tc >>>>>>>>>>>>> h >>>>>>>>>>>>> e >>>>>>>>>>>>> rProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatch >>>>>>>>>>>>> e >>>>>>>>>>>>> rPr >>>>>>>>>>>>> ov >>>>>>>>>>>>> i >>>>>>>>>>>>> d >>>>>>>>>>>>> er.java:205) at >>>>>>>>>>>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourc >>>>>>>>>>>>> e >>>>>>>>>>>>> Met >>>>>>>>>>>>> ho >>>>>>>>>>>>> d >>>>>>>>>>>>> D >>>>>>>>>>>>> ispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:9 >>>>>>>>>>>>> 9 >>>>>>>>>>>>> ) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke >>>>>>>>>>>>> ( >>>>>>>>>>>>> Res >>>>>>>>>>>>> ou >>>>>>>>>>>>> r >>>>>>>>>>>>> c >>>>>>>>>>>>> eMethodInvoker.java:389) at >>>>>>>>>>>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply( >>>>>>>>>>>>> R >>>>>>>>>>>>> eso >>>>>>>>>>>>> ur >>>>>>>>>>>>> c >>>>>>>>>>>>> e >>>>>>>>>>>>> MethodInvoker.java:347) at >>>>>>>>>>>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply( >>>>>>>>>>>>> R >>>>>>>>>>>>> eso >>>>>>>>>>>>> ur >>>>>>>>>>>>> c >>>>>>>>>>>>> e >>>>>>>>>>>>> MethodInvoker.java:102) at >>>>>>>>>>>>> org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime. >>>>>>>>>>>>> j >>>>>>>>>>>>> ava >>>>>>>>>>>>> :3 >>>>>>>>>>>>> 2 >>>>>>>>>>>>> 6 >>>>>>>>>>>>> ) at >>>>>>>>>>>>> org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.internal.Errors.process(Errors.java:315) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.internal.Errors.process(Errors.java:297) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.internal.Errors.process(Errors.java:267) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.glassfish.jersey.process.internal.RequestScope.runInScope( >>>>>>>>>>>>> R >>>>>>>>>>>>> equ >>>>>>>>>>>>> es >>>>>>>>>>>>> t >>>>>>>>>>>>> S >>>>>>>>>>>>> cope.java:317) at >>>>>>>>>>>>> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java: >>>>>>>>>>>>> 3 >>>>>>>>>>>>> 05) at >>>>>>>>>>>>> org.glassfish.jersey.server.ApplicationHandler.handle(Applicat >>>>>>>>>>>>> i >>>>>>>>>>>>> onH >>>>>>>>>>>>> an >>>>>>>>>>>>> d >>>>>>>>>>>>> l >>>>>>>>>>>>> er.java:1154) at >>>>>>>>>>>>> org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebCompo >>>>>>>>>>>>> n >>>>>>>>>>>>> ent >>>>>>>>>>>>> .j >>>>>>>>>>>>> a >>>>>>>>>>>>> v >>>>>>>>>>>>> a:473) at >>>>>>>>>>>>> org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java: >>>>>>>>>>>>> 4 >>>>>>>>>>>>> 2 >>>>>>>>>>>>> 7) at >>>>>>>>>>>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletC >>>>>>>>>>>>> o >>>>>>>>>>>>> nta >>>>>>>>>>>>> in >>>>>>>>>>>>> e >>>>>>>>>>>>> r >>>>>>>>>>>>> .java:388) at >>>>>>>>>>>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletC >>>>>>>>>>>>> o >>>>>>>>>>>>> nta >>>>>>>>>>>>> in >>>>>>>>>>>>> e >>>>>>>>>>>>> r >>>>>>>>>>>>> .java:341) at >>>>>>>>>>>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletC >>>>>>>>>>>>> o >>>>>>>>>>>>> nta >>>>>>>>>>>>> in >>>>>>>>>>>>> e >>>>>>>>>>>>> r >>>>>>>>>>>>> .java:228) at >>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java: >>>>>>>>>>>>> 84 >>>>>>>>>>>>> 8 >>>>>>>>>>>>> ) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter( >>>>>>>>>>>>> S >>>>>>>>>>>>> erv >>>>>>>>>>>>> le >>>>>>>>>>>>> t >>>>>>>>>>>>> H >>>>>>>>>>>>> andler.java:1780) at >>>>>>>>>>>>> org.apache.drill.exec.server.rest.CsrfTokenValidateFilter.doFi >>>>>>>>>>>>> l >>>>>>>>>>>>> ter >>>>>>>>>>>>> (C >>>>>>>>>>>>> s >>>>>>>>>>>>> r >>>>>>>>>>>>> fTokenValidateFilter.java:55) at >>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter( >>>>>>>>>>>>> S >>>>>>>>>>>>> erv >>>>>>>>>>>>> le >>>>>>>>>>>>> t >>>>>>>>>>>>> H >>>>>>>>>>>>> andler.java:1767) at >>>>>>>>>>>>> org.apache.drill.exec.server.rest.CsrfTokenInjectFilter.doFilt >>>>>>>>>>>>> e >>>>>>>>>>>>> r(C >>>>>>>>>>>>> sr >>>>>>>>>>>>> f >>>>>>>>>>>>> T >>>>>>>>>>>>> okenInjectFilter.java:54) at >>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter( >>>>>>>>>>>>> S >>>>>>>>>>>>> erv >>>>>>>>>>>>> le >>>>>>>>>>>>> t >>>>>>>>>>>>> H >>>>>>>>>>>>> andler.java:1767) at >>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java: >>>>>>>>>>>>> 583) at >>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(Sessi >>>>>>>>>>>>> o >>>>>>>>>>>>> nHa >>>>>>>>>>>>> nd >>>>>>>>>>>>> l >>>>>>>>>>>>> e >>>>>>>>>>>>> r.java:224) at >>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(Conte >>>>>>>>>>>>> x >>>>>>>>>>>>> tHa >>>>>>>>>>>>> nd >>>>>>>>>>>>> l >>>>>>>>>>>>> e >>>>>>>>>>>>> r.java:1180) at >>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: >>>>>>>>>>>>> 5 >>>>>>>>>>>>> 13) at >>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(Sessio >>>>>>>>>>>>> n >>>>>>>>>>>>> Han >>>>>>>>>>>>> dl >>>>>>>>>>>>> e >>>>>>>>>>>>> r >>>>>>>>>>>>> .java:185) at >>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(Contex >>>>>>>>>>>>> t >>>>>>>>>>>>> Han >>>>>>>>>>>>> dl >>>>>>>>>>>>> e >>>>>>>>>>>>> r >>>>>>>>>>>>> .java:1112) at >>>>>>>>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler. >>>>>>>>>>>>> j >>>>>>>>>>>>> a >>>>>>>>>>>>> va:141) at >>>>>>>>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper. >>>>>>>>>>>>> java:134) at >>>>>>>>>>>>> org.eclipse.jetty.server.Server.handle(Server.java:539) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:3 >>>>>>>>>>>>> 3 >>>>>>>>>>>>> 3) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection. >>>>>>>>>>>>> ja >>>>>>>>>>>>> v >>>>>>>>>>>>> a >>>>>>>>>>>>> :251) at >>>>>>>>>>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded >>>>>>>>>>>>> ( >>>>>>>>>>>>> Abs >>>>>>>>>>>>> tr >>>>>>>>>>>>> a >>>>>>>>>>>>> c >>>>>>>>>>>>> tConnection.java:283) at >>>>>>>>>>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:1 >>>>>>>>>>>>> 0 >>>>>>>>>>>>> 8) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannel >>>>>>>>>>>>> E >>>>>>>>>>>>> ndP >>>>>>>>>>>>> oi >>>>>>>>>>>>> n >>>>>>>>>>>>> t >>>>>>>>>>>>> .java:93) at >>>>>>>>>>>>> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.e >>>>>>>>>>>>> x >>>>>>>>>>>>> ecu >>>>>>>>>>>>> te >>>>>>>>>>>>> P >>>>>>>>>>>>> r >>>>>>>>>>>>> oduceConsume(ExecuteProduceConsume.java:303) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.p >>>>>>>>>>>>> r >>>>>>>>>>>>> odu >>>>>>>>>>>>> ce >>>>>>>>>>>>> C >>>>>>>>>>>>> o >>>>>>>>>>>>> nsume(ExecuteProduceConsume.java:148) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.r >>>>>>>>>>>>> u >>>>>>>>>>>>> n(E >>>>>>>>>>>>> xe >>>>>>>>>>>>> c >>>>>>>>>>>>> u >>>>>>>>>>>>> teProduceConsume.java:136) at >>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedTh >>>>>>>>>>>>> r >>>>>>>>>>>>> ead >>>>>>>>>>>>> Po >>>>>>>>>>>>> o >>>>>>>>>>>>> l >>>>>>>>>>>>> .java:671) at >>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool. >>>>>>>>>>>>> java:589) at java.base/java.lang.Thread.run(Thread.java:832) >>>>>>>>>>>>> Caused by: java.lang.RuntimeException: Rule description >>>>>>>>>>>>> 'JDBC_DREL_ConverterJDBC.QA2 Oracle' is not valid at >>>>>>>>>>>>> org.apache.calcite.plan.RelOptRule.<init>(RelOptRule.java:104) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.calcite.rel.convert.ConverterRule.<init>(ConverterRule. >>>>>>>>>>>>> ja >>>>>>>>>>>>> v >>>>>>>>>>>>> a >>>>>>>>>>>>> :78) at >>>>>>>>>>>>> org.apache.drill.exec.store.jdbc.JdbcStoragePlugin$JdbcDrelCon >>>>>>>>>>>>> v >>>>>>>>>>>>> ert >>>>>>>>>>>>> er >>>>>>>>>>>>> R >>>>>>>>>>>>> u >>>>>>>>>>>>> le.<init>(JdbcStoragePlugin.java:224) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.drill.exec.store.jdbc.JdbcStoragePlugin$DrillJdbcCo >>>>>>>>>>>>> n >>>>>>>>>>>>> ven >>>>>>>>>>>>> ti >>>>>>>>>>>>> o >>>>>>>>>>>>> n >>>>>>>>>>>>> .<init>(JdbcStoragePlugin.java:119) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.drill.exec.store.jdbc.JdbcStoragePlugin.<init>(Jdbc >>>>>>>>>>>>> S >>>>>>>>>>>>> tor >>>>>>>>>>>>> ag >>>>>>>>>>>>> e >>>>>>>>>>>>> P >>>>>>>>>>>>> lugin.java:103) at >>>>>>>>>>>>> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.n >>>>>>>>>>>>> e >>>>>>>>>>>>> wIn >>>>>>>>>>>>> st >>>>>>>>>>>>> a >>>>>>>>>>>>> n >>>>>>>>>>>>> ce0(Native Method) at >>>>>>>>>>>>> java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.n >>>>>>>>>>>>> e >>>>>>>>>>>>> wIn >>>>>>>>>>>>> st >>>>>>>>>>>>> a >>>>>>>>>>>>> n >>>>>>>>>>>>> ce(NativeConstructorAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> java.base/jdk.internal.reflect.DelegatingConstructorAccessorIm >>>>>>>>>>>>> p >>>>>>>>>>>>> l.n >>>>>>>>>>>>> ew >>>>>>>>>>>>> I >>>>>>>>>>>>> n >>>>>>>>>>>>> stance(DelegatingConstructorAccessorImpl.java:45) >>>>>>>>>>>>> at >>>>>>>>>>>>> java.base/java.lang.reflect.Constructor.newInstanceWithCaller( >>>>>>>>>>>>> C >>>>>>>>>>>>> ons >>>>>>>>>>>>> tr >>>>>>>>>>>>> u >>>>>>>>>>>>> c >>>>>>>>>>>>> tor.java:500) at >>>>>>>>>>>>> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java: >>>>>>>>>>>>> 4 >>>>>>>>>>>>> 81) at >>>>>>>>>>>>> org.apache.drill.exec.store.StoragePluginRegistryImpl.create(S >>>>>>>>>>>>> t >>>>>>>>>>>>> ora >>>>>>>>>>>>> ge >>>>>>>>>>>>> P >>>>>>>>>>>>> l >>>>>>>>>>>>> uginRegistryImpl.java:528) >>>>>>>>>>>>> ... 56 common frames omitted >>>>>>>>>>>>> >>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>> From: Charles Givre <[email protected]> >>>>>>>>>>>>> Sent: Tuesday, June 23, 2020 2:51 PM >>>>>>>>>>>>> To: [email protected] >>>>>>>>>>>>> Subject: Re: Initial Oracle Setup >>>>>>>>>>>>> >>>>>>>>>>>>> One more thing... >>>>>>>>>>>>> Did you try with the current Oracle JDBC driver? I believe they >>>>>>>>>>>>> are at version 10 now. >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> -- C >>>>>>>>>>>>> >>>>>>>>>>>>>> On Jun 23, 2020, at 1:59 PM, Rafael Jaimes III >>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Chris, >>>>>>>>>>>>>> >>>>>>>>>>>>>> You put the JDBC driver in the 3rd party folder? >>>>>>>>>>>>>> >>>>>>>>>>>>>> You're right you might be onto something if you get the >>>>>>>>>>>>>> password failed message. Can you post the exact text (JSON) >>>>>>>>>>>>>> of the storage plugin config? >>>>>>>>>>>>>> >>>>>>>>>>>>>> -Rafael >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Jun 23, 2020 at 1:56 PM Christopher Kane >>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hey Everyone, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I'm looking to setup and create a new Oracle Storage Plugin for >>>>>>>>>>>>>>> my local Apache Drill instance. I have determined that a >>>>>>>>>>>>>>> correct oracle connection string with an incorrect password >>>>>>>>>>>>>>> results in the following message: Please retry: Error while >>>>>>>>>>>>>>> creating / updating storage : java.sql.SQLException: Cannot >>>>>>>>>>>>>>> create PoolableConnectionFactory (ORA-01017: invalid >>>>>>>>>>>>>>> username/password; logon denied ). Now updating the connection >>>>>>>>>>>>>>> string to use the correct password results in the following >>>>>>>>>>>>>>> message: Please retry: Error while creating / updating storage >>>>>>>>>>>>>>> : Rule description 'JDBC_DREL_ConverterJDBC.QA2 Oracle' is not >>>>>>>>>>>>>>> valid. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have confirmed with our DBAs and through my own testing that >>>>>>>>>>>>>>> my connection string is correct. When attempting to google >>>>>>>>>>>>>>> anything related to the message 'JDBC_DREL_Converter' >>>>>>>>>>>>>>> unfortunately I am not able to find anything useful. At this >>>>>>>>>>>>>>> point I'm kind of grasping at straws as to what my issue is at >>>>>>>>>>>>>>> this point. In addition I also have the correct oracle thin >>>>>>>>>>>>>>> driver installed, which was the recommend one from the RDBMS >>>>>>>>>>>>>>> page within the Apache Drill documentation and I've also added >>>>>>>>>>>>>>> this line to my drill-override.conf, >>>>>>>>>>>>>>> drill.exec.sys.store.provider.local.path = "ojdbc7.jar". But >>>>>>>>>>>>>>> I'm assuming if any of that wasn't setup correctly, I wouldn't >>>>>>>>>>>>>>> be able to get an error message back from Oracle saying that my >>>>>>>>>>>>>>> password was incorrect. Any help in regards to this would be >>>>>>>>>>>>>>> greatly appreciated. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Christopher Kane >>>>>>>>>>>>>>> Software Test Engineer | Clover, CardConnect, FiServ >>>>>>>>>>>>>>> [email protected]<mailto:[email protected]>, >>>>>>>>>>>>>>> [email protected]<mailto:Christopher.Kane@cardconnect. >>>>>>>>>>>>>>> com>, >>>>>>>>>>>>>>> [email protected]<mailto:Christopher.Kane2@firstdata. >>>>>>>>>>>>>>> c >>>>>>>>>>>>>>> o >>>>>>>>>>>>>>> m>, >>>>>>>>>>>>>>> m>[email protected]<mailto:Christopher.Kane1@fise >>>>>>>>>>>>>>> m>r >>>>>>>>>>>>>>> m>v.c >>>>>>>>>>>>>>> m>om >>>>>>>>>>>>>>> m>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>>>>>>> attachments are proprietary and confidential information >>>>>>>>>>>>>>> protected from disclosure and intended only for the use of the >>>>>>>>>>>>>>> recipient(s) named above. If the reader of this message is not >>>>>>>>>>>>>>> the intended recipient, or an employee or agent responsible for >>>>>>>>>>>>>>> delivering this message to the intended recipient, you are >>>>>>>>>>>>>>> hereby notified that any dissemination, distribution or copying >>>>>>>>>>>>>>> of this message or any attachments is strictly prohibited. If >>>>>>>>>>>>>>> you have received this communication in error, please notify >>>>>>>>>>>>>>> CardConnect immediately by replying to this message and then >>>>>>>>>>>>>>> delete this message and any attachments from your computer. >>>>>>>>>>>>> >>>>>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>>>>> attachments are proprietary and confidential information >>>>>>>>>>>>> protected from disclosure and intended only for the use of the >>>>>>>>>>>>> recipient(s) named above. If the reader of this message is not >>>>>>>>>>>>> the intended recipient, or an employee or agent responsible for >>>>>>>>>>>>> delivering this message to the intended recipient, you are hereby >>>>>>>>>>>>> notified that any dissemination, distribution or copying of this >>>>>>>>>>>>> message or any attachments is strictly prohibited. If you have >>>>>>>>>>>>> received this communication in error, please notify CardConnect >>>>>>>>>>>>> immediately by replying to this message and then delete this >>>>>>>>>>>>> message and any attachments from your computer. >>>>>>>>>>>> >>>>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>>>> attachments are proprietary and confidential information protected >>>>>>>>>>>> from disclosure and intended only for the use of the recipient(s) >>>>>>>>>>>> named above. If the reader of this message is not the intended >>>>>>>>>>>> recipient, or an employee or agent responsible for delivering this >>>>>>>>>>>> message to the intended recipient, you are hereby notified that >>>>>>>>>>>> any dissemination, distribution or copying of this message or any >>>>>>>>>>>> attachments is strictly prohibited. If you have received this >>>>>>>>>>>> communication in error, please notify CardConnect immediately by >>>>>>>>>>>> replying to this message and then delete this message and any >>>>>>>>>>>> attachments from your computer. >>>>>>>>>>> >>>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>>> attachments are proprietary and confidential information protected >>>>>>>>>>> from disclosure and intended only for the use of the recipient(s) >>>>>>>>>>> named above. If the reader of this message is not the intended >>>>>>>>>>> recipient, or an employee or agent responsible for delivering this >>>>>>>>>>> message to the intended recipient, you are hereby notified that any >>>>>>>>>>> dissemination, distribution or copying of this message or any >>>>>>>>>>> attachments is strictly prohibited. If you have received this >>>>>>>>>>> communication in error, please notify CardConnect immediately by >>>>>>>>>>> replying to this message and then delete this message and any >>>>>>>>>>> attachments from your computer. >>>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>>> attachments are proprietary and confidential information protected >>>>>>>>>>> from disclosure and intended only for the use of the recipient(s) >>>>>>>>>>> named above. If the reader of this message is not the intended >>>>>>>>>>> recipient, or an employee or agent responsible for delivering this >>>>>>>>>>> message to the intended recipient, you are hereby notified that any >>>>>>>>>>> dissemination, distribution or copying of this message or any >>>>>>>>>>> attachments is strictly prohibited. If you have received this >>>>>>>>>>> communication in error, please notify CardConnect immediately by >>>>>>>>>>> replying to this message and then delete this message and any >>>>>>>>>>> attachments from your computer. >>>>>>>>>> >>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>> attachments are proprietary and confidential information protected >>>>>>>>>> from disclosure and intended only for the use of the recipient(s) >>>>>>>>>> named above. If the reader of this message is not the intended >>>>>>>>>> recipient, or an employee or agent responsible for delivering this >>>>>>>>>> message to the intended recipient, you are hereby notified that any >>>>>>>>>> dissemination, distribution or copying of this message or any >>>>>>>>>> attachments is strictly prohibited. If you have received this >>>>>>>>>> communication in error, please notify CardConnect immediately by >>>>>>>>>> replying to this message and then delete this message and any >>>>>>>>>> attachments from your computer. >>>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any >>>>>>>>>> attachments are proprietary and confidential information protected >>>>>>>>>> from disclosure and intended only for the use of the recipient(s) >>>>>>>>>> named above. If the reader of this message is not the intended >>>>>>>>>> recipient, or an employee or agent responsible for delivering this >>>>>>>>>> message to the intended recipient, you are hereby notified that any >>>>>>>>>> dissemination, distribution or copying of this message or any >>>>>>>>>> attachments is strictly prohibited. If you have received this >>>>>>>>>> communication in error, please notify CardConnect immediately by >>>>>>>>>> replying to this message and then delete this message and any >>>>>>>>>> attachments from your computer. >>>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments >>>>>>>>> are proprietary and confidential information protected from >>>>>>>>> disclosure and intended only for the use of the recipient(s) named >>>>>>>>> above. If the reader of this message is not the intended recipient, >>>>>>>>> or an employee or agent responsible for delivering this message to >>>>>>>>> the intended recipient, you are hereby notified that any >>>>>>>>> dissemination, distribution or copying of this message or any >>>>>>>>> attachments is strictly prohibited. If you have received this >>>>>>>>> communication in error, please notify CardConnect immediately by >>>>>>>>> replying to this message and then delete this message and any >>>>>>>>> attachments from your computer. >>>>>>>> >>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments >>>>>>>> are proprietary and confidential information protected from disclosure >>>>>>>> and intended only for the use of the recipient(s) named above. If the >>>>>>>> reader of this message is not the intended recipient, or an employee >>>>>>>> or agent responsible for delivering this message to the intended >>>>>>>> recipient, you are hereby notified that any dissemination, >>>>>>>> distribution or copying of this message or any attachments is strictly >>>>>>>> prohibited. If you have received this communication in error, please >>>>>>>> notify CardConnect immediately by replying to this message and then >>>>>>>> delete this message and any attachments from your computer. >>>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments >>>>>>>> are proprietary and confidential information protected from disclosure >>>>>>>> and intended only for the use of the recipient(s) named above. If the >>>>>>>> reader of this message is not the intended recipient, or an employee >>>>>>>> or agent responsible for delivering this message to the intended >>>>>>>> recipient, you are hereby notified that any dissemination, >>>>>>>> distribution or copying of this message or any attachments is strictly >>>>>>>> prohibited. If you have received this communication in error, please >>>>>>>> notify CardConnect immediately by replying to this message and then >>>>>>>> delete this message and any attachments from your computer. >>>>>>> >>>>>>> >>>>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments >>>>>>> are proprietary and confidential information protected from disclosure >>>>>>> and intended only for the use of the recipient(s) named above. If the >>>>>>> reader of this message is not the intended recipient, or an employee or >>>>>>> agent responsible for delivering this message to the intended >>>>>>> recipient, you are hereby notified that any dissemination, distribution >>>>>>> or copying of this message or any attachments is strictly prohibited. >>>>>>> If you have received this communication in error, please notify >>>>>>> CardConnect immediately by replying to this message and then delete >>>>>>> this message and any attachments from your computer. >>>>>> >>>>> >>>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are >>>>> proprietary and confidential information protected from disclosure and >>>>> intended only for the use of the recipient(s) named above. If the reader >>>>> of this message is not the intended recipient, or an employee or agent >>>>> responsible for delivering this message to the intended recipient, you >>>>> are hereby notified that any dissemination, distribution or copying of >>>>> this message or any attachments is strictly prohibited. If you have >>>>> received this communication in error, please notify CardConnect >>>>> immediately by replying to this message and then delete this message and >>>>> any attachments from your computer. >>>> >>>> >>>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are >>>> proprietary and confidential information protected from disclosure and >>>> intended only for the use of the recipient(s) named above. If the reader >>>> of this message is not the intended recipient, or an employee or agent >>>> responsible for delivering this message to the intended recipient, you are >>>> hereby notified that any dissemination, distribution or copying of this >>>> message or any attachments is strictly prohibited. If you have received >>>> this communication in error, please notify CardConnect immediately by >>>> replying to this message and then delete this message and any attachments >>>> from your computer. >>> >>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are >>> proprietary and confidential information protected from disclosure and >>> intended only for the use of the recipient(s) named above. If the reader of >>> this message is not the intended recipient, or an employee or agent >>> responsible for delivering this message to the intended recipient, you are >>> hereby notified that any dissemination, distribution or copying of this >>> message or any attachments is strictly prohibited. If you have received >>> this communication in error, please notify CardConnect immediately by >>> replying to this message and then delete this message and any attachments >>> from your computer. >>> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are >>> proprietary and confidential information protected from disclosure and >>> intended only for the use of the recipient(s) named above. If the reader of >>> this message is not the intended recipient, or an employee or agent >>> responsible for delivering this message to the intended recipient, you are >>> hereby notified that any dissemination, distribution or copying of this >>> message or any attachments is strictly prohibited. If you have received >>> this communication in error, please notify CardConnect immediately by >>> replying to this message and then delete this message and any attachments >>> from your computer. >> >> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are >> proprietary and confidential information protected from disclosure and >> intended only for the use of the recipient(s) named above. If the reader of >> this message is not the intended recipient, or an employee or agent >> responsible for delivering this message to the intended recipient, you are >> hereby notified that any dissemination, distribution or copying of this >> message or any attachments is strictly prohibited. If you have received this >> communication in error, please notify CardConnect immediately by replying to >> this message and then delete this message and any attachments from your >> computer. >> THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are >> proprietary and confidential information protected from disclosure and >> intended only for the use of the recipient(s) named above. If the reader of >> this message is not the intended recipient, or an employee or agent >> responsible for delivering this message to the intended recipient, you are >> hereby notified that any dissemination, distribution or copying of this >> message or any attachments is strictly prohibited. If you have received this >> communication in error, please notify CardConnect immediately by replying to >> this message and then delete this message and any attachments from your >> computer. > > THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are > proprietary and confidential information protected from disclosure and > intended only for the use of the recipient(s) named above. If the reader of > this message is not the intended recipient, or an employee or agent > responsible for delivering this message to the intended recipient, you are > hereby notified that any dissemination, distribution or copying of this > message or any attachments is strictly prohibited. If you have received this > communication in error, please notify CardConnect immediately by replying to > this message and then delete this message and any attachments from your > computer. > THIS MESSAGE IS CONFIDENTIAL. This e-mail message and any attachments are > proprietary and confidential information protected from disclosure and > intended only for the use of the recipient(s) named above. If the reader of > this message is not the intended recipient, or an employee or agent > responsible for delivering this message to the intended recipient, you are > hereby notified that any dissemination, distribution or copying of this > message or any attachments is strictly prohibited. If you have received this > communication in error, please notify CardConnect immediately by replying to > this message and then delete this message and any attachments from your > computer.
