- sql
- got connection-bound metadata to work with implicit execution
- cleanup to connection-bound sessions, SessionTransaction
+ - foreign key specs can have any chararcter in their identifiers
+ [ticket:667]
+
- postgres
- fixed max identifier length (63) [ticket:571]
break
else:
raise exceptions.ArgumentError("Parent column '%s' does not descend from a table-attached Column" % str(self.parent))
- m = re.match(r"^([\w_-]+)(?:\.([\w_-]+))?(?:\.([\w_-]+))?$", self._colspec, re.UNICODE)
+ m = re.match(r"^(.+?)(?:\.(.+?))?(?:\.(.+?))?$", self._colspec, re.UNICODE)
if m is None:
raise exceptions.ArgumentError("Invalid foreign key column specification: " + self._colspec)
if m.group(3) is None:
finally:
m1.drop_all()
+ @testbase.supported('postgres')
+ def test_pg_weirdchar_reflection(self):
+ meta1 = MetaData(testbase.db)
+ subject = Table("subject", meta1,
+ Column("id$", Integer, primary_key=True),
+ )
+
+ referer = Table("referer", meta1,
+ Column("id", Integer, primary_key=True),
+ Column("ref", Integer, ForeignKey('subject.id$')),
+ )
+ meta1.create_all()
+ try:
+ meta2 = MetaData(testbase.db)
+ subject = Table("subject", meta2, autoload=True)
+ referer = Table("referer", meta2, autoload=True)
+ print str(subject.join(referer).onclause)
+ self.assert_((subject.c['id$']==referer.c.ref).compare(subject.join(referer).onclause))
+ finally:
+ meta1.drop_all()
+
@testbase.supported('postgres')
def test_checksfor_sequence(self):
meta1 = MetaData(testbase.db)