[Announce] HyperSQL 2.2.8 Released

http://hsqldb.org/

HyperSQL was selected as the SourceForge Project of the Month for January 2012 and is featured on SourceForge.net home page. An interview with core developers is published here.
HyperSQL 2.2.8 Released

HSQLDB (HyperSQL DataBase) is the leading SQL relational database engine written in Java. It supports nearly full ANSI-92 SQL (BNF format) and full core SQL:2008. It offers a small, fast multithreaded and transactional database engine with in-memory and disk-based tables and supports embedded and server modes. It includes tools such as a command line SQL tool and GUI query tools.

HSQLDB supports the widest range of SQL Standard features seen in any open source database engine: SQL:2008 core language features and an extensive list of SQL:2008 optional features. Many extensions to the Standard, including features of other popular database engines, are also supported.

HyperSQL is a platform independent Java program which does not require any installation. Just extract the downloaded zip archive to some place and add ./lib/hsqldb.jar to the Java class path in the LibreOffice options.
HyperSQL 2.2.8 is downward compatible with the embedded database engine of LibreOffice.

You can easily convert your embedded databases to real ones which gives you several advantages:
- A modern database engine with more functionality than the embedded version 1.8.
- A high level of data safety because the database will not be destroyed when the office crashes which is a big issue with embedded LibreOffice databases.
- Security by means of user privileges and optional data encryption. Embedded HSQLDB provides full access to anyone.
- You can start the database engine as a service and connect multiple LibreOffice clients with different user log-ins. Encrypted connections are supported.
- And you can connect LibreOffice to the local copy of HyperSQL directly (cached mode analog to the embedded database).

For a better Base experience!
Cheers,
Andreas Säger

Hello,

As a new user, the new HSQL looks very interesting, but I am still a little
confused:

Does this mean if I setup HSQL 2.2.8 per your instructions in the original
post, I will have a database service/server running on my machine that
LibreOffice acts as frontend for? I.e. will my databse become more similar
to a MySQL or PostgreSQL server/client model, and not an embedded file
anymore? Also, is there a way to migrate existing databases created with
"vanilla" LibreOffice Base to this new HSQL?

Thanks!

Hi :slight_smile:

From what little i understand the answer to all of those questions is "Yes".  The embedded version of HSqlDb is not as good as running HSqlDb as a separate back-end with LibreOffice as 'just' the front-end.

I don't know how you would export the data but hopefully there is a way!
Regards from
Tom :slight_smile:

The answer is yes to all three questions.
       If you do this, you also need to download the latest User Guide from hsqldb.org to
learn all the new things that HSQLDB can do that Base cannot.
       Alex may have more to say about this tomorrow.
--Dan

Hi :slight_smile:
I guess that by tomorrow Dan means today as yesterday has already stopped being today several minutes ago although possibly not there.  By there i mean here as i am there since you are here from your point of view, obviously.

Goodnight all (or should that be good morning?)
Regards from
Tom :slight_smile:

To add to Andreas and Dan msgs, getting from embedded to stand-alone DB just requires to extract the DB from the LibO .odb file (which is just a compressed file, any de-zip tool will do; eg. 7-zip).

It's very easy to get the data from one Base database to another, I
think it's one of the standout features of Base.

Once you've set up the new database, using the standalone HSQLDB,
just can just drag tables from the tables area of the previous
(embedded) one and drop them onto the tables area of the new one!
How wonderful is that?!

Mark Stanton
One small step for mankind...

Am 12.04.2012 01:17, avamk wrote:

Hello,

As a new user, the new HSQL looks very interesting, but I am still a little
confused:

Does this mean if I setup HSQL 2.2.8 per your instructions in the original
post, I will have a database service/server running on my machine that
LibreOffice acts as frontend for? I.e. will my databse become more similar
to a MySQL or PostgreSQL server/client model, and not an embedded file
anymore? Also, is there a way to migrate existing databases created with
"vanilla" LibreOffice Base to this new HSQL?

Thanks!

Hi,
This is how the database connectivity was designed in OpenOffice.org 1 before there was any component called Base and it still works in this manner. A "Base document" (*.odb) is just a package container for a set of frontend tools and an _optional_ HyperSQL backend. Base "installs" (extracts) the backend databaes every time you open such an .odb file and it repackages the modified database when you close the file. Keeping the database out of the Base container is far more safe and efficient. The embedded HSQLDB deserves its merits for educational purposes. It makes it easy to exchange relational database demos on the internet.
The database can be anything connectable via ODBC or JDBC.

Thank you for all of your replies, the information is very helpful, and I
will continue to explore.

Just one more question: Would migrating to other databases (like MySQL or
PostgreSQL) be similar to how I would migrate from an *.odb file to a HSQL
database? If not, are there instructions for transitioning to MySQL or
PostgreSQL?

Thanks!

Hi,

Thank you for all of your replies, the information is very helpful, and I
will continue to explore.

Just one more question: Would migrating to other databases (like MySQL or
PostgreSQL) be similar to how I would migrate from an *.odb file to a HSQL
database? If not, are there instructions for transitioning to MySQL or
PostgreSQL?

Thanks!

--
View this message in context: http://nabble.documentfoundation.org/Announce-HyperSQL-2-2-8-Released-tp3903059p3909460.html
Sent from the Users mailing list archive at Nabble.com.

MySQL and PostgreSQL migration requires using the appropriate connector. They are found as extensions to Base. Depending on the connector you may need to enter more or less connection information.

Am 14.04.2012 04:22, avamk wrote:

Thank you for all of your replies, the information is very helpful, and I
will continue to explore.

Just one more question: Would migrating to other databases (like MySQL or
PostgreSQL) be similar to how I would migrate from an *.odb file to a HSQL
database? If not, are there instructions for transitioning to MySQL or
PostgreSQL?

