Re: [sqlite] Possibly uninitialized variables...compile time error

2017-12-15 Thread Richard Hipp
On 12/15/17, Edwards, Mark C.  wrote:
> sqlite3.c(167291): error C4703: potentially uninitialized local pointer
> variable 'pNode' used
> sqlite3.c(168154): error C4703: potentially uninitialized local pointer
> variable 'pRoot' used
> sqlite3.c(168160): error C4703: potentially uninitialized local pointer
> variable 'pChild' used

All these warnings are false positives.  The variables are initialized
by prior calls to the nodeAcquire() function.  The problem is that
nodeAcquire() does not necessarily initialize the variables, but if it
does not, it returns a result code other than SQLITE_OK, and in those
cases, the code that uses the variables that nodeAcquire() was suppose
to have initialized is never reached.  Thus there is no possibility of
using an uninitialized variable.

However, the code in question is not on a critical path.  Hence, I
have now added extra (unnecessary) local variable initializations in
the relevant RTree indexing routines so that these warnings should now
be suppressed.

-- 
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] Possibly uninitialized variables...compile time error

2017-12-15 Thread Edwards, Mark C.
sqlite3.c(167291): error C4703: potentially uninitialized local pointer 
variable 'pNode' used
sqlite3.c(168154): error C4703: potentially uninitialized local pointer 
variable 'pRoot' used
sqlite3.c(168160): error C4703: potentially uninitialized local pointer 
variable 'pChild' used

Two of these are present in the 3.21.0 version. This is the amalgamated source 
for 3.20.1 that
I tried out last night in hopes that I would get a good build.  Setting the 
pointer values to NULL
where initially declared will resolve the problem.

I want to incorporate the latest SQLite3 release into my current build with no 
changes
to the released source as evidenced by a matching SHA3 sum as published.  The 
3.21.0
fails that objective. I could fix it with just a couple simple edits, but that 
violates the
integrity of the checksum.

The above problem occurs in an X86 Release build using Visual Studio 2015 Pro
and link time code generation.

___
Mark C Edwards
Chief Scientist, C2 Systems Engineering & Integration
779 Monika Ct
Chubbuck, ID 83202
mark.c.edwa...@leidos.com
Mobile: 208-241-7982


___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Macro expansion of B0 on Linux PPC system

2017-12-15 Thread Richard Hipp
On 12/15/17, Lee, Greg  wrote:
> I never got a reply on this issue and someone else tripped up on it:
>
> https://github.com/spack/spack/issues/6698
>
> Any help or even acknowledgement of this message would be appreciated.
>

I believe the problem was fixed on the highlighted check-in here:
https://www.sqlite.org/src/timeline?y=ci=b9a58daca=9

That fix should have appeared in SQLite version 3.19.0.  Version
3.21.0 is the latest.

Are you still having issues?
-- 
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Macro expansion of B0 on Linux PPC system

2017-12-15 Thread Lee, Greg
I never got a reply on this issue and someone else tripped up on it:

https://github.com/spack/spack/issues/6698

Any help or even acknowledgement of this message would be appreciated.

Thanks,

-Greg

From: Lee, Greg
Sent: Wednesday, May 03, 2017 3:49 PM
To: 'sqlite-users@mailinglists.sqlite.org' 

Subject: Macro expansion of B0 on Linux PPC system

When I try to build sqlite 3.18.0 on a Linux PPC system, I get a compile-time 
error. It looks like shell.c is trying to define a local variable "B0" in one 
of its routines. However, the include chain includes the termios.h header, 
which defines a macro "B0." I can easily work around this by undefining the 
macro, but thought it may be worth reporting for an upstream fix. Below is my 
system's information and the Makefile output.

Thanks,

-Greg

[lee218@rzmanta23:spack.rzmanta2]$ uname -a
Linux rzmanta23 3.10.0-514.2.2.2chaos.ch6.ppc64le #1 SMP Wed Jan 11 16:59:26 
PST 2017 ppc64le ppc64le ppc64le GNU/Linux

