Mike, you are a rock star! Thanks so much for all of the help. It worked 
after we changed it like you said above. While we must keep the case 
sensitivity to True for now, that's fine for us for now. Thank you so much 
for your help! 

On Tuesday, April 5, 2016 at 2:28:50 PM UTC-4, Mike Bayer wrote:
>
>
>
> On 04/05/2016 02:15 PM, Douglas Eisenstein wrote: 
> > Thanks Mike for the response and issue creation. So, I've set that case 
> > sensitivity option to True, and we're getting another issue (edge case?) 
> > whereby when we reflect a single table we are doing 
> > 
> > Table(metadata=self._metadata,schema=namespace,name=name) 
>
> There's a metaclass constructor on Table that might be getting thrown 
> off by the way you're specifying the "name" argument.  Can you specify 
> that positionally (as well as the metadata argument) ? 
>
>
>
> > 
> > 
> > When this is ran I get: 
> > 
> >  >>> Table(metadata=self._metadata, schema=namespace, name=name) 
> > Out[8]: Traceback (most recent call last): 
> >    File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py", 
>
> > line 222, in catch_format_error 
> >      r = method(self, *args, **kwargs) 
> >    File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py", 
>
> > line 699, in __call__ 
> >      printer.pretty(obj) 
> >    File 
> > "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/lib/pretty.py", 
> > line 383, in pretty 
> >      return _default_pprint(obj, self, cycle) 
> >    File 
> > "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/lib/pretty.py", 
> > line 503, in _default_pprint 
> >      _repr_pprint(obj, p, cycle) 
> >    File 
> > "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/lib/pretty.py", 
> > line 694, in _repr_pprint 
> >      output = repr(obj) 
> >    File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/sqlalchemy/sql/schema.py", 
> > line 604, in __repr__ 
> >      [repr(x) for x in self.columns] + 
> > AttributeError: 'Table' object has no attribute 'name' 
> > 
> > Upon debugging this further, I see the following: 
> >  >>> self 
> > Out[9]: Traceback (most recent call last): 
> >    File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py", 
>
> > line 222, in catch_format_error 
> >      r = method(self, *args, **kwargs) 
> >    File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py", 
>
> > line 699, in __call__ 
> >      printer.pretty(obj) 
> >    File 
> > "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/lib/pretty.py", 
> > line 383, in pretty 
> >      return _default_pprint(obj, self, cycle) 
> >    File 
> > "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/lib/pretty.py", 
> > line 503, in _default_pprint 
> >      _repr_pprint(obj, p, cycle) 
> >    File 
> > "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/lib/pretty.py", 
> > line 694, in _repr_pprint 
> >      output = repr(obj) 
> >    File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/sqlalchemy/sql/schema.py", 
> > line 604, in __repr__ 
> >      [repr(x) for x in self.columns] + 
> > AttributeError: 'Table' object has no attribute 'name' 
> > 
> > I've noticed something strange, not sure if it has to do with any of 
> > this, but thought I'd ask... I notice that the quote variable in 
> > _metadata had an error embedded into it in PyCharm, here's what it 
> says... 
> > 
> >>>> self._metadata.quote  Traceback (most recent call last): File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py",
>  
>
> > line 2885, in run_code exec(code_obj, self.user_global_ns, self.user_ns) 
> > File "<ipython-input-6-0723793fe042>", line 1, in <module> 
> > self._metadata.quote File "<string>", line 2, in quote File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/sqlalchemy/util/deprecations.py",
>  
>
> > line 106, in warned return fn(*args, **kwargs) File 
> > 
> "/Users/adv/anaconda/lib/python2.7/site-packages/sqlalchemy/sql/schema.py", 
> > line 90, in quote return self.name.quote AttributeError: 'MetaData' 
> > object has no attribute 'name' 
> > 
> > 
> > Any ideas? 
> > 
> > 
> > 
> > On Monday, April 4, 2016 at 11:12:11 PM UTC-4, Mike Bayer wrote: 
> > 
> > 
> > 
> >     On 04/04/2016 06:10 PM, Douglas Eisenstein wrote: 
> >      > Hi, 
> >      > 
> >      > Here's the situation, we're trying to reflect tables from SQL 
> Server 
> >      > into metadata, and we're encountering a problem of case 
> >     sensitivity, in 
> >      > particular when it executes the following query: 
> >      > SELECT [C].[COLUMN_NAME], [R].[TABLE_SCHEMA], [R].[TABLE_NAME], 
> >      > [R].[COLUMN_NAME], [REFERENTIAL_CONSTRAINTS_1].[CONSTRAINT_NAME], 
> >      > [REFERENTIAL_CONSTRAINTS_1].[MATCH_OPTION], 
> >      > [REFERENTIAL_CONSTRAINTS_1].[UPDATE_RULE], 
> >      > [REFERENTIAL_CONSTRAINTS_1].[DELETE_RULE] 
> >      > FROM [INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] AS [C], 
> >      > [INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] AS [R], 
> >      > [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS] AS 
> >      > [REFERENTIAL_CONSTRAINTS_1] 
> >      > WHERE [C].[TABLE_NAME] = CAST(%(table_name_1)s AS NVARCHAR(max)) 
> AND 
> >      > [C].[TABLE_SCHEMA] = CAST(%(table_schema_1)s AS NVARCHAR(max)) 
> AND 
> >      > [C].[CONSTRAINT_NAME] = 
> >     [REFERENTIAL_CONSTRAINTS_1].[CONSTRAINT_NAME] 
> >      > AND [R].[CONSTRAINT_NAME] = 
> >      > [REFERENTIAL_CONSTRAINTS_1].[UNIQUE_CONSTRAINT_NAME] AND 
> >      > [C].[ORDINAL_POSITION] = [R].[ORDINAL_POSITION] ORDER BY 
> >      > [REFERENTIAL_CONSTRAINTS_1].[CONSTRAINT_NAME], 
> >     [R].[ORDINAL_POSITION] 
> >      > 
> >      > The issue is that when we have case sensitivity set to False, it 
> >     runs 
> >      > this statement below (probably because there are two columns 
> >     names in 
> >      > the result set that are the same name ([C].[COLUMN_NAME], .... 
> >      >   [R].[COLUMN_NAME]) and we're getting an error on "by_key[key]" 
> >     that 
> >      > the key doesn't exist (and by_key.keys() returns a list of all 
> >     UPPERCASE 
> >      > keys, while it looks like the code is expecting all lowercase 
> keys). 
> > 
> >     It seems there's a bug in 1.0 (also in 1.1 but with fewer symptoms 
> than 
> >     this) if you set case_sensitive=False on create_engine() with 
> >     regards to 
> >     result sets that have duplicate non-lower-case columns in them. 
> >     
> https://bitbucket.org/zzzeek/sqlalchemy/issues/3690/dupe-col-logic-when-case-sensitive-is
>  
> >     <
> https://bitbucket.org/zzzeek/sqlalchemy/issues/3690/dupe-col-logic-when-case-sensitive-is>
>  
>
> > 
> >     is added. 
> > 
> > 
> >     If 
> >      > we set the case sensitivity to True then it works perfectly fine 
> >     (but we 
> >      > don't want that set across the board for obvious reasons). 
> > 
> >     This flag only refers to column names and typically only impacts 
> things 
> >     when you're using Core and targeting at result row values directly 
> with 
> >     string keys.  Typically there's no real need to set this flag, as 
> the 
> >     comment states it was there to work around some old edge cases with 
> >     Oracle and Firebird.   I'd shoot for keeping the flag set to True. 
> > 
> > 
> > 
> > 
> > 
> >      > 
> >      > The issue is when this code result.py 
> >      > 
> >      > if len(by_key)!= num_ctx_cols: 
> >      > seen= set() 
> >      >      for recin raw: 
> >      > key= rec[1] 
> >      >          if keyin seen: 
> >      > by_key[key]= (None, by_key[key][1],None) 
> >      >          seen.add(key) 
> >      > 
> >      > 
> >      > We're using: 
> >      > Microsoft SQL Server 2012 (SP1) - 11.0.3381.0 (X64) 
> >      > Aug 23 2013 20:08:13 
> >      > Copyright (c) Microsoft Corporation 
> >      > Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: 
> ) 
> >      > (Hypervisor) 
> >      > 
> >      > pymssql (2.1.2) 
> >      > 
> >      > SQLAlchemy (1.0.12). 
> >      > 
> >      > We've read this article that seems to refer to the kind of 
> >     problem we're 
> >      > running into, but this resolution didn't seem to help us... 
> >      > 
> >     
> https://bitbucket.org/zzzeek/sqlalchemy/commits/87bbba32bc54fa0253e9c81663df669dc355f5da
>  
> >     <
> https://bitbucket.org/zzzeek/sqlalchemy/commits/87bbba32bc54fa0253e9c81663df669dc355f5da>
>  
>
> > 
> >      > 
> >      > -- 
> >      > You received this message because you are subscribed to the 
> Google 
> >      > Groups "sqlalchemy" group. 
> >      > To unsubscribe from this group and stop receiving emails from it, 
> >     send 
> >      > an email to sqlalchemy+...@googlegroups.com <javascript:> 
> >      > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:> 
> <javascript:>>. 
> >      > To post to this group, send email to sqlal...@googlegroups.com 
> >     <javascript:> 
> >      > <mailto:sqlal...@googlegroups.com <javascript:>>. 
> >      > Visit this group at https://groups.google.com/group/sqlalchemy 
> >     <https://groups.google.com/group/sqlalchemy>. 
> >      > For more options, visit https://groups.google.com/d/optout 
> >     <https://groups.google.com/d/optout>. 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "sqlalchemy" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> > an email to sqlalchemy+...@googlegroups.com <javascript:> 
> > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:> 
> > <mailto:sqlal...@googlegroups.com <javascript:>>. 
> > Visit this group at https://groups.google.com/group/sqlalchemy. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to