Has anyone seen any strange behaviour as regards the now() function when
accessing a db via odbc layer. The behaviour I have seen (which I have
mentioned in pervious post) is as follows:
I have a trigger set up on a db - when a row is added to a certain table (say
Table A) in my db the trigger calls a function and then the function enters
another line in a related table (say Table B). Here's the problem, the first
addition to Table A may shows the time of the addition as, for example
19:01:53. This is correct. The second addition, triggered by the first additon,
shows a time of say 19:01:10! The addition of the row to Table B uses the now()
function to determine the time the new row is added to the table. This should
in theory match the time (to within a few milliseconds at least) the first row
was added, since the trigger is immediate. However, I am seeing major time
differences?
For the first table, Table A, timestamp is obtained using timeofday. As
mentioned the second table uses now(). There is a possibility that these two
times will differ slightly. However, I do not understand why the time of entry
into the second table could be earlier than the first table!? i.e.
Moserver receives the event - timestamps it as 't1'
-- time lapse before moserver computes the transaction and gives it to odbc.
Txn_begin- now() gets frozen to 't2'
Insert - now() should put it as 't2'
Txn_end()- done.
So firstly t2 should always be > t1 and the difference could be a few seconds
but I found sometimes t2 < t1!..
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org