[sqlite] Segmentation faults when calling sqlite3_step

2015-06-30 Thread Leroy Klompenhouwer
Eric,

We don't use text or blob fields only double, int and int64 types. Can we 
assume that all the other binds besides the text and blob are directly copied?

Leroy


-Oorspronkelijk bericht-
Van: sqlite-users-bounces at mailinglists.sqlite.org 
[mailto:sqlite-users-bounces at mailinglists.sqlite.org] Namens Eric Hill
Verzonden: dinsdag 30 juni 2015 16:10
Aan: General Discussion of SQLite Database
Onderwerp: Re: [sqlite] Segmentation faults when calling sqlite3_step

If you are calling sqlite3_bind_ to bind parameters, what are you passing 
as the last parameter? Try SQLITE_TRANSIENT to force SQLite to make a copy of 
the value right away.  Maybe currently you have values going out of scope 
before step is called.

Eric

From: Leroy Klompenhouwer
Sent: ?6/?30/?2015 9:18 AM
To: sqlite-users at mailinglists.sqlite.org
Subject: [sqlite] Segmentation faults when calling sqlite3_step

We are experiencing random segmentation faults when calling the function 
sqlite3_step(). We use prepared statements in a transaction to insert records 
in the database.

We have the following setup:

- SQLite3.8.9
- Linux 32bit
- Armv6
- SDCard with ext3 to store the database


Can anyone explain what is happening?


Leroy


Coredump output

#0  0x407ddfb8 in pcache1RemoveFromHash (pPage=pPage at entry=0x5408a100) at 
sqlite3.c:40329

#1  0x407ef850 in pcache1FetchStage2 (pCache=pCache at entry=0x534ebca0, 
iKey=iKey at entry=78573, createFlag=createFlag at entry=2) at sqlite3.c:40569

#2  0x407efa80 in pcache1Fetch (p=0x534ebca0, iKey=78573, createFlag=2) at 
sqlite3.c:40694

#3  0x40816690 in sqlite3PcacheFetchStress (ppPage=, 
pgno=78573, pCache=0x5391f120) at sqlite3.c:39495

#4  sqlite3PagerAcquire (pPager=0x5391f048, pgno=pgno at entry=78573, 
ppPage=0x4ab31474, ppPage at entry=0x4ab3146c, flags=0) at sqlite3.c:46910

#5  0x40816a28 in btreeGetPage (pBt=0x43c00b50, pgno=78573, ppPage=ppPage at 
entry=0x4ab31544, flags=) at sqlite3.c:54735

#6  0x40816a7c in getAndInitPage (pBt=, pgno=, 
ppPage=0x4ab31544, bReadonly=) at sqlite3.c:54790

#7  0x4081a9e0 in balance_nonroot (bBulk=, isRoot=0, 
aOvflSpace=0x54174710 "\310.\234SP\v\300C\320E\027T", iParentIdx=, pParent=0x53a436e8) at sqlite3.c:59731

#8  balance (pCur=0x0, pCur at entry=0x4080e1b0 ) at 
sqlite3.c:60469

#9  0x4081da60 in sqlite3BtreeInsert (pCur=0x4080e1b0 , 
pKey=, nKey=, pData=0x4086d778, nData=nData at 
entry=0, nZero=nZero at entry=0, appendBias=appendBias at entry=0,

seekResult=0) at sqlite3.c:60655

#10 0x4083adb4 in sqlite3VdbeExec (p=0x3, p at entry=0x53ffb940) at 
sqlite3.c:75444

#11 0x4083e828 in sqlite3Step (p=0x53ffb940) at sqlite3.c:69347

#12 sqlite3_step (pStmt=) at sqlite3.c:3877

#13 sqlite3_step (pStmt=) at sqlite3.c:3864


Detailed output:

#0  0x407ddfb8 in pcache1RemoveFromHash (pPage=pPage at entry=0x5408a100) at 
sqlite3.c:40329

h = 

pCache = 0x534ebca0

pp = 0x7df

#1  0x407ef850 in pcache1FetchStage2 (pCache=pCache at entry=0x534ebca0, 
iKey=iKey at entry=78573, createFlag=createFlag at entry=2) at sqlite3.c:40569

pOther = 

nPinned = 

pGroup = 0x534ebcd0

pPage = 0x5408a100

