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}')"