[sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread Voxen

Hi,

My application is storing email messages in a SQLite database (raw email  
messages as they are downloaded from the mail server).

This is done under a transaction.

Sometimes I get the SQLITE_MISUSE error and by watching the antivirus  
(Avast) log, I found this:
Sign of Uruguay 6/7/8 has been found in C:\Documents and  
Settings\Voxen\Application Data\MyApp\mail.db-jounal file.


This means the antivirus found a virus in the transaction journal file and  
removes it. Its altering the journal file and then produces a  
SQLITE_MISUSE error.


How can I work around this?
Do I need to ZIP or encode the email message before storing it in the  
database?


Thanks
Voxen


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] Search on Age, from DOB column

2007-05-03 Thread Allan, Mark
Hi,

I need to be able offer the user the ability to search for patients in the 
database based on age. i.e. age  17 or age = 45 etc etc...

I only store the patient DOB in the database however, what is the SQL to achive 
this? Can I subract todays date from the DOB and get the number of years within 
an SQL string?

The patient table is similar to:-

Patients
{
INTEGER PrimaryKey;
TEXT Surname;
TEXT FirstName;
TIMESTAMP DOB;
...
...
...
}


Thanks in advance for your help.

Mark



DISCLAIMER:
This information and any attachments contained in this email message is 
intended only for the use of the individual or entity to which it is addressed 
and may contain information that is privileged, confidential, and exempt from 
disclosure under applicable law.  If the reader of this message is not the 
intended recipient, or the employee or agent responsible for delivering the 
message to the intended recipient, you are hereby notified that any 
dissemination, distribution, forwarding, or copying of this communication is 
strictly prohibited.  If you have received this communication in error, please 
notify the sender immediately by return email, and delete the original message 
immediately.

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Search on Age, from DOB column

2007-05-03 Thread RB Smissaert
I am also working with a clinical application, using SQLite and VBA.
I use this function to produce the SQL to convert dates in the  ISO8601
format to an integer age. 

Function ISO8601Date2Age(strField, Optional strAlias As String) As String

   Dim strAS As String

   If Len(strAlias)  0 Then
  strAS =  AS 
   End If

   ISO8601Date2Age = case when date(  strField  , '+' ||   _
 (strftime('%Y', 'now') - strftime('%Y',   strField 
)) ||   _
 ' years') = date('now') then   _
 strftime('%Y', 'now') - strftime('%Y',   strField 
)   _
 else   _
 strftime('%Y', 'now') - strftime('%Y',   strField 
) -1  End  _
 strAS  strAlias

End Function


You may not be coding in VB, but you will get the idea.

RBS


