server side defaults and composites

Issue #2309 resolved
Mike Bayer repo owner created an issue
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

Base= declarative_base()


class MyComposite(object):
    def __init__(self, datax, datay):
        self.datax = datax
        self.datay = datay
    def __composite_values__(self):
        return self.datax, self.datay

class A(Base):
    __tablename__ = "a"

    id = Column(Integer, primary_key=True)
    x = Column(Integer, server_default="9")
    y = Column(Integer, default=10)
    value = composite(MyComposite, x, y)

e = create_engine('sqlite://', echo=True)
Base.metadata.create_all(e)
s = Session(e)
a1 = A(value=MyComposite(None, None))
s.add(a1)
s.flush()

assert a1.value.datay == 10
assert a1.value.datax == 9

the fix for #2308 will also get this one

Comments (2)

  1. Log in to comment