#2  0x407efa80 in pcache1Fetch (p=0x534ebca0, iKey=78573, createFlag=2) at 
sqlite3.c:40694

pCache = 0x534ebca0

pPage = 0x0

#3  0x40816690 in sqlite3PcacheFetchStress (ppPage=, 
pgno=78573, pCache=0x5391f120) at sqlite3.c:39495

pPg = 

#4  sqlite3PagerAcquire (pPager=0x5391f048, pgno=pgno at entry=78573, 
ppPage=0x4ab31474, ppPage at entry=0x4ab3146c, flags=0) at sqlite3.c:46910

pBase = 

rc = 0

pPg = 0x0

iFrame = 1082188208

noContent = 0

bMmapOk = 

#5  0x40816a28 in btreeGetPage (pBt=0x43c00b50, pgno=78573, ppPage=ppPage at 
entry=0x4ab31544, flags=) at sqlite3.c:54735

rc = 1399798980

pDbPage = 0x40816a28 

#6  0x40816a7c in getAndInitPage (pBt=, pgno=, 
ppPage=0x4ab31544, bReadonly=) at sqlite3.c:54790

rc = 

#7  0x4081a9e0 in balance_nonroot (bBulk=, isRoot=0, 
aOvflSpace=0x54174710 "\310.\234SP\v\300C\320E\027T", iParentIdx=, pParent=0x53a436e8) at sqlite3.c:59731

leafCorrection = 

leafData = 

pageFlags = 

apOld = {0x, 0x53bc8de8, 0x533c2520}

aSpace1 = 

pBt = 0x43c00b50

nMaxCells = 1403269792

subtotal = 

szScratch = 

pRight = 0x2 

nNew = 0

nxDiv = 0

iOvflSpace = 0

cntOld = {80464896, 0, 0, 78580, 1403366712}

apCell = 0x0

i = 0

apNew = {0x5391f048, 0x4cbcc00, 0x0, 0x0, 0x53a5ad38}

abDone = "\000\000\000\000"

aPgno = {1402073376, 78580, 1402073376, 1715, 6}

aPgOrder = {1087295488, 0, 124, 0, 1136659280}

j = 

rc = 0

iSpace1 = 0


[sqlite] Question about getting size of stored data

2015-06-30 Thread Jean Chevalier
Today, Michael asked:
>
> I tried the following, but it returns different sizes every
time. But my test data is the same so I think it should have the
same size.
> ...

> Can you help me to get the size of 1 row? Is it possible?

>

Hi Michael,

Have you read all about the SQLite Database File Format?
http://www.sqlite.org/fileformat2.html


[sqlite] Question about getting size of stored data

2015-06-30 Thread Simon Slavin

On 30 Jun 2015, at 1:44pm, m.g.001  wrote:

> I tried the following, but it returns different sizes every time. But my
> test data is the same so I think it should have the same size.

What do you mean by "my test data is the same" ?  Are you saying you have a 
table with two rows which have identical values ?  Because SQLite uses 
different storage sizes for different integers.  So, for example, it takes more 
memory to store the number '2' than it does to store the number '1'.

Simon.


[sqlite] Segmentation faults when calling sqlite3_step

2015-06-30 Thread Leroy Klompenhouwer
We are experiencing random segmentation faults when calling the function 
sqlite3_step(). We use prepared statements in a transaction to insert records 
in the database. 

We have the following setup: 

- SQLite3.8.9
- Linux 32bit
- Armv6
- SDCard with ext3 to store the database

?
Can anyone explain what is happening?

?
Leroy 

?
Coredump output

#0? 0x407ddfb8 in pcache1RemoveFromHash (pPage=pPage at entry=0x5408a100) at 
sqlite3.c:40329

#1? 0x407ef850 in pcache1FetchStage2 (pCache=pCache at entry=0x534ebca0, 
iKey=iKey at entry=78573, createFlag=createFlag at entry=2) at sqlite3.c:40569

#2? 0x407efa80 in pcache1Fetch (p=0x534ebca0, iKey=78573, createFlag=2) at 
sqlite3.c:40694

#3? 0x40816690 in sqlite3PcacheFetchStress (ppPage=, 
pgno=78573, pCache=0x5391f120) at sqlite3.c:39495