[lee218@rzmanta23:spack.rzmanta2]$ rpm -q glibc-headers
glibc-headers-2.17-157.el7.ppc64le

[lee218@rzmanta23:spack.rzmanta2]$ gcc --version
gcc (GCC) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\" 
-DPACKAGE_VERSION=\"3.18.0\" -DPACKAGE_STRING=\"sqlite\ 3.18.0\" 
-DPACKAGE_BUGREPORT=\"http://www.sqlite.org\" 
-DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.18.0\" -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
-DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_FDATASYNC=1 
-DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 
-DHAVE_STRERROR_R=1 -DHAVE_EDITLINE_READLINE_H=1 -DHAVE_EDITLINE=1 
-DHAVE_POSIX_FALLOCATE=1 -I. 
-I/nfs/tmp2/lee218/delete/spack.rzmanta2/var/spack/stage/sqlite-3.18.0-s7e2if4k2ygdmfbkiodulgrxmgg44vfy/sqlite-autoconf-318
-D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 
-DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS -g -O2 -MT 
sqlite3-sqlite3.o -MD -MP -MF .deps/sqlite3-sqlite3.Tpo -c -o sqlite3-sqlite3.o 
`test -f 'sqlite3.c' || echo 
'/nfs/tmp2/lee218/delete/spack.rzmanta2/var/spack/stage/sqlite-3.18.0-s7e2if4k2ygdmfbkiodulgrxmgg44vfy/sqlite-autoconf-318/'`sqlite3.c
In file included from /usr/include/termios.h:40:0,
 from /usr/include/bits/ioctl-types.h:5,
 from /usr/include/sys/ioctl.h:29,
 from /usr/include/editline/readline.h:77,
 from shell.c:71:
shell.c: In function 'KeccakF1600Step':
shell.c:722:7: error: expected identifier or '(' before numeric constant
   u64 B0, B1, B2, B3, B4;
   ^
shell.c:778:8: error: lvalue required as left operand of assignment
 B0 = (A00^D0);
^
shell.c:779:5: error: 'B1' undeclared (first use in this function)
 B1 = ROL64((A11^D1), 44);
 ^
shell.c:779:5: note: each undeclared identifier is reported only once for each 
function it appears in
shell.c:780:5: error: 'B2' undeclared (first use in this function)
 B2 = ROL64((A22^D2), 43);
 ^
shell.c:781:5: error: 'B3' undeclared (first use in this function)
 B3 = ROL64((A33^D3), 21);
 ^
shell.c:782:5: error: 'B4' undeclared (first use in this function)
 B4 = ROL64((A44^D4), 14);
 ^
shell.c:793:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A03^D3), 28);
^
shell.c:802:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A01^D1), 1);
^
shell.c:816:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A04^D4), 27);
^
shell.c:825:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A02^D2), 62);
^
shell.c:845:8: error: lvalue required as left operand of assignment
 B0 = (A00^D0);
^
shell.c:860:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A33^D3), 28);
^
shell.c:869:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A11^D1), 1);
^
shell.c:883:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A44^D4), 27);
^
shell.c:892:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A22^D2), 62);
^
shell.c:912:8: error: lvalue required as left operand of assignment
 B0 = (A00^D0);
^
shell.c:927:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A43^D3), 28);
^
shell.c:936:8: error: lvalue required as left operand of assignment
 B0 = ROL64((A31^D1), 1);
^
shell.c:950:8: error: lvalue required as left operand of assignment
 B0 = 

Re: [sqlite] Mutex logic for shared sqlite database between Native & Android Application

2017-12-15 Thread Jens Alfke


> On Dec 14, 2017, at 11:17 PM, Ajay Gaonkar  wrote:
> 
> If the above code is fine, then why does the mutex lock initiated at native
> level not getting reflected at Application level?

Your native code opens its own connection to the database. The mutex governs 
access to that database _connection_, not to the database _file_, so it has no 
effect on the connection being used by Java.

