<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta name="Generator" content="Zarafa WebAccess v6.20.4-14107">
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<title>hu.dwim.rdbms.oracle-timestamp-with-timezone-local-time-bug</title>
<style type="text/css">
body
{
font-family: Arial, Verdana, Sans-Serif;
font-size: 12px;
padding: 5px 5px 5px 5px;
margin: 0px;
border-style: none;
background-color: #ffffff;
}
p, ul, li
{
margin-top: 0px;
margin-bottom: 0px;
}
</style>
</head>
<body>
<p><br />How do I handle such thing most efficiently? Should I report them at all?<br /><br />Did change the following in hu.dwim.rdbms/source/oracle/conversion.lisp<br />(dunno if this does more harm than good without unit tests but atleast the error is gone)<br /><br /><br />(def function make-timezone (hours minutes)<br /> (let ((offset-in-sec (* (+ (* 60 hours) minutes) 60)))<br /> (if (and (= minutes 0)<br /> (= hours 0))<br /> +utc-zone+<br /> (local-time::make-timezone<br /> :subzones `((,offset-in-sec nil "anonymous" nil nil))<br /> :name "anonymous"<br /> :loaded t))))<br /><br />to <br /><br />(def function make-timezone-old (hours minutes)<br /> (let ((offset-in-sec (* (+ (* 60 hours) minutes) 60)))<br /> (if (and (= minutes 0)<br /> (= hours 0))<br /> +utc-zone+<br /> (local-time::make-timezone<br /> :subzones (make-array 1 :initial-contents<br /> (list (local-time::make-subzone<br /> :offset offset-in-sec)))<br /> :name "anonymous"<br /> :loaded t))))<br /><br /><br />to get rid of: <br /><br />SYMORA> (with-symdb (execute [select * symtag]))<br />--TIME MARK 2010-11-04--<br />21:34 0 RDBMS DEBUG About to BEGIN transaction in database #<ORACLE {100DD2F9B1}><br />21:34 0 RDBMS DEBUG Executing "SELECT * FROM symtag"<br />STYLE-WARNING: Undefined alien: "OCIGetInstantClientPackageName"<br />21:34 0 RDBMS DEBUG Connecting in transaction #<#<STANDARD-CLASS NIL {10033B8C31}> :begin-executed-p #t {1002DFA061}><br />21:34 0 RDBMS DEBUG Logging on in transaction #<#<STANDARD-CLASS NIL {10033B8C31}> :begin-executed-p #t {1002DFA061}><br />21:34 0 RDBMS DEBUG Preparing command: "SELECT * FROM symtag"<br />21:34 0 RDBMS DEBUG Fetching "SYMTAG_KEY" from buffer at index 0<br />21:34 0 RDBMS DEBUG Fetched: "foo"<br />21:34 0 RDBMS DEBUG Fetching "SYMTAG_CREATION_DATE" from buffer at index 0<br />21:34 0 RDBMS DEBUG Fetched: :NULL<br />21:34 0 RDBMS DEBUG Fetching "SYMTAG_KEY" from buffer at index 0<br />21:34 0 RDBMS DEBUG Fetched: "foobar"<br />21:34 0 RDBMS DEBUG Fetching "SYMTAG_CREATION_DATE" from buffer at index 0<br />21:34 0 RDBMS DEBUG Fetched: :NULL<br />21:34 0 RDBMS DEBUG Fetching "SYMTAG_KEY" from buffer at index 0<br />21:34 0 RDBMS DEBUG Fetched: "foo11"<br />21:34 0 RDBMS DEBUG Fetching "SYMTAG_CREATION_DATE" from buffer at index 0<br /><br /><br />--- *sbcl debug buffer*<br /><br />The value ((3600 NIL "anonymous" NIL NIL))<br />is not of type<br /> (SIMPLE-ARRAY T (*)).<br /> [Condition of type TYPE-ERROR]<br /><br />Restarts:<br /> 0: [TERMINATE-TRANSACTION] return (values) from the WITH-TRANSACTION block executing the current terminal action :COMMIT<br /> 1: [COMMIT-TRANSACTION] mark transaction for commit only and return (values) from the WITH-TRANSACTION block<br /> 2: [ROLLBACK-TRANSACTION] mark transaction for rollback only and return (values) from the WITH-TRANSACTION block<br /> 3: [RESTART-TRANSACTION] rollback the transaction by unwinding the stack and restart the WITH-TRANSACTION block in a new database transaction<br /> 4: [RETRY] Retry SLIME REPL evaluation request.<br /> 5: [*ABORT] Return to SLIME's top level.<br /> --more--<br /><br />Backtrace:<br /> 0: (LOCAL-TIME::MAKE-TIMEZONE)[:EXTERNAL]<br /> Locals:<br /> SB-DEBUG::ARG-0 = 6<br /> 1: (HU.DWIM.RDBMS.ORACLE::LOCAL-TIME-FROM-TIMESTAMP-TZ #.(SB-SYS:INT-SAP #X006918C0) #<unavailable argument>)<br /> Locals:<br /> SB-DEBUG::ARG-0 = #.(SB-SYS:INT-SAP #X006918C0)<br /> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE><br /> 2: (HU.DWIM.RDBMS.ORACLE::FETCH-COLUMN-VALUE #<HU.DWIM.RDBMS.ORACLE::COLUMN-DESCRIPTOR {100B9E6761}> 0)<br /> Locals:<br /> SB-DEBUG::ARG-0 = #<HU.DWIM.RDBMS.ORACLE::COLUMN-DESCRIPTOR {100B9E6761}><br /> SB-DEBUG::ARG-1 = 0<br /> 3: (CURRENT-ROW #<HU.DWIM.RDBMS.ORACLE::ORACLE-SEQUENTIAL-ACCESS-CURSOR {100B9E6E71}>)[:EXTERNAL]<br /> 4: (FOR-EACH-ROW #<CLOSURE (LAMBDA #) {100B9E8979}> #<HU.DWIM.RDBMS.ORACLE::ORACLE-SEQUENTIAL-ACCESS-CURSOR {100B9E6E71}>)[:EXTERNAL]<br /> 5: (COLLECT-ROWS #<HU.DWIM.RDBMS.ORACLE::ORACLE-SEQUENTIAL-ACCESS-CURSOR {100B9E6E71}>)[:EXTERNAL]<br /> 6: (HU.DWIM.RDBMS.ORACLE::EXECUTE-PREPARED-STATEMENT ..)[:EXTERNAL]<br /> 7: ((SB-PCL::FAST-METHOD HU.DWIM.RDBMS::EXECUTE-COMMAND (ORACLE HU.DWIM.RDBMS.ORACLE::ORACLE-TRANSACTION STRING)) ..)[:EXTERNAL]<br /> 8: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1. SB-PCL::.ARG2. SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MORE-COUNT.)) ..)<br /> 9: (HU.DWIM.RDBMS::CALL-WITH-TRANSACTION* #<FUNCTION (LABELS HU.DWIM.RDBMS::WITH-TRANSACTION*-BODY) {10034E8619}>)[:EXTERNAL]<br /> 10: ((LAMBDA ()))<br /> 11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (WITH-SYMDB (EXECUTE (SQL #))) #<NULL-LEXENV>)<br /> --more--<br /> </p>
!DSPAM:4cd3227b48581611617599!
</body>
</html>