#4? sqlite3PagerAcquire (pPager=0x5391f048, pgno=pgno at entry=78573, 
ppPage=0x4ab31474, ppPage at entry=0x4ab3146c, flags=0) at sqlite3.c:46910

#5? 0x40816a28 in btreeGetPage (pBt=0x43c00b50, pgno=78573, ppPage=ppPage at 
entry=0x4ab31544, flags=) at sqlite3.c:54735

#6? 0x40816a7c in getAndInitPage (pBt=, pgno=, 
ppPage=0x4ab31544, bReadonly=) at sqlite3.c:54790

#7? 0x4081a9e0 in balance_nonroot (bBulk=, isRoot=0, 
aOvflSpace=0x54174710 "\310.\234SP\v\300C\320E\027T", iParentIdx=, pParent=0x53a436e8) at sqlite3.c:59731

#8? balance (pCur=0x0, pCur at entry=0x4080e1b0 ) at 
sqlite3.c:60469

#9? 0x4081da60 in sqlite3BtreeInsert (pCur=0x4080e1b0 , 
pKey=, nKey=, pData=0x4086d778, nData=nData at 
entry=0, nZero=nZero at entry=0, appendBias=appendBias at entry=0, 

seekResult=0) at sqlite3.c:60655

#10 0x4083adb4 in sqlite3VdbeExec (p=0x3, p at entry=0x53ffb940) at 
sqlite3.c:75444

#11 0x4083e828 in sqlite3Step (p=0x53ffb940) at sqlite3.c:69347

#12 sqlite3_step (pStmt=) at sqlite3.c:3877

#13 sqlite3_step (pStmt=) at sqlite3.c:3864

?
Detailed output:

#0? 0x407ddfb8 in pcache1RemoveFromHash (pPage=pPage at entry=0x5408a100) at 
sqlite3.c:40329

??? h = 

??? pCache = 0x534ebca0

??? pp = 0x7df

#1? 0x407ef850 in pcache1FetchStage2 (pCache=pCache at entry=0x534ebca0, 
iKey=iKey at entry=78573, createFlag=createFlag at entry=2) at sqlite3.c:40569

??? pOther = 

??? nPinned = 

??? pGroup = 0x534ebcd0

??? pPage = 0x5408a100

#2? 0x407efa80 in pcache1Fetch (p=0x534ebca0, iKey=78573, createFlag=2) at 
sqlite3.c:40694

??? pCache = 0x534ebca0

??? pPage = 0x0

#3? 0x40816690 in sqlite3PcacheFetchStress (ppPage=, 
pgno=78573, pCache=0x5391f120) at sqlite3.c:39495

??? pPg = 

#4? sqlite3PagerAcquire (pPager=0x5391f048, pgno=pgno at entry=78573, 
ppPage=0x4ab31474, ppPage at entry=0x4ab3146c, flags=0) at sqlite3.c:46910

??? pBase = 

??? rc = 0

??? pPg = 0x0

??? iFrame = 1082188208

??? noContent = 0

??? bMmapOk = 

#5? 0x40816a28 in btreeGetPage (pBt=0x43c00b50, pgno=78573, ppPage=ppPage at 
entry=0x4ab31544, flags=) at sqlite3.c:54735

??? rc = 1399798980

??? pDbPage = 0x40816a28 

#6? 0x40816a7c in getAndInitPage (pBt=, pgno=, 
ppPage=0x4ab31544, bReadonly=) at sqlite3.c:54790

??? rc = 

#7? 0x4081a9e0 in balance_nonroot (bBulk=, isRoot=0, 
aOvflSpace=0x54174710 "\310.\234SP\v\300C\320E\027T", iParentIdx=, pParent=0x53a436e8) at sqlite3.c:59731

??? leafCorrection = 

??? leafData = 

??? pageFlags = 

??? apOld = {0x, 0x53bc8de8, 0x533c2520}

??? aSpace1 = 

??? pBt = 0x43c00b50

??? nMaxCells = 1403269792

??? subtotal = 

??? szScratch = 

??? pRight = 0x2 

??? nNew = 0

??? nxDiv = 0

??? iOvflSpace = 0

??? cntOld = {80464896, 0, 0, 78580, 1403366712}

??? apCell = 0x0

??? i = 0

??? apNew = {0x5391f048, 0x4cbcc00, 0x0, 0x0, 0x53a5ad38}

