From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 05A6A6EC55; Sat, 31 Jul 2021 12:54:22 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 05A6A6EC55 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1627725262; bh=a1xYxGyF1bPlMiZR1vVs/+yDl6cbfw2IK56JWDLvMQ0=; h=To:Cc:References:In-Reply-To:Date:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=FgxPVjhUWh9Hygmp0rvtsxiUuM/cygxR9fJXIT5ws8VNUF23mM1K/AMz1zkVvez3F DPnIHkzu+ZyxygXg4f9wjC3VtSIup2q5LhFCstvx+ZV7kf3cHNrELPxTSy3ojAZruc nvxDNkJUVqeQ4uQhrdWc5x1M2ZmbUKiuECmIdM0w= Received: from smtp61.i.mail.ru (smtp61.i.mail.ru [217.69.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 5CACE6EC55 for ; Sat, 31 Jul 2021 12:54:21 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 5CACE6EC55 Received: by smtp61.i.mail.ru with esmtpa (envelope-from ) id 1m9lhE-0007Qu-Ic; Sat, 31 Jul 2021 12:54:21 +0300 To: "'Oleg Babin'" , Cc: References: <531544e8-0dd8-8d71-ccfc-4dae2805d498@tarantool.org> <045e01d78598$3ae26e00$b0a74a00$@tarantool.org> In-Reply-To: Date: Sat, 31 Jul 2021 12:54:19 +0300 Message-ID: <04bc01d785f2$08ac04f0$1a040ed0$@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQNJI0ot4YBfKbZyj2tYNprdOv6c+gIKbZKHAzv3X5sCdL8W+wJM1iAMqClbRlA= Content-Language: ru X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD941C43E597735A9C3104FC76DFAAAAF7DA068FE323FAC4379182A05F538085040B498A21CF02C99C1F1261988535D3A98DBE6693B9BFC703597D580C555DF7615 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE77AA33865E80AF043EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637B5932F77F0041FFB8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8AE7EC0A49922C21C6704E4C92FCC148B117882F4460429724CE54428C33FAD305F5C1EE8F4F765FCF1175FABE1C0F9B6A471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F446042972877693876707352033AC447995A7AD18CB629EEF1311BF91D2E47CDBA5A96583BA9C0B312567BB2376E601842F6C81A19E625A9149C048EE91ADC097FE2C3A081C9461EB66F04EBFD8FC6C240DEA7642DBF02ECDB25306B2B78CF848AE20165D0A6AB1C7CE11FEE34CB6874B0BCFF0B86136E347CC761E07C4224003CC836476EA7A3FFF5B025636E2021AF6380DFAD1A18204E546F3947CB11811A4A51E3B096D1867E19FE1407959CC434672EE6371089D37D7C0E48F6C8AA50765F7900637BBEA499411984DA1EFF80C71ABB335746BA297DBC24807EABDAD6C7F3747799A X-C1DE0DAB: 0D63561A33F958A58DB2C1B2BF7F3D988D3EE3147B7CF725CE1E6428D3C7E780D59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA751B940EDA0DFB0535410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D341B5517184E88C1BD70612E17C23E9802BE763C6D44A4B6994BE1FA118DE97A410B3B0C6CC79BF05F1D7E09C32AA3244C2A0B7FF086C03CF96A1D30CB51F54CF4A8CE788DE6831205FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojNLQ8Cqcv1ivlp0yc8xDVHg== X-Mailru-Sender: B5B6A6EBBD94DAD886B83A8C33386406AA60CF0DB684427554EC2912E2366F1104A89304D2F11E7F1EC9E4A2C82A33BC8C24925A86E657CE0C70AEE3C9A96FBAB3D7EE8ED63280BE112434F685709FCF0DA7A0AF5A3A8387 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH resend v2 10/11] lua, datetime: unixtime, timestamp setters in datetime.lua X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Timur Safin via Tarantool-patches Reply-To: Timur Safin Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" : From: Oleg Babin : Subject: Re: [Tarantool-patches] [PATCH resend v2 10/11] lua, datetime: : unixtime, timestamp setters in datetime.lua : : : On 31.07.2021 02:11, Timur Safin wrote: : > Hello Oleg, : > : > : : > : : > : Unixtime and timestamp is great but they loss precision. I think it : > : should be possible : > : : > : go get timestamp with nanoseconds precision since datetime has : > : nanoseconds precision. : > : > I'm not quite get it. Do you want to have nanoseconds exported via : newindex? : > For direct assignments? It's not useful because of available .nsec field. : > Or may be you meant something else? : > : > : : > : : > : Also still it's hard how to convert timestamp to datetime value back. : > : > Timestamp is something secs.nsec, what looks complicated? I'm confused. : > Could you please elaborate? : : I expected something like. : : tarantool> clock.time64() : --- : - 1627712632369020000 : ... : : : This timestamp is in nanoseconds. It's unsigned long long value. : : I tried to do something for datetime... : : sec * 1e9 + nsec, but sec is null while nsec is not: : : ``` : : tarantool> dt.sec : --- : - null : ... : : ``` : : : timestamp + nsec works in quite strage way: : : ``` : : tarantool> dt.timestamp * (1e9 * 1ULL) + dt.nsec : --- : - 1627712485108074000 : ... : : ``` : : (I need to cast to ULL here to avoid precision lost). : : But maybe my question is not relevant. There is a way to get nanoseconds : timestamp. : : I just need to write some simple helper for my app. It's ok. There are nanoseconds / microseconds / milliseconds getters in datetime object, which operate on the original uint64_t. Do you want them to make read-write, not read-only? tarantool> T = date '1970-01-01' --- ... tarantool> T.timestamp --- - 0 ... tarantool> T.nanoseconds --- - 0 ... tarantool> T2000 = date '2000-01-01' --- ... tarantool> T.nanoseconds --- - 0 ... tarantool> T2000.timestamp --- - 946684800 ... tarantool> T2000.nanoseconds --- - 946684800000000000 ... tarantool> T2000.secs --- - 946684800 ... tarantool> ffi = require 'ffi' --- ... tarantool> ffi.typeof(T2000.nanoseconds) --- - ctype ... Regards, Timur