If you want to get exclusive access to the database itself, use a transaction.

—Jens
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] Mutex logic for shared sqlite database between Native & Android Application

2017-12-15 Thread Ajay Gaonkar
Dear Sqlite Team,
Thanks for looking into this mail.

I am using sqlite database in my Android application with some native code.
The database is shared between Android Application & Native code.

Can you please tell me the ideal behavior in below flow,

In my Android application below native function is called through JNI,

Native Layer: (JNI) .  //Pseudocode
jstring
Java_com_example_MainActivity_callFromJavaToJNI()
{
sqlite3_open(“/data/…/MY_DATABASE_NAME”, );
sqlite3_mutex* mutex;
mutex = sqlite3_db_mutex(db);

sqlite3_mutex_enter(mutex); //DATABASE LOCKED, So nobody should be able to
access this database until its closed gracefully right???

sqlite3_exec(db, ….)

// Sleep OR Wait for some time for testing the DB in Application Layer
sleep(120); // wait()
sqlite3_mutex_leave(mutex);
sqlite3_close(db);
}


When the Native code is in waiting (or in sleep(120)), if Application tries
to update the same Database. Whats should be the ideal behavior?

I found that even after mutex lock in native, Application is still able to
access the database (which is not released in native layer). Ideally when
the database is locked, it should not be accessed from anywhere right?

Is there something wrong with my native code in mutex lock?
If the above code is fine, then why does the mutex lock initiated at native
level not getting reflected at Application level?

Thanks in advance.

Warm Regards,
Ajay Gaonkar
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Simon Slavin


On 15 Dec 2017, at 8:36pm, x  wrote:

> I’ll have to look into how to increase the in-memory pager cache.

Before you do anything like that, ask yourself two questions:

a) Is my program actually fast enough without any of these weird picky measures 
?  Or am I spending lots of time learning details of SQLite when I could be 
spending it improving my program’s functions ?

b) Is the environment I’m developing under identical to those my program is 
going to work under ?  You’re running under win32.  Are all your users going to 
run under win32 or some going to be running win64 ?  The two don’t do the same 
things at the same point.  Don’t do lots of work and then have to tell people 
"My program doesn’t work on your computer because you’re running 64-bit Windows 
10.".

Simon.
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread x
Thanks Richard. I take it this is what you’re talking about



“Even though a disk file is allocated for each temporary database, in practice 
the temporary database usually resides in the in-memory pager cache and hence 
there is very little difference between a pure in-memory database created by 
":memory:" and a temporary database created by an empty filename. The only 
difference is that a ":memory:" database must remain in memory at all times 
whereas parts of a temporary database might be flushed to disk if database 
becomes large or if SQLite comes under memory pressure.”



I’ll have to look into how to increase the in-memory pager cache.




From: sqlite-users  on behalf of 
Richard Hipp 
Sent: Friday, December 15, 2017 7:35:14 PM
To: SQLite mailing list
Subject: Re: [sqlite] What happens if an in memory database runs out of memory

On 12/15/17, x  wrote:
>
> Is there any easy way of creating a table that will use mem for speed but
> revert to disc for backup if memory runs out?
>

Make the database filename be an empty string.

--
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Richard Hipp
On 12/15/17, x  wrote:
>
> Is there any easy way of creating a table that will use mem for speed but
> revert to disc for backup if memory runs out?
>

Make the database filename be an empty string.

-- 
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread x
Thanks for all the replies. I’ve just finished a test on win32.

Firstly I tried appending a int64_t to a vector until I got an exception. This 
happened at i = 60,540,698.

I then created a table in mem with a single integer column and appended 
values(2<<62) until I got an exception. This happened (‘out of memory’) at i = 
102,855,613 although it should be remembered sqlite would be appending a RowID 
as well as the int64_t value.

Is there any easy way of creating a table that will use mem for speed but 
revert to disc for backup if memory runs out?

From: Richard Hipp
Sent: 15 December 2017 19:11
To: SQLite mailing list
Subject: Re: [sqlite] What happens if an in memory database runs out of memory