??? abDone = "\000\000\000\000"

??? aPgno = {1402073376, 78580, 1402073376, 1715, 6}

??? aPgOrder = {1087295488, 0, 124, 0, 1136659280}

??? j = 

??? rc = 0

??? iSpace1 = 0

??? szNew = {17, 17, 1082063336, 78580, 1402073160}

??? pgno = 1403366712

??? k = 

??? apDiv = {0x5418e14f "", 0x5418e13e ""}

??? cntNew = {1404621896, 746250, 0, 65540, 1082010372}

??? szCell = 

??? nCell = 0

??? nOld = 1403269800

??? usableSpace = 

??? aPgFlags = {46552, 21503, 2, 0, 5456}

#8? balance (pCur=0x0, pCur at entry=0x4080e1b0 ) at 
sqlite3.c:60469

??? pSpace = 0x5418def8 "\350\336\030T\350\336\030Tl"

??? pParent = 0x53a436e8

??? iIdx = 

??? iPage = 1253250376

??? pPage = 0x18

??? rc = 

??? nMin = 3

??? aBalanceQuickSpace = "\210h\266 at N\001\000\000\004\000\001@("

??? pFree = 0x17 

#9? 0x4081da60 in sqlite3BtreeInsert (pCur=0x4080e1b0 , 
pKey=, nKey=, pData=0x4086d778, nData=nData at 
entry=0, nZero=nZero at entry=0, appendBias=appendBias at entry=0, 

seekResult=0) at sqlite3.c:60655

??? rc = 13

??? loc = 1082629864

??? szNew = 1410121556

??? idx = 

??? pPage = 0x0


[sqlite] Question about getting size of stored data

2015-06-30 Thread m.g.001
Hello,

I am new to this mailinglist. I think I have to send my question here.   My
Name is Michael and I come from Germany. At the moment I develope a few
android apps for my study. 
Is it possbile to get the size of one stored row inside my sqlite database?



I tried the following, but it returns different sizes every time. But my
test data is the same so I think it should have the same size.



public long getObjectSize(MyData data)

{

if(getSize() == 0)
//because i don't want to divide by zero

{

insertOneFakeData(data);

}

long vorvorherdatasize = getDataSize();

long checkdatasize;

do
//this is for writing till the end of the current block size

{

insertOneFakeData(data);

checkdatasize = getDataSize();

}while(checkdatasize == vorvorherdatasize);

//dataSize changed, so size-1 should be the number ob rows stored in
the old size.

long vorhersize = getSize()-1;
//number of elements before next write

long vorherdatasize = getDataSize();
//Size of the file before next write

do

{

insertOneFakeData(data);

checkdatasize = getDataSize();

}while(checkdatasize == vorherdatasize);

long nachherdatasize = checkdatasize;

long nachhersize = getSize()-1;
//number of rows before new block was reserved

long size = nachhersize - vorhersize;
//number of elements in the last block

long datasize = vorherdatasize - vorvorherdatasize;
//datasize oft he last block

long objectSize = datasize / size; //my
try to get the size of 1 row

return objectSize;

}



Only for completeness my other used methods:
public long getDataSize()//returns size of file in which my database is
stored

  {

  SQLiteDatabase db = this.getWritableDatabase();

  db.getPath();

  long size = new File(db.getPath()).length();

  return size;

  }



public long getSize() //returns number of rows in my database

{

  Log.i("ESmartDataManager","getSize");

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery("SELECT " 

  + _ID + ", " 

  + CANID + ", " 

  + RTR +", " 

  + IDE + ", "

  + DLC + ", " 

  + TIMESTAMP + ", "

  + DATA  

  + " FROM " 

  + FAKETABLE_NAME , null);   

  return cursor.getCount();

}







Can you help me to get the size of 1 row? Is it possible?





[sqlite] Segmentation faults when calling sqlite3_step

2015-06-30 Thread Eric Hill
If you are calling sqlite3_bind_ to bind parameters, what are you passing 
as the last parameter? Try SQLITE_TRANSIENT to force SQLite to make a copy of 
the value right away.  Maybe currently you have values going out of scope 
before step is called.

Eric

From: Leroy Klompenhouwer
Sent: ?6/?30/?2015 9:18 AM
To: sqlite-users at mailinglists.sqlite.org
Subject: [sqlite] Segmentation faults when calling sqlite3_step