-Original Message-
From: Allan, Mark [mailto:[EMAIL PROTECTED] 
Sent: 03 May 2007 11:57
To: sqlite-users@sqlite.org
Subject: [sqlite] Search on Age, from DOB column

Hi,

I need to be able offer the user the ability to search for patients in the
database based on age. i.e. age  17 or age = 45 etc etc...

I only store the patient DOB in the database however, what is the SQL to
achive this? Can I subract todays date from the DOB and get the number of
years within an SQL string?

The patient table is similar to:-

Patients
{
INTEGER PrimaryKey;
TEXT Surname;
TEXT FirstName;
TIMESTAMP DOB;
...
...
...
}


Thanks in advance for your help.

Mark



DISCLAIMER:
This information and any attachments contained in this email message is
intended only for the use of the individual or entity to which it is
addressed and may contain information that is privileged, confidential, and
exempt from disclosure under applicable law.  If the reader of this message
is not the intended recipient, or the employee or agent responsible for
delivering the message to the intended recipient, you are hereby notified
that any dissemination, distribution, forwarding, or copying of this
communication is strictly prohibited.  If you have received this
communication in error, please notify the sender immediately by return
email, and delete the original message immediately.


-
To unsubscribe, send email to [EMAIL PROTECTED]

-




-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Sqlite 14 (cant open database)

2007-05-03 Thread Lloyd
This error occurs only on FAT 32 file system! I have a directory with
32764 files. one of the file is my sqlite database. It seems that, when
the file count reaches around this particular no. the SQLite cant open
database error occurs. Can anybody give me some hint? (I am mounting
FAT32 file system on my Linux)

Thanks and Regards,
  Lloyd


On Wed, 2007-04-25 at 10:13 +0530, Lloyd wrote:
 Hi,
  I am working on Redhat EL4, with sqlite3. In my application (written in
 C++ and wxWidgets, and I use wxSqlite3 wrapper) there a module which
 will be called repeatedly which in turn opens and closes the database
 each time the module is called. When the application runs (process the
 input) for short period of time (10 mins -small input) am not getting
 any error. But when it runs for around 1 hour (large input) I am getting
 an error called
 
 sqlite 14, cant open database !
 
 What could be the reason for this particular error?
 
 Thanks and regards,
   Lloyd
 
 



__
Scanned and protected by Email scanner

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Sqlite 14 (cant open database)

2007-05-03 Thread Arjen Markus

Lloyd wrote:


This error occurs only on FAT 32 file system! I have a directory with
32764 files. one of the file is my sqlite database. It seems that, when
the file count reaches around this particular no. the SQLite cant open
database error occurs. Can anybody give me some hint? (I am mounting
FAT32 file system on my Linux)

 

That is a very large number of files! I know FAT32 can not handle files 
larger than
2 GB, and I imagine there is limit on the number of files as well. Try 
creating
some subdirectories and moving the files there. The problem is most 
likely in the filesystem.


Regards,

Arjen

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Search on Age, from DOB column

2007-05-03 Thread Pix

Allan, Mark wrote:

Hi,

I need to be able offer the user the ability to search for patients in the 
database based on age. i.e. age  17 or age = 45 etc etc...

I only store the patient DOB in the database however, what is the SQL to achive 
this? Can I subract todays date from the DOB and get the number of years within 
an SQL string?

The patient table is similar to:-

Patients
{
INTEGER PrimaryKey;
TEXT Surname;
TEXT FirstName;
TIMESTAMP DOB;
...
...
...
}


Thanks in advance for your help.

Mark
  

SELECT * FROM Patients WHERE date('now', '-17 years')  date(DOB);
SELECT * FROM Patients WHERE date('now', '-45 years')  date(DOB)  
date('now', '-46 years')  date(DOB);


Here you have other time/date functions:
http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions


Paolo


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] best performance

2007-05-03 Thread Jonathan Kahn
In my application I currently perform a loop inside a recursive function and
sqlite3_bind_* on various fields then call sqlite3_step and a reset inside
my loop but it is fairly slow when inserting, is there a faster way of
inserting inside a loop?

 

Ie) while(whatever  0) {

sqlite3_bind_int(stmt,1,iSomething);

sqlite3_bind..

if(sqlite3_step(stmt) == SQLITE_DONE) sqlite3_reset(stmt);

 

} /// basically something along these lines but with more error checking
and things.. 

 

 Am I able to perform a transaction where I execute a query with a
begin..insert..end and commit?  Would that even be faster? 

 

I just want to make sure I am doing things as fast and efficiently as
possible.

 

Thanks a lot

- Jon



Re: [sqlite] best performance

2007-05-03 Thread Trey Mack

Am I able to perform a transaction where I execute a query with a
begin..insert..end and commit?  Would that even be faster? 


Yep, that's the way to go.

http://www.sqlite.org/cvstrac/wiki?p=PerformanceConsiderations

See
Transactions and performance


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] Re: best performance

2007-05-03 Thread Igor Tandetnik

Jonathan Kahn [EMAIL PROTECTED]
wrote:

In my application I currently perform a loop inside a recursive
function and sqlite3_bind_* on various fields then call sqlite3_step
and a reset inside my loop but it is fairly slow when inserting, is
there a faster way of inserting inside a loop?