On 12/15/17, x  wrote:
> Suppose I execute “attach :memory: as mem” and then create a table in mem
> that requires more space than the available RAM can hold what will happen?

You will get an SQLITE_NOMEM error from SQLite.  This is well-tested behavior.

You can run tests yourself by compiling with -DSQLITE_ENABLE_MEMSYS5
and then starting the "sqlite3.exe" command-line shell with the
"--heap" argument to tell it how much memory to use.  Give it a few
megabytes.  Then start up your in-memory database and fill it up to
see what happens.

sqlite3 --heap 5MB

The --heap option causes the shell to do a single 5MB memory
allocation and then divy up that one allocation for all its memory
needs.  When the 5MB is gone, SQLite is out of memory and will start
reporting SQLITE_NOMEM errors.
--
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Richard Hipp
On 12/15/17, x  wrote:
> Suppose I execute “attach :memory: as mem” and then create a table in mem
> that requires more space than the available RAM can hold what will happen?

You will get an SQLITE_NOMEM error from SQLite.  This is well-tested behavior.

You can run tests yourself by compiling with -DSQLITE_ENABLE_MEMSYS5
and then starting the "sqlite3.exe" command-line shell with the
"--heap" argument to tell it how much memory to use.  Give it a few
megabytes.  Then start up your in-memory database and fill it up to
see what happens.

sqlite3 --heap 5MB

The --heap option causes the shell to do a single 5MB memory
allocation and then divy up that one allocation for all its memory
needs.  When the 5MB is gone, SQLite is out of memory and will start
reporting SQLITE_NOMEM errors.
-- 
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Keith Medcalf

You will get an "Out of Memory" error, since you have run out of V=V memory to 
allocate ...

Depending on the vagaries of the OS, all sorts of other hell may break loose as 
well, if your "process" out-of-memory condition corresponds to a general OS 
out-of-memory condition.  That is to say that if your process has consumed all 
V=V memory in the system and there is no V=V memory left for allocation by 
*ANY* process or the OS itself, then AHWBL.  (All Hell Will Break Loose).  This 
is more typical of OS's of ill-conceived design (such as those from Microsoft). 
 OSes that are of well conceived design (basically everything else) generally 
do not suffer the same ill effects.

If only the "process" has hit its quota or V=V allocation limit, then only that 
process will be notified of the failure when it tries to allocate more memory, 
and the OS itself and other processes will be unafected since (presumably) 
there is still V=V memory available in the system -- you are just not allowed 
to have at it.

---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a 
lot about anticipated traffic volume.


>-Original Message-
>From: sqlite-users [mailto:sqlite-users-
>boun...@mailinglists.sqlite.org] On Behalf Of x
>Sent: Friday, 15 December, 2017 09:31
>To: sqlite-users@mailinglists.sqlite.org
>Subject: [sqlite] What happens if an in memory database runs out of
>memory
>
>Suppose I execute “attach :memory: as mem” and then create a table in
>mem that requires more space than the available RAM can hold what
>will happen?
>___
>sqlite-users mailing list
>sqlite-users@mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Jens Alfke


> On Dec 15, 2017, at 8:30 AM, x  wrote:
> 
> Suppose I execute “attach :memory: as mem” and then create a table in mem 
> that requires more space than the available RAM can hold what will happen?

On most operating systems, the kernel will use virtual memory, so part of the 
table’s address space will get swapped out to disk. Everything will work the 
same, just slower. Beyond that, if the size starts to get ridiculous, the 
effects vary by OS. The OS might kill your process for using too much memory 
(Linux), or when the swap fills up the disk the OS may suspend your process and 
put up alerts telling you space is low (Mac OS).

Mobile OS’s are different. I can’t speak for Android, but iOS does not use 
backing store / swap space. If your process uses too much RAM the OS will first 
send it a warning notification by IPC telling it to free memory, and if that 
doesn’t help it will kill the process.