We are experiencing random segmentation faults when calling the function 
sqlite3_step(). We use prepared statements in a transaction to insert records 
in the database.

We have the following setup:

- SQLite3.8.9
- Linux 32bit
- Armv6
- SDCard with ext3 to store the database


Can anyone explain what is happening?


Leroy


Coredump output

#0  0x407ddfb8 in pcache1RemoveFromHash (pPage=pPage at entry=0x5408a100) at 
sqlite3.c:40329

#1  0x407ef850 in pcache1FetchStage2 (pCache=pCache at entry=0x534ebca0, 
iKey=iKey at entry=78573, createFlag=createFlag at entry=2) at sqlite3.c:40569

#2  0x407efa80 in pcache1Fetch (p=0x534ebca0, iKey=78573, createFlag=2) at 
sqlite3.c:40694

#3  0x40816690 in sqlite3PcacheFetchStress (ppPage=, 
pgno=78573, pCache=0x5391f120) at sqlite3.c:39495

#4  sqlite3PagerAcquire (pPager=0x5391f048, pgno=pgno at entry=78573, 
ppPage=0x4ab31474, ppPage at entry=0x4ab3146c, flags=0) at sqlite3.c:46910

#5  0x40816a28 in btreeGetPage (pBt=0x43c00b50, pgno=78573, ppPage=ppPage at 
entry=0x4ab31544, flags=) at sqlite3.c:54735

#6  0x40816a7c in getAndInitPage (pBt=, pgno=, 
ppPage=0x4ab31544, bReadonly=) at sqlite3.c:54790

#7  0x4081a9e0 in balance_nonroot (bBulk=, isRoot=0, 
aOvflSpace=0x54174710 "\310.\234SP\v\300C\320E\027T", iParentIdx=, pParent=0x53a436e8) at sqlite3.c:59731

#8  balance (pCur=0x0, pCur at entry=0x4080e1b0 ) at 
sqlite3.c:60469

#9  0x4081da60 in sqlite3BtreeInsert (pCur=0x4080e1b0 , 
pKey=, nKey=, pData=0x4086d778, nData=nData at 
entry=0, nZero=nZero at entry=0, appendBias=appendBias at entry=0,

seekResult=0) at sqlite3.c:60655

#10 0x4083adb4 in sqlite3VdbeExec (p=0x3, p at entry=0x53ffb940) at 
sqlite3.c:75444

#11 0x4083e828 in sqlite3Step (p=0x53ffb940) at sqlite3.c:69347

#12 sqlite3_step (pStmt=) at sqlite3.c:3877

#13 sqlite3_step (pStmt=) at sqlite3.c:3864


Detailed output:

#0  0x407ddfb8 in pcache1RemoveFromHash (pPage=pPage at entry=0x5408a100) at 
sqlite3.c:40329

h = 

pCache = 0x534ebca0

pp = 0x7df

#1  0x407ef850 in pcache1FetchStage2 (pCache=pCache at entry=0x534ebca0, 
iKey=iKey at entry=78573, createFlag=createFlag at entry=2) at sqlite3.c:40569

pOther = 

nPinned = 

pGroup = 0x534ebcd0

pPage = 0x5408a100

#2  0x407efa80 in pcache1Fetch (p=0x534ebca0, iKey=78573, createFlag=2) at 
sqlite3.c:40694

pCache = 0x534ebca0

pPage = 0x0

#3  0x40816690 in sqlite3PcacheFetchStress (ppPage=, 
pgno=78573, pCache=0x5391f120) at sqlite3.c:39495

pPg = 

#4  sqlite3PagerAcquire (pPager=0x5391f048, pgno=pgno at entry=78573, 
ppPage=0x4ab31474, ppPage at entry=0x4ab3146c, flags=0) at sqlite3.c:46910

pBase = 

rc = 0

pPg = 0x0

iFrame = 1082188208

noContent = 0

bMmapOk = 

#5  0x40816a28 in btreeGetPage (pBt=0x43c00b50, pgno=78573, ppPage=ppPage at 
entry=0x4ab31544, flags=) at sqlite3.c:54735

rc = 1399798980

pDbPage = 0x40816a28 

#6  0x40816a7c in getAndInitPage (pBt=, pgno=, 
ppPage=0x4ab31544, bReadonly=) at sqlite3.c:54790