Make all your inserts within a single transaction (issue BEGIN statement 
before the loop and COMMIT after).


Igor Tandetnik 



-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread Samuel R. Neff

Most anti-virus software allows you to specify an exception folder and/or
file.  Tell the anti-virus to ignore sqlite db and the journal.

Sam

---
We're Hiring! Seeking a passionate developer to join our team building
products. Position is in the Washington D.C. metro area. If interested
contact [EMAIL PROTECTED]
 
-Original Message-
From: Voxen [mailto:[EMAIL PROTECTED] 
Sent: Thursday, May 03, 2007 2:58 AM
To: sqlite-users@sqlite.org
Subject: [sqlite] Transaction journal corrupted by antivirus

Hi,

My application is storing email messages in a SQLite database (raw email  
messages as they are downloaded from the mail server).
This is done under a transaction.

Sometimes I get the SQLITE_MISUSE error and by watching the antivirus  
(Avast) log, I found this:
Sign of Uruguay 6/7/8 has been found in C:\Documents and  
Settings\Voxen\Application Data\MyApp\mail.db-jounal file.

This means the antivirus found a virus in the transaction journal file and  
removes it. Its altering the journal file and then produces a  
SQLITE_MISUSE error.

How can I work around this?
Do I need to ZIP or encode the email message before storing it in the  
database?

Thanks
Voxen



-
To unsubscribe, send email to [EMAIL PROTECTED]

-


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Search on Age, from DOB column

2007-05-03 Thread Samuel R. Neff

You'll be better off converting the target age back to a date and then
search for the date.  That way SQLite can use an index in your query (it
can't use an index when the filter is on an expression).

HTH,

Sam 

---
We're Hiring! Seeking a passionate developer to join our team building
products. Position is in the Washington D.C. metro area. If interested
contact [EMAIL PROTECTED]
 
-Original Message-
From: Allan, Mark [mailto:[EMAIL PROTECTED] 
Sent: Thursday, May 03, 2007 6:57 AM
To: sqlite-users@sqlite.org
Subject: [sqlite] Search on Age, from DOB column

Hi,

I need to be able offer the user the ability to search for patients in the
database based on age. i.e. age  17 or age = 45 etc etc...

I only store the patient DOB in the database however, what is the SQL to
achive this? Can I subract todays date from the DOB and get the number of
years within an SQL string?

The patient table is similar to:-

Patients
{
INTEGER PrimaryKey;
TEXT Surname;
TEXT FirstName;
TIMESTAMP DOB;
...
...
...
}


Thanks in advance for your help.

Mark


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread Voxen

The problem is my application is used by thousand of customers.
I cannot ask them to tweak their antivirus.



Most anti-virus software allows you to specify an exception folder and/or
file.  Tell the anti-virus to ignore sqlite db and the journal.

Sam

---
We're Hiring! Seeking a passionate developer to join our team building
products. Position is in the Washington D.C. metro area. If interested
contact [EMAIL PROTECTED]
-Original Message-
From: Voxen [mailto:[EMAIL PROTECTED]
Sent: Thursday, May 03, 2007 2:58 AM
To: sqlite-users@sqlite.org
Subject: [sqlite] Transaction journal corrupted by antivirus

Hi,

My application is storing email messages in a SQLite database (raw email
messages as they are downloaded from the mail server).
This is done under a transaction.

Sometimes I get the SQLITE_MISUSE error and by watching the antivirus
(Avast) log, I found this:
Sign of Uruguay 6/7/8 has been found in C:\Documents and
Settings\Voxen\Application Data\MyApp\mail.db-jounal file.

This means the antivirus found a virus in the transaction journal file  
and

removes it. Its altering the journal file and then produces a
SQLITE_MISUSE error.

How can I work around this?
Do I need to ZIP or encode the email message before storing it in the
database?

Thanks
Voxen



-
To unsubscribe, send email to [EMAIL PROTECTED]

-


-
To unsubscribe, send email to [EMAIL PROTECTED]
-





-
To unsubscribe, send email to [EMAIL PROTECTED]
-



AW: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread Christian Schwarz
 The problem is my application is used by thousand of customers.
 I cannot ask them to tweak their antivirus.

Why don't you encrypt the message content before storing?

Christian

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Search on Age, from DOB column

2007-05-03 Thread Allan, Mark
Thanks to everybody that contirbuted to this thread. I have now implemented 
this functionality and it works well.


DISCLAIMER:
This information and any attachments contained in this email message is 
intended only for the use of the individual or entity to which it is addressed 
and may contain information that is privileged, confidential, and exempt from 
disclosure under applicable law.  If the reader of this message is not the 
intended recipient, or the employee or agent responsible for delivering the 
message to the intended recipient, you are hereby notified that any 
dissemination, distribution, forwarding, or copying of this communication is 
strictly prohibited.  If you have received this communication in error, please 
notify the sender immediately by return email, and delete the original message 
immediately.

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread drh
Voxen [EMAIL PROTECTED] wrote:
 The problem is my application is used by thousand of customers.
 I cannot ask them to tweak their antivirus.
 
 
  How can I work around this?
  Do I need to ZIP or encode the email message before storing it in the
  database?
 

If the antivirus is seeing virus signatures in the email messages,
then by compressing the message using zlib before adding it to the
database you should be able to defeat the antivirus software.  This
will have the added bonus of reducing disk I/O which will likely
make your program appear to run faster.

--
D. Richard Hipp [EMAIL PROTECTED]



-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread P Kishor

You are in a sticky situation. Read below --

On 5/3/07, Voxen [EMAIL PROTECTED] wrote:

Hi,

My application is storing email messages in a SQLite database (raw email
messages as they are downloaded from the mail server).
This is done under a transaction.

Sometimes I get the SQLITE_MISUSE error and by watching the antivirus
(Avast) log, I found this:
Sign of Uruguay 6/7/8 has been found in C:\Documents and
Settings\Voxen\Application Data\MyApp\mail.db-jounal file.

This means the antivirus found a virus in the transaction journal file and
removes it. Its altering the journal file and then produces a
SQLITE_MISUSE error.

How can I work around this?
Do I need to ZIP or encode the email message before storing it in the
database?



Your antivirus software is doing you a favor by removing the virus,
and you really don't want to stop it from doing so, else your db will
be carrying the virus within it.

On the other hand, the antivirus software is really like another user.
Just like you can't stop a user (or yourself) from destroying the
journal/db file, you can't really stop the antivirus software from
doing so.

Perhaps you could implement an antivirus scanning _before_ you insert
the messages into your database. Of course, then you would not only
have to write such an antivirus software portion yourself, you will
have to distribute the antivirus-strengthened email program to all
your users.

Otherwise, yes, you would have to stop your av software from scanning
your db, but that means your db will be carrying viral payloads.

Dang!

--
Puneet Kishor http://punkish.eidesis.org/
Nelson Inst. for Env. Studies, UW-Madison http://www.nelson.wisc.edu/
Open Source Geospatial Foundation http://www.osgeo.org/education/
-
collaborate, communicate, compete
=

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] [BUG or FR] OpenEphemeral invariant optimization (was [sqlite] Best way to optimize this query?)

2007-05-03 Thread Tomash Brechko
Hello,

Tito, instead of

  SELECT * FROM People where GUID in (select GUID from myGUID);

you better to have an index on People.GUID, and do

  SELECT People.* FROM myGUID CROSS JOIN People ON People.GUID = myGUID.GUID;

(assuming myGUID temporary table has much fewer records than People).


The rest of the letter explains the problem with IN in SQLite 3.3.17.


On Wed, May 02, 2007 at 13:11:46 -0500, P Kishor wrote:
 On 5/2/07, Tito Ciuro [EMAIL PROTECTED] wrote:
 SELECT * FROM People where GUID in (ABC, RDT, TUV);
 
 Is there a better way to include all these GUIDs on a single SQL
 statement to speed things up?
 
 Internally, I believe the IN clause gets converted to a set of OR
 matches as in GUID = 'ABC' OR GUID = 'XYZ' OR... (or is it the other
 way around?)

Unfortunately this can't be done so.  Indeed, for very small number of
alternatives this is what one should do by hand.  But imagine we have
500 values, and only last comparison returns true.  That's why (I
removed irrelevant instructions below):

sqlite .explain
sqlite explain SELECT * FROM People where GUID in (ABC, RDT, TUV);
addr  opcode  p1  p2  p3
  --  --  --  -
...
2 OpenRead0   6
...
5 MemLoad 0   0
...
8 OpenEphemeral   1   0   keyinfo(1,BINARY)
9 SetNumColumns   1   1
10String8 0   0   ABC
11MakeRecord  1   0   b
12IdxInsert   1   0
13String8 0   0   RDT
14MakeRecord  1   0   b
15IdxInsert   1   0
16String8 0   0   TUV
17MakeRecord  1   0   b
18IdxInsert   1   0
...
26Found   1   28
...
30Callback1   0
31Next0   5
...


See, at instruction 8 a temporary table (or rather index) is created,
and values ABC, RDT, TUV are put into it, so that we can later
use logarithmic search instead of liner search as would be done with
OR chain.

The problem is that jump at instruction 31 (Next) brings us back to
instruction 5.  This means that the query plan is:

   for every row in People do
   create temp table
   populate temp table
   see if current value from People is in temp table
   next

This doesn't look right.  And the problem is not that we could compare
current record from People against IN values right away, instead of
putting them into the temporary table first (this solution would be
basically the OR chain described above).  The problem is that we
populate temporary table inside the loop, while its contents doesn't
depend on this loop.

The same problem holds for every solution using IN that were
suggested.  Namely,

  SELECT * FROM People where GUID in (select GUID from myGUID);

will too populate the temporary table on _every_ iteration over People
rows:

addr  opcode  p1  p2  p3
  --  --  --  -
...
5 MemLoad 0   0
...
8 OpenEphemeral   2   0   keyinfo(1,BINARY)
...
11OpenRead1   2
...
14Column  1   0
...
18MakeRecord  1   0   b
19IdxInsert   2   0
20Next1   14
...
29Found   2   31
...
33Callback1   0
34Next0   5
...


11-20 is temporary table population, 5-34---loop over People.  Even
creation of index ON myGUID (GUID) won't help to avoid this temporary
table.


I'm not sure if this is a nasty bug, and previous versions worked
correctly (lazy to check), or a misfeature.


To sum it up:

1 If sub-query at nesting level N2 depends on an outer query at level
  N1 (N1  Nany  N2), then temporal table population may be moved to
  level N1+1.  This means that for completely independent sub-query we
  may move temporary table population to the upper level.

2 For the query ... IN (SELECT col FROM table) (note the absence of
  WHERE clause in sub-query) when there is an index

 ... INDEX ... ON table (col [, ...])

  no temporary table has to be created, we can do the lookups in this
  index.  Further, if there is a WHERE clause that uses only col, it
  may be moved to the outer query.

3 As described in 1, no every temporary table population may be moved
  to the upper level.  Hence a simple technical optimization is
  possible (which is orthogonal to the problem described in this
  letter): instead of closing a temporary table we may push its handle
  onto the stack, and, instead of re-creating temporary table on every
  OpenEphemeral in the loop (which is a costly operation: path checks,
  name generation, open() and unlink()), we may simply pop the handle,
  and do ftruncate() on it.  The stack should be freed 

Re[2]: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread Teg
Hello Voxen,

I'm in the same boat and I have asked them to tweek the AV for
performance reason and because it messes up disk writes. I have toyed
with the idea of some mild encryption on my blobs to prevent this.
Maybe some low key bits AES. An interesting experiment would be to see
if the AV programs can read through compression because you could also
GZIP of the blobs before insertion and save significant space too.

C



Thursday, May 3, 2007, 9:47:44 AM, you wrote:

V The problem is my application is used by thousand of customers.
V I cannot ask them to tweak their antivirus.


 Most anti-virus software allows you to specify an exception folder and/or
 file.  Tell the anti-virus to ignore sqlite db and the journal.

 Sam

 ---
 We're Hiring! Seeking a passionate developer to join our team building
 products. Position is in the Washington D.C. metro area. If interested
 contact [EMAIL PROTECTED]
 -Original Message-
 From: Voxen [mailto:[EMAIL PROTECTED]
 Sent: Thursday, May 03, 2007 2:58 AM
 To: sqlite-users@sqlite.org
 Subject: [sqlite] Transaction journal corrupted by antivirus

 Hi,

 My application is storing email messages in a SQLite database (raw email
 messages as they are downloaded from the mail server).
 This is done under a transaction.

 Sometimes I get the SQLITE_MISUSE error and by watching the antivirus
 (Avast) log, I found this:
 Sign of Uruguay 6/7/8 has been found in C:\Documents and
 Settings\Voxen\Application Data\MyApp\mail.db-jounal file.

 This means the antivirus found a virus in the transaction journal file  
 and
 removes it. Its altering the journal file and then produces a
 SQLITE_MISUSE error.

 How can I work around this?
 Do I need to ZIP or encode the email message before storing it in the
 database?

 Thanks
 Voxen


 
 -
 To unsubscribe, send email to [EMAIL PROTECTED]
 
 -


 -
 To unsubscribe, send email to [EMAIL PROTECTED]
 -




V -
V To unsubscribe, send email to [EMAIL PROTECTED]
V -




-- 
Best regards,
 Tegmailto:[EMAIL PROTECTED]


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] [BUG or FR] OpenEphemeral invariant optimization (was [sqlite] Best way to optimize this query?)

2007-05-03 Thread drh
Tomash Brechko [EMAIL PROTECTED] wrote:
 
 sqlite .explain
 sqlite explain SELECT * FROM People where GUID in (ABC, RDT, TUV);
 addr  opcode  p1  p2  p3
   --  --  -- ---
 
 2 OpenRead0   6
 
 5 MemLoad 0   0
 
 8 OpenEphemeral   1   0   keyinfo(1,BINARY)
 9 SetNumColumns   1   1
 10String8 0   0   ABC
 11MakeRecord  1   0   b
 12IdxInsert   1   0
 13String8 0   0   RDT
 14MakeRecord  1   0   b
 15IdxInsert   1   0
 16String8 0   0   TUV
 17MakeRecord  1   0   b
 18IdxInsert   1   0
 
 26Found   1   28
 
 30Callback1   0
 31Next0   5
 
 
 
 See, at instruction 8 a temporary table (or rather index) is created,
 and values ABC, RDT, TUV are put into it, so that we can later
 use logarithmic search instead of liner search as would be done with
 OR chain.
 
 The problem is that jump at instruction 31 (Next) brings us back to
 instruction 5.  This means that the query plan is:
 
for every row in People do
create temp table
populate temp table
see if current value from People is in temp table
next
 
 This doesn't look right. 

Your interpretation of what is happening isn't right.  Look more 
closely at instructions 5 through 7:

  5 MemLoad 0   0  
  6 If  0   19   
  7 MemInt  1   0

Memory location 0 is being used as a flag that indicates whether
or not the temporary table has been initialized.  Instructions
5 and 6 test this flag and skip the initializion if it has 
already been done.  Instruction 7 sets the flag at the beginning
of the initialization process.

So the pseudocode is really like this:

for every row in People do
  if temp table is uninitialized
 create temp table
 populate temp table
  endif
  
endfor

For additional insight, use PRAGMA vdbe_trace=ON before running 
the query and see that the temp table initializatio is only done 
once.

--
D. Richard Hipp [EMAIL PROTECTED]


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] [BUG or FR] OpenEphemeral invariant optimization

2007-05-03 Thread Tomash Brechko
Hello,

On Thu, May 03, 2007 at 14:50:14 +, [EMAIL PROTECTED] wrote:
 Your interpretation of what is happening isn't right.  Look more 
 closely at instructions 5 through 7:
 
   5 MemLoad 0   0  
   6 If  0   19   
   7 MemInt  1   0
 
 Memory location 0 is being used as a flag that indicates whether
 or not the temporary table has been initialized.

Yep, I was wrong, thanks for the insight.  One of my queries that used
ephemeral tables took an unnaturaly long to run, and I was ready to
believe that constant repopulation is the cause.  Now I know that it's
the constance temp table re-creation that eats the time.

Still, yes, my mistake, sorry.


-- 
   Tomash Brechko

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Transaction journal corrupted by antivirus

2007-05-03 Thread John Elrick

Voxen wrote:

The problem is my application is used by thousand of customers.
I cannot ask them to tweak their antivirus.



An observation.  Thunderbird uses simple text files to store unencrypted 
messages.  I am not aware of anti-virus programs having trouble with 
those files.  Perhaps a little research into how Mozilla has avoided the 
problem would be warranted?  If it turns out that their text files 
themselves are not affected by the anti-virus operation, then perhaps 
base 64 encoding would be sufficient for your application.



John

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



RE: [sqlite] Re: best performance

2007-05-03 Thread Jonathan Kahn
Thanks a lot to you both!

- Jon

-Original Message-
From: Igor Tandetnik [mailto:[EMAIL PROTECTED] 
Sent: Thursday, May 03, 2007 8:57 AM
To: SQLite
Subject: [sqlite] Re: best performance

Jonathan Kahn [EMAIL PROTECTED]
wrote:
 In my application I currently perform a loop inside a recursive
 function and sqlite3_bind_* on various fields then call sqlite3_step
 and a reset inside my loop but it is fairly slow when inserting, is
 there a faster way of inserting inside a loop?

Make all your inserts within a single transaction (issue BEGIN statement 
before the loop and COMMIT after).

Igor Tandetnik 



-
To unsubscribe, send email to [EMAIL PROTECTED]

-


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] Re: Transaction journal corrupted by antivirus

2007-05-03 Thread Dave Dyer

Slightly off-topic for this list, but antivirus and firewall
software is a plague that is bad and going to get worse.  In
effect, antivirus software is a security guard that randomly
shoots suspicious members of the public.


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Re: Transaction journal corrupted by antivirus

2007-05-03 Thread Teg
Hello Dave,

Well, if you have users with really odd performance issues. I mean
orders of magnitude slower than you expect. I've found it's either AV
software, Norton in particular will crush PC performance or external
USB hard disks/memory sticks.  That's become the first question I ask
any more What AV are you using and/or are you using an external hard
drive. USB hard drive performance is the pits. Network shares
actually seem to be faster.

C


Thursday, May 3, 2007, 12:59:52 PM, you wrote:

DD Slightly off-topic for this list, but antivirus and firewall
DD software is a plague that is bad and going to get worse.  In
DD effect, antivirus software is a security guard that randomly
DD shoots suspicious members of the public.


DD 
-
DD To unsubscribe, send email to [EMAIL PROTECTED]
DD 
-




-- 
Best regards,
 Tegmailto:[EMAIL PROTECTED]


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] SQLite wrapper