No, because you start with a working database structure before you connect your Base document to it. Even if you can edit tables, fields and relations of a foreign database, you can't create such a database newly from scratch and you should abstain from editing tables, fields, indices and relations of a foreign database. Always use dedicated software for the respective type of database engine.
Having some Base connection to some source database (including spreadsheets, text etc) and another connection to a target database, you can always copy the raw data from source database to the _prepared_tables_ of the target database. Spreadsheet ranges can be copied directly.
But you should abstain from the feature which allows you to create clipboard tables from scratch. This is another big trouble maker among all the useless Base features. The copy&paste between databases is very useful but you should always append new rows to prepared tables.
There are a lot more obsolete Base features which cause more trouble than convenience. Most of the Base component which had been added to OOo v2 could be removed without losing the capability to connect, query, report and use input forms.

Am 14.04.2012 04:22, avamk wrote:
> Thank you for all of your replies, the information is very helpful, and I
> will continue to explore.
>
> Just one more question: Would migrating to other databases (like MySQL or
> PostgreSQL) be similar to how I would migrate from an *.odb file to a HSQL
> database? If not, are there instructions for transitioning to MySQL or
> PostgreSQL?
>

No, because you start with a working database structure before you
connect your Base document to it. Even if you can edit tables, fields
and relations of a foreign database, you can't create such a database
newly from scratch and you should abstain from editing tables, fields,
indices and relations of a foreign database. Always use dedicated
software for the respective type of database engine.
Having some Base connection to some source database (including
spreadsheets, text etc) and another connection to a target database, you
can always copy the raw data from source database to the
_prepared_tables_ of the target database. Spreadsheet ranges can be
copied directly.
But you should abstain from the feature which allows you to create
clipboard tables from scratch. This is another big trouble maker among
all the useless Base features. The copy&paste between databases is very
useful but you should always append new rows to prepared tables.
There are a lot more obsolete Base features which cause more trouble
than convenience. Most of the Base component which had been added to OOo
v2 could be removed without losing the capability to connect, query,
report and use input forms.

Hi Andreas,

Sorry, I can't agree with your advice to avamk on this one.

Sure you can edit tables on 'your' database, as long as he is the one
doing the work the fact that it is a server based system is meaningless
in this regard

As for Base features, the problem is that there just aren't enough of
them, or they are half done, not too many.

//drew

Am 14.04.2012 13:04, drew jensen wrote:

Hi Andreas,

Sorry, I can't agree with your advice to avamk on this one.

Sure you can edit tables on 'your' database, as long as he is the one
doing the work the fact that it is a server based system is meaningless
in this regard

As for Base features, the problem is that there just aren't enough of
them, or they are half done, not too many.

//drew

All those half done features should be removed. They don't really do what they promise to do and all they promise to do can be done without them. They do not really serve any purpose other than looking similar to MS Access but leaving new users alone in frustration.
When they come to the forums we have to explain how to do it from scratch or how to proceed where the tools left them alone.
- A table designer which supports only constant default values but not dynamic ones. It does not support the CHECK clause neither. It is a matter of seconds to type the respective ALTER TABLE commands to enable the missing features and CREATE TABLE is very easy to learn so you may even leave the table designer and the relations designer.
- The table wizard lets you compose all kind of things which is counter productive if you don't know exactly what you want while it's a waste of time if you know what you want. In particular, it does not really care about matching data types between potentially related fields. It may lead to major frustrations and next time you start with the designer since you need it anyway.
- A query designer which produces no more than most simple baby-SQL. Most of the time I click together some field names because the tool is at hand but then I finish the statement in plain text. While in design view, I avoid saving complex but working queries because they may be rendered useless by the graphical query designer.
- I can type SQL faster than I am able to do the right thing with the query wizard.
- A form wizard which supports only one pair of form/subform and for this pair only two aspects of a 1-n relation. It never creates any list box which is the key control make relations editable. The tiny little fraction of possibilities covered by the form wizard is not worth using it. Almost every time I need more than that and so I use to start on a blank Writer sheet (sometimes it's a Calc sheet).
- I don't know much about the report designer. Has there ever been a version where all features worked as advertised? For me it was very useful when I had to impress a gang of banksters, but usually I build informative ad-hoc reports on spreadsheets when formatted print data are required. With the right collection of styles in a template this is a matter of max. 5 minutes including pivot tables and charts.
- The old report wizard was the one and only feature in the whole office suite which enabled us to bind row sets to Writer tables. It is still there when you disable the report designer, but in OOo v1 we could do that trick with every stand-alone Writer document.

A hobbyist database designer like me needs one lazy Sunday afternoon for a dozend of interrelated tables and a set of input forms to edit each of the relations. The result would be the first version of something that is usable by anybody who is able to order something on ebay. It is more functional, reliable and comprehensible than what millions of people try to achieve in Excel. The development work stops at a certain point while the input forms keep on collecting data input for years to come and maintenance free. At least this is my experience with 3 Base/H2/HyperSQL-projects and I am confident that I would be able use the same database with any other frontend tool or convert the backend database to a similar backend.

Leaving aside any of the above mentioned development "helpers", just typing (or copying) plain SQL in a Notepad-like text editor and drawing forms manually, the development process would take no more than 2 extra hours (if any). My Emacs editor has an SQL mode and I added generic text snippets for auto-IDs, foreign keys and two-column ID+Name lists. It takes care of quoting and braces. Working with plain text SQL in a capable developers editor is more convenient than any of the Base tools.
In the end we are talking about development tools. We develop something which is hopfully convenient and intuitive to use while the development process can not be convenient nor intuitive because we need to fully understand all the technical abstractions in order to hide them away from the user.