Ok, sqlite group, please accept my apologies. It was thoughtless of me.

On 11/5/09 4:54 PM, "P Kishor" <[email protected]> wrote:

> First, you shouldn't hijack a thread. If you have a new subject, start
> a new email thread instead of using an existing one.
> 
> 
> On Thu, Nov 5, 2009 at 4:43 PM, Kavita Raghunathan
> <[email protected]> wrote:
>> 
>> I saw a presentation on sqlite by Dr Hipp that mentioned that anytime I'm
>> storing data in structures or tables, I should be thinking about using
>> sqlite instead.
>> 
>> Would it be more efficient to use the sqlite database to store a table that
>> Looks like this: where lets say I'm looking for the word "auto-align". Would
>> the query be quicker than searching through this table in a "for" or while
>> loop? Assume the table has about 200 entries. I want to know if the
>> performance will be better and if I should consider storing these constants
>> in the database.
>> 
>> .
> 
> Seriously, with 200 entries, you couldn't even begin to tell the
> difference in speed. You could store 200 lines in a text file, grep
> through it and find your answer just as quickly as you would any other
> way.
> 
> On the other hand, if you had 200,000 or 2,000,000 entries, then
> storing the data in a table, indexing it, and searching it would
> probably be more useful in terms of speed.
> 
> A long time ago I remember meeting with someone who wanted to know if
> Oracle would be suitable for storing their departmental address book.
> Apparently the address book was rather large, with several hundred
> employees. Go figure. I gently told him that yes, Oracle would be ok,
> but testing would be required to back the decision.
> 
> 
> 
>> .
>>  {"giants",                e_sf_attr_pm_ethernet_giants},
>>  {"last_time_cleared",     e_sf_attr_pm_ethernet_last_time_cleared},
>>  {"port_counters_start",   e_sf_attr_pm_ethernet_port_counters_start},
>>  {"port_counters_end",     e_sf_attr_pm_ethernet_port_counters_end},
>>  {"mac_rcv_unicast",       e_sf_attr_pm_ethernet_mac_rcv_unicast},
>>  {"mac_rcv_multicast",     e_sf_attr_pm_ethernet_mac_rcv_multicast},
>>  {"mac_rcv_broadcase",     e_sf_attr_pm_ethernet_mac_rcv_broadcast},
>>  {"mac_xmit_unicast",      e_sf_attr_pm_ethernet_mac_xmit_unicast},
>>  {"mac_xmit_multicast",    e_sf_attr_pm_ethernet_mac_xmit_multicast},
>>  {"mac_xmit_broadcast",    e_sf_attr_pm_ethernet_mac_xmit_broadcast},
>>  {"mac_rcv_octet",         e_sf_attr_pm_ethernet_mac_rcv_octet},
>>  {"mac_xmit_octet",        e_sf_attr_pm_ethernet_mac_xmit_octet},
>>  {"mac_delay_exceed",      e_sf_attr_pm_ethernet_mac_delay_exceed},
>>  {"mac_mtu_exceed",        e_sf_attr_pm_ethernet_mac_mtu_exceed},
>>  {"mac_in_discard",        e_sf_attr_pm_ethernet_mac_in_discard},
>>  {"mac_out_discard",       e_sf_attr_pm_ethernet_mac_out_discard},
>>  {"mac_last_time_cleared", e_sf_attr_pm_ethernet_mac_last_time_cleared},
>>  {"manual_align",           e_sf_attr_pm_manual_alig},
>>  {"auto_align",             e_sf_attr_pm_auto_align},
>>  {"initial_align",          e_sf_attr_pm_initial_align},
>>  {"seconds_on_align",       e_sf_attr_pm_seconds_on_align},
>>  {"align_start_time",       e_sf_attr_pm_last_align_start_time},
>>  {"align_start_trigger",    e_sf_attr_pm_last_align_start_trigger},
>>  {"align_start_azimuth",    e_sf_attr_pm_last_align_start_azimuth},
>>  {"align_start_elevation",  e_sf_attr_pm_last_align_start_elevation},
>>  {"align_start_rssi",       e_sf_attr_pm_last_align_start_rssi},
>>  {"align_start_ber",        e_sf_attr_pm_last_align_start_ber},
>>  {"align_end_time",         e_sf_attr_pm_last_align_end_time},
>> .
>> .
>> 
>> 
>> On 11/5/09 4:15 PM, "Beau Wilkinson" <[email protected]> wrote:
>> 
>>> I really think this warrants further discussion. Perhaps the correct answer
>>> (that ARMs implement a non-standard FP type which is incompatible with
>>> Sqlite)
>>> is already out there, but I think the issues I raised with that answer
>>> should
>>> at least be addressed.
>>> 
>>> Assuming (and perhaps this is the rub...) that Sqlite is built around C++
>>> "float" and "double,"  then I fail to see how any FP system that is even
>>> plausibly useful could give the results cited by Mr Drozd. If I put (for
>>> example) the value 100.0 into a "double," and then transport or
>>> store/retrieve
>>> the binary representation somehow, and then take those bits and once more
>>> treat them as a "double," then I ought to get 100 (or at least something
>>> very,
>>> very close). These are the sorts of things that Sqlite should, to my mind at
>>> least, be doing with real number data, and it ought not to matter what the
>>> underlying representation is.
>>> 
>>> And yet it has been put forth in this forum that such is not the case.
>>> Rather,
>>> the underlying representation must comply with the IEEE FP standard, or even
>>> basic operations will not work. And this is so certain, well-known, and
>>> reasonable that discussion amongst the plebians is not warranted.
>>> 
>>> How is this possible architecturally? The only explanation I can fathom is
>>> that Sqlite depends on the underlying representation following the IEEE
>>> standard at the bit level. For example, when doing sorts, maybe Sqlite is
>>> assuming the mantissae and exponents are in the bit ranges specified by
>>> IEEE,
>>> and that they are represented in the specified format (e.g. excess vs.
>>> complement notation) as well.
>>> 
>>> If this is indeed the case, I think this is a very misguided architecture.
>>> Depending on the bit-level representation is bad. It's a brittle design. Of
>>> course, it's easy for you all to intimidate anyone who has a problem with
>>> this
>>> architecture... the complainer is "not in compliance with the IEEE standard"
>>> and is thus clearly worthy of your speedy dismissal. Bah.
>>> 
>>> Ultimately, I think this is an easy excuse for a bad design. Types like
>>> "float" and "double" are intended by their designers to abstract over many
>>> FP
>>> implementations. They are not just convenient macros from IEEE FP, nor
>>> should
>>> they be.
>>> 
>>> I could go on to take issue with the IEEE standard itself. The allocation of
>>> bits to exponent-versus-mantissa is rigid, for example. IEEE makes no
>>> allowance (that I know of) for allowing a tradeoff between precision and
>>> dynamic range, which is a major oversight for such a widely-used standard.
>>> Until very recently IEEE FP included no support for 16-bit (half precision)
>>> data. IEEE was also designed by committee so it includes all sorts of
>>> nice-to-have pet features (two zeros, distinct error and condition codes,
>>> etc.) which may or may not be worthwhile on any given real-world system. (I
>>> tend to lean toward the "may not" direction).
>>> 
>>> But whether IEEE is bad or good or indifferent makes no difference- the
>>> standard should not, in my opinion, be built into Sqlite. Basic software
>>> engineering sense must still trump even the best standard.
>>> 
>>> Forgive me if I have missed something here, but this seems like what I would
>>> call "Standardizationism" run amok.
>>> 
>>> ________________________________________
>>> From: Beau Wilkinson
>>> Sent: Wednesday, November 04, 2009 9:39 AM
>>> To: General Discussion of SQLite Database
>>> Cc: Alexander Drozd
>>> Subject: RE: [sqlite] SQLite on PocketBook
>>> 
>>>> I'm guessing that your hardward does not implement IEEE 754 floating
>>>> point correctly.  We've seen that sort of thing before, especially
>>>> with GCC.  There are some options to GCC (which escape my memory right
>>>> now) that can force it to use strict IEEE 754 floating point rather
>>>> than its preferred, speedier but non-standard alternative.
>>> 
>>> What he's getting back is so far from correct, though, that I would tend to
>>> blame a run-of-the-mill bug rather than some point-of-detail. Non-IEEE
>>> floating point often sacrifices things like the distinctions between
>>> "Not-a-Number" and "Infinity," or the difference between positive and
>>> negative
>>> zero, and so on. Perhaps in some cases the rounding of the last bit is
>>> wrong.
>>> But no FP system should give results that are flat out wrong, especially
>>> when
>>> doing arithmetic. (I can see where series of operations involving exponents
>>> &c. might get way out-of-line but I don't think Sqlite is doing any of these
>>> things.)
>>> 
>>> What he is getting back looks like Double.MaxVal... is there a
>>> divide-by-zero
>>> somewhere? That is the sort of thing that different FP specs will legimately
>>> handle differently.
>>> ________________________________________
>>> From: [email protected] [[email protected]] On
>>> Behalf Of D. Richard Hipp [[email protected]]
>>> Sent: Wednesday, November 04, 2009 9:26 AM
>>> To: General Discussion of SQLite Database
>>> Cc: Alexander Drozd
>>> Subject: Re: [sqlite] SQLite on PocketBook
>>> 
>>> On Nov 4, 2009, at 4:53 AM, Alexander Drozd wrote:
>>>> 
>>>>  My name is Alexander. I am working on an open-source  spaced-
>>>> repetition software project  (http://code.google.com/p/pbanki/). My
>>>> software relies on SQLite library. I came across some bug-like
>>>> problems with running SQLite on a low-memory e-ink reader device. I
>>>> am very  sorry to bother you, but I tried to submit my  problem to
>>>> the bugtracker at the SQLite site, and for some reason anonymous
>>>> login failed.
>>>> 
>>>>  The problem appears at the point of reading real values from an
>>>> SQLite database. I created a simple database
>>>> 
>>>> CREATE TABLE cards (
>>>>    text TEXT NOT NULL,
>>>>    value REAL NOT NULL
>>>> );
>>>> 
>>>> I also tried to use NUMERIC and FLOAT instead of REAL. Then I
>>>> inserted a few values:
>>>> 
>>>> INSERT INTO cards VALUES('second',100.1);
>>>> INSERT INTO cards VALUES('first', 100.0);
>>>> 
>>>> Then I execute "select * from cards order by due" query with sample
>>>> code from http://www.sqlite.org/quickstart.html It works perfectly
>>>> when compiled on desktop computer, but fails on target device. The
>>>> device is PocketBook301+ (http://pocketbook.com.ua/). Unfortunately
>>>> their site does not have an English version. This device is based on
>>>> Samsung S3C2440 AL-40 CPU. It runs under open-source firmware called
>>>> pocketbookfree, that is based on Linux 2.6.18.2 armv4tl.
>>>> 
>>>> The above query run on pocketbook returns corrupted values for
>>>> floats if they have a non-zero fractional part:
>>>> 
>>>> text = first
>>>> val = 100.0
>>>> 
>>>> text = second
>>>> val = 1.90359837350824e+185
>>>> 
>>>> Sorting by columns containing float numbers also fails when
>>>> specified with ORDER BY. I am not sure whether this is an issue with
>>>> SQLite or with cross-compiler for PocketBook, but I would greatly
>>>> appreciate any suggestions on how to treat this problem.
>>> 
>>> 
>>> I'm guessing that your hardward does not implement IEEE 754 floating
>>> point correctly.  We've seen that sort of thing before, especially
>>> with GCC.  There are some options to GCC (which escape my memory right
>>> now) that can force it to use strict IEEE 754 floating point rather
>>> than its preferred, speedier but non-standard alternative.
>>> 
>>> 
>>> D. Richard Hipp
>>> [email protected]
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> sqlite-users mailing list
>>> [email protected]
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>> 
>>> The information contained in this e-mail is privileged and confidential
>>> information intended only for the use of the individual or entity named.  If
>>> you are not the intended recipient, or the employee or agent responsible for
>>> delivering this message to the intended recipient, you are hereby notified
>>> that any disclosure, dissemination, distribution, or copying of this
>>> communication is strictly prohibited.  If you have received this e-mail in
>>> error, please immediately notify the sender and delete any copies from your
>>> system.
>>> _______________________________________________
>>> sqlite-users mailing list
>>> [email protected]
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>> 
>> _______________________________________________
>> sqlite-users mailing list
>> [email protected]
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>> 
> 
> 
> 
> --
> Puneet Kishor http://www.punkish.org
> Carbon Model http://carbonmodel.org
> Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
> Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor
> Nelson Institute, UW-Madison http://www.nelson.wisc.edu
> -----------------------------------------------------------------------
> Assertions are politics; backing up assertions with evidence is science
> =======================================================================
> Sent from Madison, Wisconsin, United States
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to