rc = 

#7  0x4081a9e0 in balance_nonroot (bBulk=, isRoot=0, 
aOvflSpace=0x54174710 "\310.\234SP\v\300C\320E\027T", iParentIdx=, pParent=0x53a436e8) at sqlite3.c:59731

leafCorrection = 

leafData = 

pageFlags = 

apOld = {0x, 0x53bc8de8, 0x533c2520}

aSpace1 = 

pBt = 0x43c00b50

nMaxCells = 1403269792

subtotal = 

szScratch = 

pRight = 0x2 

nNew = 0

nxDiv = 0

iOvflSpace = 0

cntOld = {80464896, 0, 0, 78580, 1403366712}

apCell = 0x0

i = 0

apNew = {0x5391f048, 0x4cbcc00, 0x0, 0x0, 0x53a5ad38}

abDone = "\000\000\000\000"

aPgno = {1402073376, 78580, 1402073376, 1715, 6}

aPgOrder = {1087295488, 0, 124, 0, 1136659280}

j = 

rc = 0

iSpace1 = 0

szNew = {17, 17, 1082063336, 78580, 1402073160}

pgno = 1403366712

k = 

apDiv = {0x5418e14f "", 0x5418e13e ""}

cntNew = {1404621896, 746250, 0, 65540, 1082010372}

szCell = 

nCell = 0

nOld = 1403269800

usableSpace = 

aPgFlags = {46552, 21503, 2, 0, 5456}

#8  balance (pCur=0x0, pCur at entry=0x4080e1b0 ) at 
sqlite3.c:60469

pSpace = 0x5418def8 "\350\336\030T\350\336\030Tl"

pParent = 

[sqlite] Tables and Columns of Database of Whatsapp

2015-06-30 Thread da...@andl.org
It's usually pretty safe to ignore what the law has to say about copyright,
because by the time that matters you would have to be dealing with lawyers.
That's not the problem.

What you seriously want to avoid is doing things that attract the attention
of lawyers, because they have a habit of making things expensive. The bigger
the company, the bigger the law firm and the more expensive they like to
make it.

Regardless of the law, if there is a serious risk of attracting the
attention of WhatsApp or their lawyers, you might want to reconsider.

And the best way to avoid attracting attention is not to tell anyone what
you're doing. There is a reasonable chance that just posting the application
name on a mailing list like this (which has a web-facing public interface)
will be enough that eventually it will get you noticed. With the
lawyer-related consequences mentioned above.

This is not the way I would recommend going about a project like this.

Regards
David M Bennett FACS

Andl - A New Database Language - andl.org

-Original Message-
From: sqlite-users-boun...@mailinglists.sqlite.org
[mailto:sqlite-users-bounces at mailinglists.sqlite.org] On Behalf Of Darko
Volaric
Sent: Tuesday, 30 June 2015 1:47 PM
To: General Discussion of SQLite Database
Subject: Re: [sqlite] Tables and Columns of Database of Whatsapp

It should be kept in mind that lawyers routinely put things in these
"click-through agreements" that is unenforceable or illegal.

