Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
Hi Francis, I don’t know if you’ve tried it by there are two other python modules: drillpy and pydrill which use Drill’s RESTFul interface and I’ve found them to work a lot better. — C > On Mar 20, 2018, at 17:16, Francis McGregor-Macdonald <fran...@mc-mac.com> > wrote: > > Hi Kunal, > > I did find: > https://github.com/baztian/jaydebeapi/commit/a1f8d3c3b4621570065d968b4b734bae3f0eaf79 > which suggests that this may be already being worked on. I'm not sure if it > would cover this use case though. I posted a question on the commit which > hopefully gets an answer. > > > > On Tue, Mar 20, 2018 at 5:45 PM, Kunal Khatua <kunalkha...@gmail.com> wrote: > >> Francis >> >> I'm certain this is the result of JayDeBeApi using the preparedStatement >> command. (DRILL-5316. See the comments in the JIRA) >> >> I was thinking of creating a fork and using the standard >> Connection.getStatement() API instead, before compiling. However, I'm >> currently on a time crunch and my Python skills are a bit rusty. Hoping >> someone in the community can step forward and take a crack at this. >> >> ~ KK >> >> >> On 3/19/2018 7:30:49 PM, Francis McGregor-Macdonald <fran...@mc-mac.com> >> wrote: >> Thanks Kunal and Charles, >> >> I rebuilt the script / environment inside a container to see if I could >> replicate and I have the same result. >> >> The container is running on an EC2 "next to" the cluster. >> >> Charles was there any additional configuration you had done? >> >> I have in the Dockerfile: >> ... >> conda install -c conda-forge jpype1 -q && \ >> conda install pip -q && \ >> pip install jaydebeapi -q && \ >> ... >> >> I am only loading the single jar into the container, I additionally get: >> "SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"." ... >> when >> running the script. >> >> I can see suggestions this might be related to "Prepared Statements" but >> can't find anything definitive. >> >> >> >> On Mon, Mar 19, 2018 at 6:16 PM, Kunal Khatua wrote: >> >>> This error looks familiar and might be because of the Python library >>> wrapping a select * around the original query. >>> >>> Using the JDBC driver directly doesn’t seem to show this problem. Drill >>> 1.13.0 is out now. Could you give a try with that and confirm if the >>> behavior is the same? >>> >>> -Original Message- >>> From: Charles Givre >>> Sent: Sunday, March 18, 2018 9:10 PM >>> To: user@drill.apache.org >>> Subject: Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... >>> LIMIT 0 >>> >>> Hi Francis, >>> >>> >>> The code below worked for me. Also, I don’t know if it matters, but did >>> you mean to create two cursors? >>> — C >>> >>> import jaydebeapi >>> import pandas as pd >>> >>> #Create the connection object >>> conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", >>> "jdbc:drill:drillbit=localhost:31010", >>> ["admin", "password"], >>> "/usr/local/share/drill/jars/ >>> jdbc-driver/drill-jdbc-all-1.12.0.jar",) >>> >>> #Create the Cursor Object >>> curs = conn.cursor() >>> >>> #Execute the query >>> curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") >>> >>> #Get the results >>> curs.fetchall() >>> >>> #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * >>> FROM cp.`employee.json` LIMIT 20", conn) >>> >>> >>> >>> >>> >>>> On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald >>> fran...@mc-mac.com> wrote: >>>> >>>> Hi all, >>>> >>>> I am attempting to send a query from python3 via JayDeBeApi and am >>>> encountering the issue that the SQL is enclosed in a SELECT * FROM >>>> $myquery LIMIT 0 >>>> >>>> With: >>>> conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", >>>> "jdbc:drill:drillbit=$mycluster:$myport", >>>> ["$username", "$password"], >>>> "/tmp/drill-jdbc-all-1.12.0.jar") >>>> curs = conn.cursor() >>>> curs = conn.cursor() >>>> curs.execute('SHOW DATABASES') >>>> >>>> ... the query hits Drill as: >>>> SELECT * FROM (SHOW DATABASES) LIMIT 0 >>>> >>>> A select * from mytable limit 100 also has the same issue. >>>> >>>> Drill is version 1.12 >>>> >>>> This also occurs with other queries. I found >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org >>>> _jira_browse_DRILL-2D5136=DwIFaQ=cskdkSMqhcnjZxdQVpwTXg=-cT6otg6 >>>> lpT_XkmYy7yg3A=P8xoBFS297Ln7VimEBQXJDYYFIdoiHRELssI6Cnf4IM=6S6F2Zp >>>> p92kNVbtDDuGR29X21JjbNNnn6FZWibbd-gk= which looks similar and lists >>>> "Client - ODBC" (not JDBC) >>>> >>>> Has anyone else encountered this? >>> >>> >>
Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
Hi Kunal, I did find: https://github.com/baztian/jaydebeapi/commit/a1f8d3c3b4621570065d968b4b734bae3f0eaf79 which suggests that this may be already being worked on. I'm not sure if it would cover this use case though. I posted a question on the commit which hopefully gets an answer. On Tue, Mar 20, 2018 at 5:45 PM, Kunal Khatua <kunalkha...@gmail.com> wrote: > Francis > > I'm certain this is the result of JayDeBeApi using the preparedStatement > command. (DRILL-5316. See the comments in the JIRA) > > I was thinking of creating a fork and using the standard > Connection.getStatement() API instead, before compiling. However, I'm > currently on a time crunch and my Python skills are a bit rusty. Hoping > someone in the community can step forward and take a crack at this. > > ~ KK > > > On 3/19/2018 7:30:49 PM, Francis McGregor-Macdonald <fran...@mc-mac.com> > wrote: > Thanks Kunal and Charles, > > I rebuilt the script / environment inside a container to see if I could > replicate and I have the same result. > > The container is running on an EC2 "next to" the cluster. > > Charles was there any additional configuration you had done? > > I have in the Dockerfile: > ... > conda install -c conda-forge jpype1 -q && \ > conda install pip -q && \ > pip install jaydebeapi -q && \ > ... > > I am only loading the single jar into the container, I additionally get: > "SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"." ... > when > running the script. > > I can see suggestions this might be related to "Prepared Statements" but > can't find anything definitive. > > > > On Mon, Mar 19, 2018 at 6:16 PM, Kunal Khatua wrote: > > > This error looks familiar and might be because of the Python library > > wrapping a select * around the original query. > > > > Using the JDBC driver directly doesn’t seem to show this problem. Drill > > 1.13.0 is out now. Could you give a try with that and confirm if the > > behavior is the same? > > > > -Original Message- > > From: Charles Givre > > Sent: Sunday, March 18, 2018 9:10 PM > > To: user@drill.apache.org > > Subject: Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... > > LIMIT 0 > > > > Hi Francis, > > > > > > The code below worked for me. Also, I don’t know if it matters, but did > > you mean to create two cursors? > > — C > > > > import jaydebeapi > > import pandas as pd > > > > #Create the connection object > > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > > "jdbc:drill:drillbit=localhost:31010", > > ["admin", "password"], > > "/usr/local/share/drill/jars/ > > jdbc-driver/drill-jdbc-all-1.12.0.jar",) > > > > #Create the Cursor Object > > curs = conn.cursor() > > > > #Execute the query > > curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") > > > > #Get the results > > curs.fetchall() > > > > #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * > > FROM cp.`employee.json` LIMIT 20", conn) > > > > > > > > > > > > > On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald > > fran...@mc-mac.com> wrote: > > > > > > Hi all, > > > > > > I am attempting to send a query from python3 via JayDeBeApi and am > > > encountering the issue that the SQL is enclosed in a SELECT * FROM > > > $myquery LIMIT 0 > > > > > > With: > > > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > > > "jdbc:drill:drillbit=$mycluster:$myport", > > > ["$username", "$password"], > > > "/tmp/drill-jdbc-all-1.12.0.jar") > > > curs = conn.cursor() > > > curs = conn.cursor() > > > curs.execute('SHOW DATABASES') > > > > > > ... the query hits Drill as: > > > SELECT * FROM (SHOW DATABASES) LIMIT 0 > > > > > > A select * from mytable limit 100 also has the same issue. > > > > > > Drill is version 1.12 > > > > > > This also occurs with other queries. I found > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org > > > _jira_browse_DRILL-2D5136=DwIFaQ=cskdkSMqhcnjZxdQVpwTXg=-cT6otg6 > > > lpT_XkmYy7yg3A=P8xoBFS297Ln7VimEBQXJDYYFIdoiHRELssI6Cnf4IM=6S6F2Zp > > > p92kNVbtDDuGR29X21JjbNNnn6FZWibbd-gk= which looks similar and lists > > > "Client - ODBC" (not JDBC) > > > > > > Has anyone else encountered this? > > > > >
Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
Francis I'm certain this is the result of JayDeBeApi using the preparedStatement command. (DRILL-5316. See the comments in the JIRA) I was thinking of creating a fork and using the standard Connection.getStatement() API instead, before compiling. However, I'm currently on a time crunch and my Python skills are a bit rusty. Hoping someone in the community can step forward and take a crack at this. ~ KK On 3/19/2018 7:30:49 PM, Francis McGregor-Macdonald <fran...@mc-mac.com> wrote: Thanks Kunal and Charles, I rebuilt the script / environment inside a container to see if I could replicate and I have the same result. The container is running on an EC2 "next to" the cluster. Charles was there any additional configuration you had done? I have in the Dockerfile: ... conda install -c conda-forge jpype1 -q && \ conda install pip -q && \ pip install jaydebeapi -q && \ ... I am only loading the single jar into the container, I additionally get: "SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"." ... when running the script. I can see suggestions this might be related to "Prepared Statements" but can't find anything definitive. On Mon, Mar 19, 2018 at 6:16 PM, Kunal Khatua wrote: > This error looks familiar and might be because of the Python library > wrapping a select * around the original query. > > Using the JDBC driver directly doesn’t seem to show this problem. Drill > 1.13.0 is out now. Could you give a try with that and confirm if the > behavior is the same? > > -Original Message- > From: Charles Givre > Sent: Sunday, March 18, 2018 9:10 PM > To: user@drill.apache.org > Subject: Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... > LIMIT 0 > > Hi Francis, > > > The code below worked for me. Also, I don’t know if it matters, but did > you mean to create two cursors? > — C > > import jaydebeapi > import pandas as pd > > #Create the connection object > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > "jdbc:drill:drillbit=localhost:31010", > ["admin", "password"], > "/usr/local/share/drill/jars/ > jdbc-driver/drill-jdbc-all-1.12.0.jar",) > > #Create the Cursor Object > curs = conn.cursor() > > #Execute the query > curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") > > #Get the results > curs.fetchall() > > #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * > FROM cp.`employee.json` LIMIT 20", conn) > > > > > > > On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald > fran...@mc-mac.com> wrote: > > > > Hi all, > > > > I am attempting to send a query from python3 via JayDeBeApi and am > > encountering the issue that the SQL is enclosed in a SELECT * FROM > > $myquery LIMIT 0 > > > > With: > > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > > "jdbc:drill:drillbit=$mycluster:$myport", > > ["$username", "$password"], > > "/tmp/drill-jdbc-all-1.12.0.jar") > > curs = conn.cursor() > > curs = conn.cursor() > > curs.execute('SHOW DATABASES') > > > > ... the query hits Drill as: > > SELECT * FROM (SHOW DATABASES) LIMIT 0 > > > > A select * from mytable limit 100 also has the same issue. > > > > Drill is version 1.12 > > > > This also occurs with other queries. I found > > https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org > > _jira_browse_DRILL-2D5136=DwIFaQ=cskdkSMqhcnjZxdQVpwTXg=-cT6otg6 > > lpT_XkmYy7yg3A=P8xoBFS297Ln7VimEBQXJDYYFIdoiHRELssI6Cnf4IM=6S6F2Zp > > p92kNVbtDDuGR29X21JjbNNnn6FZWibbd-gk= which looks similar and lists > > "Client - ODBC" (not JDBC) > > > > Has anyone else encountered this? > >
Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
Thanks Kunal and Charles, I rebuilt the script / environment inside a container to see if I could replicate and I have the same result. The container is running on an EC2 "next to" the cluster. Charles was there any additional configuration you had done? I have in the Dockerfile: ... conda install -c conda-forge jpype1 -q && \ conda install pip -q && \ pip install jaydebeapi -q && \ ... I am only loading the single jar into the container, I additionally get: "SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"." ... when running the script. I can see suggestions this might be related to "Prepared Statements" but can't find anything definitive. On Mon, Mar 19, 2018 at 6:16 PM, Kunal Khatua <kkha...@mapr.com> wrote: > This error looks familiar and might be because of the Python library > wrapping a select * around the original query. > > Using the JDBC driver directly doesn’t seem to show this problem. Drill > 1.13.0 is out now. Could you give a try with that and confirm if the > behavior is the same? > > -Original Message- > From: Charles Givre <cgi...@gmail.com> > Sent: Sunday, March 18, 2018 9:10 PM > To: user@drill.apache.org > Subject: Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... > LIMIT 0 > > Hi Francis, > > > The code below worked for me. Also, I don’t know if it matters, but did > you mean to create two cursors? > — C > > import jaydebeapi > import pandas as pd > > #Create the connection object > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > "jdbc:drill:drillbit=localhost:31010", > ["admin", "password"], > "/usr/local/share/drill/jars/ > jdbc-driver/drill-jdbc-all-1.12.0.jar",) > > #Create the Cursor Object > curs = conn.cursor() > > #Execute the query > curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") > > #Get the results > curs.fetchall() > > #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * > FROM cp.`employee.json` LIMIT 20", conn) > > > > > > > On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald < > fran...@mc-mac.com> wrote: > > > > Hi all, > > > > I am attempting to send a query from python3 via JayDeBeApi and am > > encountering the issue that the SQL is enclosed in a SELECT * FROM > > $myquery LIMIT 0 > > > > With: > > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > > "jdbc:drill:drillbit=$mycluster:$myport", > > ["$username", "$password"], > > "/tmp/drill-jdbc-all-1.12.0.jar") > > curs = conn.cursor() > > curs = conn.cursor() > > curs.execute('SHOW DATABASES') > > > > ... the query hits Drill as: > > SELECT * FROM (SHOW DATABASES) LIMIT 0 > > > > A select * from mytable limit 100 also has the same issue. > > > > Drill is version 1.12 > > > > This also occurs with other queries. I found > > https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org > > _jira_browse_DRILL-2D5136=DwIFaQ=cskdkSMqhcnjZxdQVpwTXg=-cT6otg6 > > lpT_XkmYy7yg3A=P8xoBFS297Ln7VimEBQXJDYYFIdoiHRELssI6Cnf4IM=6S6F2Zp > > p92kNVbtDDuGR29X21JjbNNnn6FZWibbd-gk= which looks similar and lists > > "Client - ODBC" (not JDBC) > > > > Has anyone else encountered this? > >
RE: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
I'm actually seeing this with JayDeBeApi on Drill 1.13 JDBC driver as well. However, the Drill 1.13 JDBC driver, when used by itself, doesn't issue such a request. I'll need to see if JayDeBeApi is indeed putting a wrapper around non-select queries and a way to disable that. On 3/18/2018 10:16:19 PM, Kunal Khatua <kkha...@mapr.com> wrote: This error looks familiar and might be because of the Python library wrapping a select * around the original query. Using the JDBC driver directly doesn’t seem to show this problem. Drill 1.13.0 is out now. Could you give a try with that and confirm if the behavior is the same? -Original Message- From: Charles Givre Sent: Sunday, March 18, 2018 9:10 PM To: user@drill.apache.org Subject: Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0 Hi Francis, The code below worked for me. Also, I don’t know if it matters, but did you mean to create two cursors? — C import jaydebeapi import pandas as pd #Create the connection object conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", "jdbc:drill:drillbit=localhost:31010", ["admin", "password"], "/usr/local/share/drill/jars/jdbc-driver/drill-jdbc-all-1.12.0.jar",) #Create the Cursor Object curs = conn.cursor() #Execute the query curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") #Get the results curs.fetchall() #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * FROM cp.`employee.json` LIMIT 20", conn) > On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald wrote: > > Hi all, > > I am attempting to send a query from python3 via JayDeBeApi and am > encountering the issue that the SQL is enclosed in a SELECT * FROM > $myquery LIMIT 0 > > With: > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > "jdbc:drill:drillbit=$mycluster:$myport", > ["$username", "$password"], > "/tmp/drill-jdbc-all-1.12.0.jar") > curs = conn.cursor() > curs = conn.cursor() > curs.execute('SHOW DATABASES') > > ... the query hits Drill as: > SELECT * FROM (SHOW DATABASES) LIMIT 0 > > A select * from mytable limit 100 also has the same issue. > > Drill is version 1.12 > > This also occurs with other queries. I found > https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org > _jira_browse_DRILL-2D5136=DwIFaQ=cskdkSMqhcnjZxdQVpwTXg=-cT6otg6 > lpT_XkmYy7yg3A=P8xoBFS297Ln7VimEBQXJDYYFIdoiHRELssI6Cnf4IM=6S6F2Zp > p92kNVbtDDuGR29X21JjbNNnn6FZWibbd-gk= which looks similar and lists > "Client - ODBC" (not JDBC) > > Has anyone else encountered this?
RE: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
This error looks familiar and might be because of the Python library wrapping a select * around the original query. Using the JDBC driver directly doesn’t seem to show this problem. Drill 1.13.0 is out now. Could you give a try with that and confirm if the behavior is the same? -Original Message- From: Charles Givre <cgi...@gmail.com> Sent: Sunday, March 18, 2018 9:10 PM To: user@drill.apache.org Subject: Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0 Hi Francis, The code below worked for me. Also, I don’t know if it matters, but did you mean to create two cursors? — C import jaydebeapi import pandas as pd #Create the connection object conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", "jdbc:drill:drillbit=localhost:31010", ["admin", "password"], "/usr/local/share/drill/jars/jdbc-driver/drill-jdbc-all-1.12.0.jar",) #Create the Cursor Object curs = conn.cursor() #Execute the query curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") #Get the results curs.fetchall() #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * FROM cp.`employee.json` LIMIT 20", conn) > On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald <fran...@mc-mac.com> > wrote: > > Hi all, > > I am attempting to send a query from python3 via JayDeBeApi and am > encountering the issue that the SQL is enclosed in a SELECT * FROM > $myquery LIMIT 0 > > With: > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > "jdbc:drill:drillbit=$mycluster:$myport", > ["$username", "$password"], > "/tmp/drill-jdbc-all-1.12.0.jar") > curs = conn.cursor() > curs = conn.cursor() > curs.execute('SHOW DATABASES') > > ... the query hits Drill as: > SELECT * FROM (SHOW DATABASES) LIMIT 0 > > A select * from mytable limit 100 also has the same issue. > > Drill is version 1.12 > > This also occurs with other queries. I found > https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.org > _jira_browse_DRILL-2D5136=DwIFaQ=cskdkSMqhcnjZxdQVpwTXg=-cT6otg6 > lpT_XkmYy7yg3A=P8xoBFS297Ln7VimEBQXJDYYFIdoiHRELssI6Cnf4IM=6S6F2Zp > p92kNVbtDDuGR29X21JjbNNnn6FZWibbd-gk= which looks similar and lists > "Client - ODBC" (not JDBC) > > Has anyone else encountered this?
Re: QSQL via jdbc (python3 and JayDeBeApi) wraps with SELECT ... LIMIT 0
Hi Francis, The code below worked for me. Also, I don’t know if it matters, but did you mean to create two cursors? — C import jaydebeapi import pandas as pd #Create the connection object conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", "jdbc:drill:drillbit=localhost:31010", ["admin", "password"], "/usr/local/share/drill/jars/jdbc-driver/drill-jdbc-all-1.12.0.jar",) #Create the Cursor Object curs = conn.cursor() #Execute the query curs.execute("SELECT * FROM cp.`employee.json` LIMIT 20") #Get the results curs.fetchall() #Read query results into a Pandas DataFrame df = pd.read_sql("SELECT * FROM cp.`employee.json` LIMIT 20", conn) > On Mar 18, 2018, at 23:41, Francis McGregor-Macdonald> wrote: > > Hi all, > > I am attempting to send a query from python3 via JayDeBeApi and am > encountering the issue that the SQL is enclosed in a SELECT * FROM $myquery > LIMIT 0 > > With: > conn = jaydebeapi.connect("org.apache.drill.jdbc.Driver", > "jdbc:drill:drillbit=$mycluster:$myport", > ["$username", "$password"], > "/tmp/drill-jdbc-all-1.12.0.jar") > curs = conn.cursor() > curs = conn.cursor() > curs.execute('SHOW DATABASES') > > ... the query hits Drill as: > SELECT * FROM (SHOW DATABASES) LIMIT 0 > > A select * from mytable limit 100 also has the same issue. > > Drill is version 1.12 > > This also occurs with other queries. I found > https://issues.apache.org/jira/browse/DRILL-5136 which looks similar and > lists "Client - ODBC" (not JDBC) > > Has anyone else encountered this?