2007-05-03 Thread Cesar Rodas

Hello to every one!

I want to ask if there is a Ruby and/or Ruby on Rails SQLite wrapper...

Thanks to all.

--
Cesar Rodas
http://www.cesarodas.com/
http://cesars.users.phpclasses.org/winners.html - I won!!! ;)
Mobile Phone: 595 961 974165
Phone: 595 21 645590
[EMAIL PROTECTED]
[EMAIL PROTECTED]


[sqlite] create trigger on view

2007-05-03 Thread noname

dear sir 

i have created view from five different table, view contains 20 records.
now when i want to retrieve the data from view like select * from vw. it
takes more time to retrieve the records. now i want to create table same as
view so that instead of retrieving the data from view i can get faster data
from table. i want to create trigger on view such a way that it creates same
copy from view as an when the record are inserted/updated/deleted in
original table. 

i tried but fails to generate table as views

Arvind parmar

-- 
View this message in context: 
http://www.nabble.com/create-trigger-on-view-tf3688489.html#a10311645
Sent from the SQLite mailing list archive at Nabble.com.


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] create trigger on view

2007-05-03 Thread Dennis Cote

noname wrote:

i have created view from five different table, view contains 20 records.
now when i want to retrieve the data from view like select * from vw. it
takes more time to retrieve the records. now i want to create table same as
view so that instead of retrieving the data from view i can get faster data
from table. i want to create trigger on view such a way that it creates same
copy from view as an when the record are inserted/updated/deleted in
original table. 


