lib/og/store/psql.rb in og-0.21.2 vs lib/og/store/psql.rb in og-0.22.0
- old
+ new
@@ -130,11 +130,15 @@
klass.const_set 'OGSEQ', "#{table(sclass.first)}_oid_seq"
else
klass.const_set 'OGSEQ', "#{table(klass)}_oid_seq"
end
- klass.property :oid, Fixnum, :sql => 'serial PRIMARY KEY'
+ if klass.metadata.primary_key.flatten.first == :oid
+ unless klass.properties.find { |p| p.symbol == :oid }
+ klass.property :oid, Fixnum, :sql => 'serial PRIMARY KEY'
+ end
+ end
super
end
def query(sql)
Logger.debug sql if $DBG
@@ -276,10 +280,10 @@
if klass.metadata.superclass or klass.metadata.subclasses
props << Property.new(:ogtype, String)
values << ", '#{klass}'"
end
- sql = "INSERT INTO #{klass::OGTABLE} (#{props.collect {|p| p.symbol.to_s}.join(',')}) VALUES (#{values})"
+ sql = "INSERT INTO #{klass::OGTABLE} (#{props.collect {|p| field_for_property(p)}.join(',')}) VALUES (#{values})"
klass.class_eval %{
def og_insert(store)
#{Aspects.gen_advice_code(:og_insert, klass.advices, :pre) if klass.respond_to?(:advices)}
res = store.conn.exec "SELECT nextval('#{klass::OGSEQ}')"