Coming back to an old thread:
(SQLite as default DBMS driver)
On Mon, Jan 14, 2008 at 12:55 AM, Glynn Clements
<glynn@gclements.plus.com> wrote:
Hamish wrote:
> Are there any instances where the dbf driver can do some
> functionality that the sqlite driver cannot? I use the sqlite driver
> all the time for my work with no problems.
DBF works "out of the box" on all platforms and is as well tested and
implimented as these things get. Its problems are well known.
AFAIU SQLite (by default) stores the DBs for all vector maps in a
single file per mapset. This makes it hard to share individual vector
maps and may have LFS issues when your data + mapset gets to be huge.
(??)
I doubt that LFS will be an issue in practice; I doubt that you'll
find an SQLite without LFS on any platform which supports it (i.e.
everything except for ancient Unices).
It probably wouldn't be hard to modify the SQLite DBMI driver to allow
one file per map (like for DBF), but then you lose the ability to
perform joins (OTOH, if you're using DBF, you never had this ability
in the first place).
Personally, I feel that the DBF driver is sufficiently "sub par"
compared to any other DBMS that I wouldn't consider "won't work with
the DBF driver" to be a valid design consideration in GRASS.
Developers should feel free to use e.g. arithmetic operators and joins
in SQL queries, rather than being constrained by the rather limited
capabilities of the DBF driver.
Suggestion:
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is definitely
superiour to DBF (where we regularly get complaints).
If allowing one file per map isn't too hard to implement as optional feature
it might be a (last) requirement to make it the default driver.
What are the opinions?
Markus
Hi,
2009/3/5 Markus Neteler <neteler@osgeo.org>:
[...]
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is definitely
superiour to DBF (where we regularly get complaints).
If allowing one file per map isn't too hard to implement as optional feature
it might be a (last) requirement to make it the default driver.
What are the opinions?
I would agree even there are a few unsolved issues - e.g. problem with
dissolving areas based on character column data type.
M.
--
Martin Landa <landa.martin gmail.com> * http://gama.fsv.cvut.cz/~landa
Suggestion:
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is definitely
superiour to DBF (where we regularly get complaints).
Markus
+1. I think it's a great idea.
~ Eric.
On Mar 5, 2009, at 3:43 AM, Markus Neteler wrote:
Suggestion:
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is definitely
superiour to DBF (where we regularly get complaints).
If allowing one file per map isn't too hard to implement as optional feature
it might be a (last) requirement to make it the default driver.
If the joining between db files is a problem, a single file is OK with me as the default. But then have the creation of a separate db file a creation option for vectors, then there is still the convenience of being able to isolate a vector for backup or sharing.
-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/
"Time is an illusion - lunchtime doubly so."
- Ford Prefect
On 05/03/09 10:43, Markus Neteler wrote:
Coming back to an old thread:
(SQLite as default DBMS driver)
On Mon, Jan 14, 2008 at 12:55 AM, Glynn Clements
<glynn@gclements.plus.com> wrote:
Hamish wrote:
Are there any instances where the dbf driver can do some
functionality that the sqlite driver cannot? I use the sqlite driver
all the time for my work with no problems.
DBF works "out of the box" on all platforms and is as well tested and
implimented as these things get. Its problems are well known.
AFAIU SQLite (by default) stores the DBs for all vector maps in a
single file per mapset. This makes it hard to share individual vector
maps and may have LFS issues when your data + mapset gets to be huge.
(??)
I doubt that LFS will be an issue in practice; I doubt that you'll
find an SQLite without LFS on any platform which supports it (i.e.
everything except for ancient Unices).
It probably wouldn't be hard to modify the SQLite DBMI driver to allow
one file per map (like for DBF), but then you lose the ability to
perform joins (OTOH, if you're using DBF, you never had this ability
in the first place).
Personally, I feel that the DBF driver is sufficiently "sub par"
compared to any other DBMS that I wouldn't consider "won't work with
the DBF driver" to be a valid design consideration in GRASS.
Developers should feel free to use e.g. arithmetic operators and joins
in SQL queries, rather than being constrained by the rather limited
capabilities of the DBF driver.
Suggestion:
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is definitely
superiour to DBF (where we regularly get complaints).
+1
If allowing one file per map isn't too hard to implement as optional feature
it might be a (last) requirement to make it the default driver.
I think that for the same arguments as those brought forward by Glynn above, we should make single file db the default. Anyone who really needs it can easily create a per-vector db with v.db.connect.
Concerning the need to be able to easily backup/share, I think we definitely need some module which isolates and exports a series of chosen maps in a new temporary mapset with a local sqlite db file, copies the chosen maps into this temp mapset and then creates a tarball (or zip or whatever) with the basic LOCATION info (i.e. a PERMANENT mapset with PROJ and WIND files) and the temp mapset. Shouldn't be too hard to wip up, or ?
Moritz
On Thu, Mar 5, 2009 at 4:38 PM, Moritz Lennert
<mlennert@club.worldonline.be> wrote:
On 05/03/09 10:43, Markus Neteler wrote:
..
Suggestion:
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is
definitely superiour to DBF (where we regularly get complaints).
+1
If allowing one file per map isn't too hard to implement as optional
feature it might be a (last) requirement to make it the default driver.
I think that for the same arguments as those brought forward by Glynn above,
we should make single file db the default. Anyone who really needs it can
easily create a per-vector db with v.db.connect.
Remember that Glynn mentioned that joins won't work in this case.
Concerning the need to be able to easily backup/share, I think we definitely
need some module which isolates and exports a series of chosen maps in a new
temporary mapset with a local sqlite db file, copies the chosen maps into
this temp mapset and then creates a tarball (or zip or whatever) with the
basic LOCATION info (i.e. a PERMANENT mapset with PROJ and WIND files) and
the temp mapset. Shouldn't be too hard to wip up, or ?
Essentially a v.pack/v.unpack, right?
Markus
> Concerning the need to be able to easily backup/share, I
think we definitely
> need some module which isolates and exports a series of
chosen maps in a new
> temporary mapset with a local sqlite db file, copies the
chosen maps into
> this temp mapset and then creates a tarball (or zip or
whatever) with the
> basic LOCATION info (i.e. a PERMANENT mapset with PROJ and
WIND files) and
> the temp mapset. Shouldn't be too hard to wip up, or ?
Essentially a v.pack/v.unpack, right?
Markus
What would be really neat is if there was a way to delete, as well as archive a location from the startup screen.
Bob
Markus Neteler wrote:
If allowing one file per map isn't too hard to implement as optional feature
it might be a (last) requirement to make it the default driver.
AFAICT, there are two obvious ways to do this:
1. Have two SQLite drivers, one using a single file, the other using
one file per map. These can both be built from the same directory (see
the db/drivers/mysql, which builds both the mysql and mesql drivers).
2. If DB_DATABASE refers to an existing directory or ends in a slash,
create a file in that directory with the same name as the map.
Otherwise treat it as the name of the DB file used for all maps.
--
Glynn Clements <glynn@gclements.plus.com>
On 05/03/09 19:04, Markus Neteler wrote:
On Thu, Mar 5, 2009 at 4:38 PM, Moritz Lennert
<mlennert@club.worldonline.be> wrote:
On 05/03/09 10:43, Markus Neteler wrote:
..
Suggestion:
make SQLite as default DBMS driver in devel_branch6 (alias GRASS 6.5).
Since today, in 2009, the driver has received a lot of testing, is
definitely superiour to DBF (where we regularly get complaints).
+1
If allowing one file per map isn't too hard to implement as optional
feature it might be a (last) requirement to make it the default driver.
I think that for the same arguments as those brought forward by Glynn above,
we should make single file db the default. Anyone who really needs it can
easily create a per-vector db with v.db.connect.
Remember that Glynn mentioned that joins won't work in this case.
Sorry, apparently I wasn't clear: by "single-file db" I meant one db file holding all tables, so allowing joins.
Moritz
On 06/03/09 01:24, Moskovitz, Bob wrote:
Concerning the need to be able to easily backup/share, I
think we definitely
need some module which isolates and exports a series of
chosen maps in a new
temporary mapset with a local sqlite db file, copies the
chosen maps into
this temp mapset and then creates a tarball (or zip or
whatever) with the
basic LOCATION info (i.e. a PERMANENT mapset with PROJ and
WIND files) and
the temp mapset. Shouldn't be too hard to wip up, or ?
Essentially a v.pack/v.unpack, right?
Markus
What would be really neat is if there was a way to delete, as well as archive a location from the startup screen.
That should actually be much easier. Deleting just implies removing the directory from the file system, archiving just needs a call to create a tar ball or equivalent. So, essentially a small GUI to call one single command.
v.pack/v.unpack would be different in that it should deal with individual maps. even though I suggest to include the location info as sort of meta-data, but also to give the possibility to v.unpack into a new, stand-alone location. Don't know if the last is really necessary, though. Just including necessary meta-data concerning the projection system should be enough.
Moritz
Bob