i tried but fails to generate table as views

  

Arvind,

You need to add triggers to the original tables that add or modify the 
required rows in your view cache table whenever a record is inserted or 
modified in the base tables. A trigger on the view will only fire when 
you access the view.


HTH
Dennis Cote

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] Sqlite 14 (cant open database)

2007-05-03 Thread Lloyd
Thank you Arjen. I would consider your alternative or I will go for some
other file system. (Because I would have to handle files larger than
2GB)

Thanks and Regards,
 Lloyd

On Thu, 2007-05-03 at 13:52 +0200, Arjen Markus wrote:
 Lloyd wrote:
 
 This error occurs only on FAT 32 file system! I have a directory with
 32764 files. one of the file is my sqlite database. It seems that, when
 the file count reaches around this particular no. the SQLite cant open
 database error occurs. Can anybody give me some hint? (I am mounting
 FAT32 file system on my Linux)
 
   
 
 That is a very large number of files! I know FAT32 can not handle files 
 larger than
 2 GB, and I imagine there is limit on the number of files as well. Try 
 creating
 some subdirectories and moving the files there. The problem is most 
 likely in the filesystem.
 
 Regards,
 
 Arjen
 
 -
 To unsubscribe, send email to [EMAIL PROTECTED]
 -


__
Scanned and protected by Email scanner

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re[2]: [sqlite] Sqlite 14 (cant open database)