It may be perfectly legal to reverse engineer, for example: ( from
https://www.eff.org/issues/coders/reverse-engineering-faq )

"Courts have found that reverse engineering for interoperability, for
example, can be a fair use."

If it's being used for teaching it can also be fair use: ( from
http://www.teachingcopyright.org/handout/fair-use-faq )

"the court found that the biographer's use was fair, in part because the
biographer's purpose was to educate and inform the public"

Of course this reflects US law but it most likely also applies in Germany,
and is probably even more favorable for fair use there.


On Mon, Jun 29, 2015 at 6:42 AM, John McKown 
wrote:

> On Sun, Jun 28, 2015 at 7:24 AM,  wrote:
>
> > Hi,
> >
> > I teach pupils SQL in school.
> >
> > I want to create exercises about the SQLite database of Whatsapp.
> >
> > Can you tell me the names of tables and the names of columns?
> >
> > For the tables, I'll think of data.
> >
> > Thank you,
> >
> > Bob
> >
>
> I'm going to go a bit sideways on this, I hope it is not objectionable.
> Have you contacted Whatsapp about this? I ask because on their web 
> site at https://www.whatsapp.com/legal/, it specifically has legalese
saying "
> (iii) you will not attempt to reverse engineer, alter or modify any 
> part of the Service;" I am not any kind of a lawyer. But it _might_ be 
> argued (similar to Oracle vs. Google on the Java API) that the schema 
> of the SQLite data base is "part of the Service" and that, especially 
> by using it for teaching purposes, you are "reverse engineering" it. 
> Yes, likely a extreme position. But IP lawyers can be sharks. Just 
> myself, personally, I'd contact Whatsapp and simply ask permission, 
> perhaps explaining what you want to do and why you thought that their 
> DB would be a good teaching scenario for your students.
>
> Again, I'm just trying urge caution in today's litigious society. I 
> don't mean to imply that you are doing anything illegal or immoral (or 
> fattening ).
>
>
> --
>
> Schrodinger's backup: The condition of any backup is unknown until a 
> restore is attempted.
>
> Yoda of Borg, we are. Futile, resistance is, yes. Assimilated, you will
be.
>
> My sister opened a computer store in Hawaii. She sells C shells down 
> by the seashore.
> If someone tell you that nothing is impossible:
> Ask him to dribble a football.
>
> He's about as useful as a wax frying pan.
>
> 10 to the 12th power microphones = 1 Megaphone
>
> Maranatha! <><
> John McKown
> ___
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
___
sqlite-users mailing list
sqlite-users at mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



[sqlite] Tables and Columns of Database of Whatsapp

2015-06-30 Thread Stephen Chrzanowski
There are a few posts in this mailing list that have people putting up
public domain database structures, with data, for different things to
track.  Google search also has come up with a few out there as well, but,
you really got to nail down the query as just searching for "Public domain
database" puts SQLite itself up at the top of the list.

If you want to work ground up, I'd recommend coming up with one of the
following
- Address/Contact book (Already mentioned)
- Game tracking database
- Twitter type of  database
- Notes database (Say, heading, sub-headings, content, footers stored in a
different table, etc)
- Library database - Keep tabs on owned books, ISBN numbers (Plenty of free
ISBN lookup services), who's borrowed what
- Authentication system


On Sun, Jun 28, 2015 at 8:24 AM,  wrote:

> Hi,
>
> I teach pupils SQL in school.
>
> I want to create exercises about the SQLite database of Whatsapp.
>
> Can you tell me the names of tables and the names of columns?
>
> For the tables, I'll think of data.
>
> Thank you,
>
> Bob
> ___
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>


[sqlite] Tables and Columns of Database of Whatsapp

2015-06-30 Thread Paul Sanderson
The WhatsApp db is encrypted (using encrypt7 IIRC) - there are sources
on the web that show how to get around this - but it's not trivial.
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 30 June 2015 at 06:34, Scott Doctor  wrote:
>
> If you are attempting to teach SQL, why not just use a
> simple example, such as an address book. Probably more
> informative to work through the process of creating a
> simple address table, then adding a second table of
> people to discuss foreign keys and such. Two people may
> link to the same address. Forinstance, they are from
> the same family, or work at thesame company. Reverse
> engineering an applications databaseprobably introduces
> much more complexity than should beintroduced if the
> students do not already understand SQL.
>
> 
> Scott Doctor
> scott at scottdoctor.com
> --
>
>
>
> ___
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] Tables and Columns of Database of Whatsapp

2015-06-30 Thread Simon Slavin

On 30 Jun 2015, at 4:47am, Darko Volaric  wrote:

> If it's being used for teaching it can also be fair use: ( from
> http://www.teachingcopyright.org/handout/fair-use-faq )
> 
> "the court found that the biographer's use was fair, in part because the
> biographer's purpose was to educate and inform the public"
> 
> Of course this reflects US law but it most likely also applies in Germany,
> and is probably even more favorable for fair use there.

I work for a university.  We're allowed to reverse-engineer and break some 
other intellectual property rights (or rather to exploit the exceptions made 
for education).  But we have big expensive lawyers and sometimes have to 
actually pay them to respond to threats for us.

As for using the SQLite command-line tool to find out the schema of a SQLite 
database, I cannot take this seriously as reverse-engimeering.  The ability 
exists and is easy to exploit in most SQL systems.  It's not even hard work: 
you run one program and type one command.  If that's reverse-engineering then 
so is turning an office chair over to see why the wheels aren't rolling freely.

Simon.