Pavel Ivanov wrote:
>> That should not be a problem if I use symlink to access database for
>> reads only and
>> actual db file name for updating, isn't?
>>     
>
> I believe there can be a problem with such scenario. I don't know
> exactly but I doubt that file system can operate with locks on file
> handle open via symlink and via actual name interchangeably. And if it
> doesn't your reader can read corrupted data if it reads in the middle
> of writer's transaction...
>   

I see and can certainly change that, but you can see that my
problem is sort of opposite. I can also make any other symlink to a.db.1
then access db through it, but not directly. For example I can do

% ln -s a.db.1 foobar.db
and then access it through foobar.db, but not directly.
What could cause such problem?

--
Dmitri Priimak

> Pavel
>
> On Wed, Nov 18, 2009 at 2:15 PM, priimak <prii...@stanford.edu> wrote:
>   
>> D. Richard Hipp wrote:
>>     
>>> On Nov 18, 2009, at 1:53 PM, priimak wrote:
>>>
>>>
>>>       
>>>> Hi.
>>>>
>>>> I have a strange problem. I have a database a.db.1 and symlink a.db
>>>> which points to a.db.1
>>>> When I use command line sqlite3 command I get following.
>>>>
>>>> % echo "select max(id) from t;" | sqlite3 a.db.1
>>>> SQL error near line 1: disk I/O error
>>>>
>>>> but
>>>>
>>>> % echo "select max(id) from t;" | sqlite3 a.db
>>>> 4461066
>>>>
>>>> Could that be explained? I use sqlite3 version 3.6.7
>>>>
>>>>
>>>>         
>>> Having multiple names for the same database file (either symbolic
>>> links or hard links) can lead to database corruption following an
>>> application crash if a different application reopens the same database
>>> via a different name.  See paragraph 9.5 in 
>>> http://www.sqlite.org/atomiccommit
>>>   to understand why.  Please do not create aliases of any kind for
>>> your database files.
>>>
>>>       
>> I see. However, the problem is related to journal been named after the
>> database name.
>> That should not be a problem if I use symlink to access database for
>> reads only and
>> actual db file name for updating, isn't?
>>
>> --
>> Dmitri Priimak
>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
>>     
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>   

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to