shsql: faq

SQL database system
| Manual page for FAQ(TDH)

## FAQ

What real-life applications use SHSQL?

  Here are some links to the scientific resource web site that I maintain, which uses SHSQL and QUISP exclusively to do all kinds of data displays.`` Keep me informed of other success stories.``

Is SHSQL's SQL dialect standards-compliant?

  No, it strongly resembles SQL but differs in a number of respects. It is an SQL subset that is full-featured enough to be useful while keeping overall code size small.`` Differences are explained more on the specs and limitations table.``

How reliable is SHSQL? I don't want to lose any data.

  SHSQL is believed to be very reliable for light to medium duty applications, however as usual for software you get for free, there are no guarantees.`` I have had it in a production situation for several years now with no problems, other than a few incremental bug fixes.`` As with any data-modifying application, developers should test thoroughly, monitor closely during the early going, run spot consistency checks regularly, and backup data regularly.``

I have downloaded some large data files. Can I use shsql to index them and do fast retrievals?

  Yes, this is an example of the flexibility of shsql. If the data files are ascii whitespace-delimited with a field name header (more info) you can do this. Your data files can be located in the data directory or be located anywhere in the unix file system (ordinary files).`` You'll still need to set up a basic project directory structure first.``

I have software which produces some large data files. Can I use shsql to index them and do fast retrievals?

  Same answer as above.``

I want my program to update a SHSQL table file, without going thru the SHSQL api or anything.`` Is this possible?

  Yes. You can invoke your program via dataedit -c so that locking will be done properly, and indexes rebuilt automatically when your program finishes.``

How can I determine my shsql version?

  `shsql -ver`

How does shsql handle dates?

  shsql has no data types; all fields are considered alphanumeric.`` Dates (etc.) may be stored directly if using notation that sorts naturally (such as YYYY/MM/DD) , otherwise dates must be converted to a numeric equivalent (such as Julian) before reaching shsql.``

Suppose I rebuild all my indexes weekly using a cron batch process. How will that affect users?

  Users can read tables while indexes are being rebuilt.`` However, users cannot update a table while its index is being rebuilt; they will receive an "`update refused.. try again in a few minutes`" message.``

Is there a way to set up a demo database for users to try, but prohibit them from changing the database in any way?

  Yes, set dbreadonly in your config file.``

Can I join two tables that reside in two different SHSQL databases?

  The tablename`.`fieldname construct is not supported in SELECT statements.`` But you might be able to accomplish this by addressing one of the tables as an ordinary file

What other SQL options are out there?

  Another embedded SQL project that seems quite popular is sqlite.`` Word has it that it's very fast, and stores data in binary form.`` Other well-known systems include mySQL, postgreSQL, mSQL, Oracle, Sybase.``
  Copyright Steve Grubb

Markup created by unroff 1.0, `` `` April 28, 2004.