2007-05-03 Thread Teg
Hello Lloyd,

I've seen files fail on FAT32 with only 10-12K files in the folder.
The problem is there's a fixed number of directory entries and when
you use long filenames, more then one entry is used to store the
names. So, basically you have no way to determine when the next file
open will fail. FAT32 is the devil. You should transition to something better.

C

Thursday, May 3, 2007, 11:50:16 PM, you wrote:

L Thank you Arjen. I would consider your alternative or I will go for some
L other file system. (Because I would have to handle files larger than
L 2GB)

L Thanks and Regards,
L  Lloyd

L On Thu, 2007-05-03 at 13:52 +0200, Arjen Markus wrote:
 Lloyd wrote:
 
 This error occurs only on FAT 32 file system! I have a directory with
 32764 files. one of the file is my sqlite database. It seems that, when
 the file count reaches around this particular no. the SQLite cant open
 database error occurs. Can anybody give me some hint? (I am mounting
 FAT32 file system on my Linux)
 
   
 
 That is a very large number of files! I know FAT32 can not handle files 
 larger than
 2 GB, and I imagine there is limit on the number of files as well. Try 
 creating
 some subdirectories and moving the files there. The problem is most 
 likely in the filesystem.
 
 Regards,
 
 Arjen
 
 -
 To unsubscribe, send email to [EMAIL PROTECTED]
 -


L __
L Scanned and protected by Email scanner

L -
L To unsubscribe, send email to [EMAIL PROTECTED]
L -




-- 
Best regards,
 Tegmailto:[EMAIL PROTECTED]


-
To unsubscribe, send email to [EMAIL PROTECTED]
-