Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Mocking time with SQLite

by jaldhar (Vicar)
on Dec 26, 2010 at 14:51 UTC ( #879214=note: print w/ replies, xml ) Need Help??


in reply to Mocking time with SQLite

Here's an update on how I'm progressing with this. I took the second approach from my initial post and added the following code to my script.

#This is a function to override SQLites DATETIME('NOW'). sub my_fake_time { # gmtime() normally returns the current time but it is overriden b +y Test::MockTime to give a fake time. # Actually I am using the version of gmtime() from Time::gmtime as + it has a nicer interface. As this too overrides # Perls core gmtime() function it must be use'd after Test::MockTi +me so all the overrides occur in the right order. my $t = gmtime; # return the fake date in the same format as SQLite returns. return sprintf '%04d-%02d-%02d %02d:%02d:%02d', $t->year + 1900, $t->mon + 1, $t->mday, $t->hour, $t->min, $t->sec; }; ... # This works. DATETIME('NOW') in my SQL now returns a fake time. $dbh->sqlite_create_function( 'DATETIME', 1, \&my_fake_time ); # However CURRENT TIMESTAMP still doesn't work even though from what I +'ve read it is implemented in terms of DATETIME('NOW') # # I tried this but it doesn't work. $dbh->sqlite_create_function( 'CURRENT TIMESTAMP', 1, \&my_fake_time ); # Any other ideas?

--
જલધર


Comment on Re: Mocking time with SQLite
Download Code
Re^2: Mocking time with SQLite
by jaldhar (Vicar) on Dec 26, 2010 at 14:59 UTC

    Yet another update. It's CURRENT_TIMESTAMP (I left out the underscore.) Now this works:

    dbh->sqlite_create_function( 'CURRENT_TIMESTAMP', 0, \&my_fake_time );

    --
    જલધર

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://879214]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (12)
As of 2015-07-06 21:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (83 votes), past polls