More relevant to SQLite: if you’re creating a very large database, I don’t 
think it makes sense to create it in-memory, for the above reasons. Put it in 
some temporary directory instead, and delete it when you’re done with it.

—Jens
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Simon Slavin


On 15 Dec 2017, at 4:30pm, x  wrote:

> Suppose I execute “attach :memory: as mem” and then create a table in mem 
> that requires more space than the available RAM can hold what will happen?

The problem would not happen when you create the table.  SQLite reserves only a 
little space for each table.  It is far more likely to happen when you add a 
new row to an existing table.

SQLite relies on your OS to implement memory handling.  If your operating 
system implements virtual memory then it’s used.  If not you get either 
SQLITE_FULL or SQLITE_NOMEM depending on exactly what SQLite is doing when it 
runs out of space.

Simon.
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread Paul Sanderson
Try it

create a table and use the zeroblob(n) function to insert lots of blobs of
size n

ie
create table blobs (b blob);

insert into blobs values(zeroblob(1));
insert into blobs values(zeroblob(1));

etc.

interestingly the max blob size is specified as 2147483647 but on my
current test client 3.18.0

insert into blobs values(zeroblob(2147483647));

fails wih string or blob too big. Not had time to investigate :(



Paul
www.sandersonforensics.com
skype: r3scue193
twitter: @sandersonforens
Tel +44 (0)1326 572786
http://sandersonforensics.com/forum/content.php?195-SQLite-Forensic-Toolkit
-Forensic Toolkit for SQLite
email from a work address for a fully functional demo licence

On 15 December 2017 at 16:30, x  wrote:

> Suppose I execute “attach :memory: as mem” and then create a table in mem
> that requires more space than the available RAM can hold what will happen?
> ___
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] What happens if an in memory database runs out of memory

2017-12-15 Thread x
Suppose I execute “attach :memory: as mem” and then create a table in mem that 
requires more space than the available RAM can hold what will happen?
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Does sqlite have official development testing tool?

2017-12-15 Thread J Decker
On Fri, Dec 15, 2017 at 7:05 AM, John G  wrote:

> If you don't have Tcl/Tk ... if you are using MacOS or Linux you already
> have it.
> On Windows you can download it from https://www.activestate.com/activetcl
>
> I have a religious prohibition against activestate bloatware :)
I found https://www.irontcl.com/ but you have to rename tclsh86t.exe to
tclsh.exe and tcl86t.lib to tcl86.lib



> John G
>
> On 14 December 2017 at 12:19, advancenOO 
> wrote:
>
> > Hello Richard,
> >
> > I hope to run some tests by myself and I think TCL tests in your link are
> > what I want.
> > There are so many .tcl and .test in Sqlite source tree.
> > Could someone share what commands I need to run to start all TCL tests?
> >
> > Thanks.
> >
> >
> >
> > --
> > Sent from: http://sqlite.1065341.n5.nabble.com/
> > ___
> > sqlite-users mailing list
> > sqlite-users@mailinglists.sqlite.org
> > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
> ___
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Does sqlite have official development testing tool?

2017-12-15 Thread John G
If you don't have Tcl/Tk ... if you are using MacOS or Linux you already
have it.
On Windows you can download it from https://www.activestate.com/activetcl

John G

On 14 December 2017 at 12:19, advancenOO 
wrote:

> Hello Richard,
>
> I hope to run some tests by myself and I think TCL tests in your link are
> what I want.
> There are so many .tcl and .test in Sqlite source tree.
> Could someone share what commands I need to run to start all TCL tests?
>
> Thanks.
>
>
>
> --
> Sent from: http://sqlite.1065341.n5.nabble.com/
> ___
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Seasonal syntax

2017-12-15 Thread Peter Da Silva
SELECT name, address
CASE behaviour
  WHEN 'nice' THEN SELECT toy FROM stocking_stuffers ORDER BY random() LIMIT 1
  WHEN 'naughty' THEN 'coal'
  ELSE phnglui mgwlnafth cthulhu
  END

___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users