parsav  Diff

Differences From Artifact [c81652b018]:

To Artifact [bd352a7166]:


  1515   1515   		post: uint64
  1516   1516   	): bool
  1517   1517   		var q = queries.post_reacts_fetch_uid.exec(src,uid,post,'like')
  1518   1518   		if q.sz > 0 then q:free() return true end
  1519   1519   		return false
  1520   1520   	end];
  1521   1521   
  1522         -	timeline_instance_fetch = [terra(src: &lib.store.source, rg: lib.store.range)
         1522  +	timeline_instance_fetch = [terra(
         1523  +		src: &lib.store.source,
         1524  +		rg: lib.store.range
         1525  +	): lib.mem.lstptr(lib.store.post)
  1523   1526   		var r = pqr { sz = 0 }
  1524   1527   		var A,B,C,D = rg:matrix() -- :/
  1525   1528   		r = queries.timeline_instance_fetch.exec(src,A,B,C,D)
         1529  +		
         1530  +		var ret: lib.mem.ptr(lib.mem.ptr(lib.store.post)) ret:init(r.sz)
         1531  +		for i=0,r.sz do
         1532  +			ret.ptr[i] = row_to_post(&r, i) -- MUST FREE ALL
         1533  +			ret.ptr[i].ptr.source = src
         1534  +		end
         1535  +
         1536  +		return ret
         1537  +	end];
         1538  +
         1539  +	timeline_actor_fetch_uid = [terra(
         1540  +		src: &lib.store.source,
         1541  +		uid: uint64,
         1542  +		rg: lib.store.range
         1543  +	): lib.mem.lstptr(lib.store.post)
         1544  +		var r = pqr { sz = 0 }
         1545  +		var A,B,C,D = rg:matrix() -- :/
         1546  +		r = queries.timeline_actor_fetch.exec(src,uid,A,B,C,D)
  1526   1547   		
  1527   1548   		var ret: lib.mem.ptr(lib.mem.ptr(lib.store.post)) ret:init(r.sz)
  1528   1549   		for i=0,r.sz do
  1529   1550   			ret.ptr[i] = row_to_post(&r, i) -- MUST FREE ALL
  1530   1551   			ret.ptr[i].ptr.source = src
  1531   1552   		end
  1532   1553   
................................................................................
  1608   1629   
  1609   1630   		var res = queries.actor_rel_enum.exec(src,relator,relatee)
  1610   1631   		var recip = queries.actor_rel_enum.exec(src,relatee,relator)
  1611   1632   
  1612   1633   		if res.sz > 0 then defer res:free()
  1613   1634   			for i = 0, res.sz do
  1614   1635   				var bit = res:int(uint16, i, 0)-1
  1615         -				if bit < [#lib.store.relation.members] then r.rel:setbit(bit, true)
         1636  +				if bit < [#lib.store.relation.members] then r.rel:setbit(bit,true)
  1616   1637   					else lib.warn('unknown relationship type in database') end
  1617   1638   			end
  1618   1639   		end
  1619   1640   
  1620   1641   		if recip.sz > 0 then defer recip:free()
  1621   1642   			for i = 0, recip.sz do
  1622   1643   				var bit = recip:int(uint16, i, 0)-1
  1623         -				if bit < [#lib.store.relation.members] then r.recip:setbit(bit, true)
         1644  +				if bit < [#lib.store.relation.members] then r.recip:setbit(bit,true)
  1624   1645   					else lib.warn('unknown relationship type in database') end
  1625   1646   			end
  1626   1647   		end
  1627   1648   
  1628   1649   		return r
  1629   1650   	end];
  1630   1651