Deployment Guide
288
BY DEFAULT AS IDENTITY PRIMARY KEY, DAT VARCHAR(20)). This last form is the correct way of
defining both autoincrement and primary key in versions 1.8 and 2.0.
• CREATE ALIAS is now obsolete. Use the new function definition syntax. The org.hsqldb.Library class
no longer exists. You should use the SQL form of the old library functions. For example, use LOG(x) rather than
the direct form, "org.hsqldb.Library.log"(x).
• The names of some commands for changing database and session properties have changed. See the list of statements
in this chapter.
• Computed columns in SELECT statements which did not have an alias: These columns had no ResultMetaData
label in version 1.8, but in version 2.0, the engine generates labels such as C1, C2.
• The  issue  with  the  JDBC  ResultSetMetaData  methods,  getColumnName(int 
column)  and
getColumnLabel(int column) has been clarified by the JDBC 4 specification. getColumName() returns
the underlying column name, while getColumnLabel() returns any specified or generated alias. HyperSQL
1.8 and 2.0 have a connection property, get_column_name, which defaults to true in version 2.0, but defaulted
to false in some releases of version 1.8.x. You have to explicitly specify this property as false if you want (non-
standard behaviour) getColumnName() to return the same value as getColumnLabel().
HyperSQL Dependency Settings for Applications
Dependency settings using Gradle, Ivy, Maven, Groovy
This section is about building applications that have build-time dependencies upon HyperSQL, and for executions that
use a dependency library system. Examples of the second type are unit test runs, job runs triggered by a build system,
or systems like Grape that pull libraries from the network at end-user run time.
What version to Pull
The best option for most developers is to use our snapshot repository, or at least to depend upon the latest public version
of HyperSQL with a range pattern like [2,). Here are exceptional cases where you should depend on a static version.
• Your application has code dependencies upon version-specific details of the HyperSQL distribution. In this case,
the specific dependency specification should be checked in to your source code control system alongside the code
that manifests the version-dependency. If your code is enhanced to use a newer version of HyperSQL, you should
update the version specification so that whenever code + configs are checked out, the dependency will always match
the code.
• Your organization only allows the use of vetted libraries. In this case, you vigorously maintain your configurations,
updating your dependencies and regression testing as soon as new versions of HyperSQL are vetted. To get the best
performance and reliability from HyperSQL, you should urge the appropriate parties to vet new versions as soon
as they are publicly released.
• You need precisely reproducible builds.
If none of these situations apply to you, then follow the suggestions in the appropriate sections below. If you need
to specify a specific version, follow the instructions in the range-versioning section but change the version range
specifications to literal versions like 2.2.9.
Using the HyperSQL Snapshot Repository
Use the Latest & Greatest with Snapshots
For application testing, you may want to use the latest HSQLDB snapshot jar instead of the latest release jar. Snapshot
jars contain fixes for reported bugs and the new features as they are being tested for the next release version. You
Pdf thumbnail generator - control software platform:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Pdf thumbnail generator - control software platform:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Deployment Guide
289
can use the snapshot jars where you would normally include a dependency to a release jar as a Maven artifact. The
HyperSQL Snapshot repository resides at  http://hsqldb.org/repos/
Limitation of Classifiers
Classifiers are incompatible with real repository snapshots. Builders can only publish one jar variant per
product, and at this time our snapshot jars are always built debug-enabled with Java 6.
Where you insert the <repository> element depends on whether you want the definition to be personal, shared, or
project-specific, so see the Maven documentation about that. But you can paste this element verbatim:
Example 16.3. HyperSQL Snapshot Repository Definition
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<id>hsqldb_snapshots</id>
<name>HyperSQL Snapshots</name>
<url>http://hsqldb.org/repos</url>
<layout>default</layout>
</repository>
Snapshot Dependency Specification Examples
Example 16.4. Sample Snapshot Ivy Dependency
<dependency org="org.hsqldb" name="hsqldb" rev="SNAPSHOT" conf="buildOnly"/>
Example 16.5. Sample Snapshot Maven Dependency
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>SNAPSHOT</version>
<!-- Scope defaults to "compile":
<scope>test</scope>
-->
</dependency>
Example 16.6. Sample Snapshot Gradle Dependency
dependencies.compile (group: 'org.hsqldb', name: 'hsqldb', version:'SNAPSHOT')
dependencies {
runtime 'org.hsqldb:hsqldb:SNAPSHOT',
'org.hsqldb:sqltool:SNAPSHOT'
}
If you want to use an ivy.xml file with a Gradle build, you will need use the   Ivyxml Gradle Plugin   [https://
github.com/unsaved/gradle-ivyxml-plugin].  It  just  takes a  few  links  of  code  in  your  build.gradle  file  to
hook in ivyxml. See the   Ivyxml documentation   [https://github.com/unsaved/gradle-ivyxml-plugin/raw/master/
README.txt] to see exactly how.
control software platform:How to C#: Generate Thumbnail for Word
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel NET Twain, VB.NET Barcode Read, VB.NET Barcode Generator, view less. How to C#: Generate Thumbnail for Word.
www.rasteredge.com
control software platform:How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel NET Twain, VB.NET Barcode Read, VB.NET Barcode Generator, view less. How to C#: Set Image Thumbnail in C#.NET
www.rasteredge.com
Deployment Guide
290
Example 16.7. Sample Snapshot ivy.xml loaded by Ivyxml plugin
<ivy-module version="2.0">
...
<dependency org="org.hsqldb" name="hsqldb" rev="SNAPSHOT"/>
Example 16.8. Sample Snapshot Groovy Dependency, using Grape
@Grab(group='org.hsqldb', module='hsqldb', version='SNAPSHOT')
Range Versioning
Keeping up-to-date with Range Dependencies
Limitation of Maven Version Range Specifiers
Note that Ivy (and the many systems that use Ivy underneath, like Grape and Gradle) supports the
opening exclusive ] in addition to [, whereas Maven supports only the opening inclusive [ specifier.
See  the  relevant     Ivy     [http://ant.apache.org/ivy/history/latest-milestone/ivyfile/dependency.html]
or      Maven      [http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict
+Resolution#DependencyMediationandConflictResolution-DependencyVersionRanges]
documentation for details. There are special cases where you should depend on a specific version instead.
Range Dependency Specification Examples
Important
For all examples below, when a range pattern is given, it means the latest version equal or greater than
version 2. If a classifier is shown, it is optional and you can skip it to get the default (no-classifier) jar.
Example 16.9. Sample Range Ivy Dependency
<dependency org="org.hsqldb" name="hsqldb" rev="[2,)" conf="j6->default"/>
I give no example here of specifying a classifier in ivy.xml because I have so far failed to get that to succeed.
Classifiers in in ivy.xml are supported if using Gradle, as covered below.
Example 16.10. Sample Range Maven Dependency
See  note above  about Maven range specifications.
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>[2,)</version>
<!-- Scope defaults to "compile":
<scope>test</scope>
Use a classifier to pull one of our alternative jars:
<classifier>jdk5</classifier>
-->
</dependency>
Example 16.11. Sample Range Gradle Dependency
control software platform:How to C#: Generate Thumbnail for PowerPoint
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET NET Twain, VB.NET Barcode Read, VB.NET Barcode Generator, view less. How to C#: Generate Thumbnail for PowerPoint.
www.rasteredge.com
control software platform:VB.NET Image: Program for Creating Thumbnail from Documents and
language. It empowers VB developers to create thumbnail from multiple document and image formats, such as PDF, TIFF, GIF, BMP, etc. It
www.rasteredge.com
Deployment Guide
291
dependencies.compile (group: 'org.hsqldb', name: 'hsqldb', version:'[2,)', classifier: 'jdk5')
dependencies {
runtime 'org.hsqldb:hsqldb:[2,):jdk6debug@jar',
'org.hsqldb:sqltool:[2,):jdk6debug@jar'
}
If you want to use an ivy.xml file with a Gradle build, you will need use the   Ivyxml Gradle Plugin   [https://
github.com/unsaved/gradle-ivyxml-plugin].  It  just  takes a  few  links  of  code  in  your  build.gradle  file  to
hook in ivyxml. See the   Ivyxml documentation   [https://github.com/unsaved/gradle-ivyxml-plugin/raw/master/
README.txt] to see exactly how.
Example 16.12. Sample Range ivy.xml loaded by Ivyxml plugin
<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
...
<dependency org="org.hsqldb" name="hsqldb" rev="[2,)" m:classifier="jdk5"/>
Example 16.13. Sample Range Groovy Dependency, using Grape
@Grab(group='org.hsqldb', module='hsqldb', version='[2,)', classifier='jdk6debug')
control software platform:How to C#: Generate Thumbnail for Raster
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel NET Twain, VB.NET Barcode Read, VB.NET Barcode Generator, view less. How to C#: Generate Thumbnail for Raster
www.rasteredge.com
control software platform:Create Thumbnail in Web Image Viewer | Online Tutorials
PDF Generator. PDF Reader. Twain Scanning. DICOM Reading. Here are some functions for image and documents thumbnail creating in HTML Document Image Viewers:
www.rasteredge.com
292
Appendix A. Lists of Keywords
List of SQL Keywords
Fred Toussi, The HSQL Development Group
$Revision: 847 $
2015-06-29 22:26:45-0400
List of SQL Standard Keywords
According to the SQL Standard, the SQL Language keywords cannot be used as identifiers (names of database objects
such as columns and tables) without quoting.
HyperSQL has two modes of operation, which are selected with the SET DATABASE SQL NAMES { TRUE |
FALSE } to allow or disallow the keywords as identifiers. The default mode is FALSE and allows the use of most
keywords as identifiers. Even in this mode, keywords cannot be used as USER or ROLE identifiers. When the mode
is TRUE, none of the keywords listed below can be used as identifiers.
All keywords can be used with double quotes as identifiers. For example
CREATE TABLE "ALL" ("AND" INT, "WHEN" INT)
SELECT "AND" FROM "ALL" WHERE "WHEN" = 2020
ABS • ALL • ALLOCATE • ALTER • AND • ANY • ARE • ARRAY • AS • ASENSITIVE • ASYMMETRIC • AT
• ATOMIC • AUTHORIZATION • AVG
BEGIN • BETWEEN • BIGINT • BINARY • BLOB • BOOLEAN • BOTH • BY
CALL • CALLED • CARDINALITY • CASCADED • CASE • CAST • CEIL • CEILING • CHAR • CHAR_LENGTH
• CHARACTER • CHARACTER_LENGTH • CHECK • CLOB • CLOSE • COALESCE • COLLATE • COLLECT
• COLUMN • COMMIT • COMPARABLE • CONDITION • CONNECT • CONSTRAINT • CONVERT • CORR
• CORRESPONDING • COUNT • COVAR_POP • COVAR_SAMP • CREATE • CROSS • CUBE • CUME_DIST
• CURRENT • CURRENT_CATALOG • CURRENT_DATE • CURRENT_DEFAULT_TRANSFORM_GROUP •
CURRENT_PATH • CURRENT_ROLE • CURRENT_SCHEMA • CURRENT_TIME • CURRENT_TIMESTAMP
• CURRENT_TRANSFORM_GROUP_FOR_TYPE • CURRENT_USER • CURSOR • CYCLE
DATE • DAY • DEALLOCATE • DEC • DECIMAL • DECLARE • DEFAULT • DELETE • DENSE_RANK •
DEREF • DESCRIBE • DETERMINISTIC • DISCONNECT • DISTINCT • DO • DOUBLE • DROP • DYNAMIC
EACH • ELEMENT • ELSE • ELSEIF • END • END_EXEC • ESCAPE • EVERY • EXCEPT • EXEC • EXECUTE
• EXISTS • EXIT • EXP • EXTERNAL • EXTRACT
FALSE • FETCH • FILTER • FIRST_VALUE • FLOAT • FLOOR • FOR • FOREIGN • FREE • FROM • FULL •
FUNCTION • FUSION
GET • GLOBAL • GRANT • GROUP • GROUPING
HANDLER • HAVING • HOLD • HOUR
IDENTITY • IN • INDICATOR • INNER • INOUT • INSENSITIVE • INSERT • INT • INTEGER • INTERSECT •
INTERSECTION • INTERVAL • INTO • IS • ITERATE
JOIN
LAG
LANGUAGE  •  LARGE  •  LAST_VALUE  •  LATERAL  • LEAD  •  LEADING  •  LEAVE  •  LEFT  •  LIKE  •
LIKE_REGEX • LN • LOCAL • LOCALTIME • LOCALTIMESTAMP • LOOP • LOWER
control software platform:Create Thumbnail Winforms | Online Tutorials
PDF Generator. PDF Reader. Twain Scanning. It is easy to integrate robust thumbnail creating & viewing capabilities into your Windows Forms applications.
www.rasteredge.com
control software platform:How to C#: Overview of Using XImage.Raster
Empower to navigate image(s) content quickly via thumbnail. Able to support text extract with OCR. You may edit the tiff document easily. Create Thumbnail.
www.rasteredge.com
Lists of Keywords
293
MATCH • MAX • MAX_CARDINALITY • MEMBER • MERGE • METHOD • MIN • MINUTE • MOD • MODIFIES
• MODULE • MONTH • MULTISET
NATIONAL • NATURAL • NCHAR • NCLOB • NEW • NO • NONE • NORMALIZE • NOT • NTH_VALUE •
NTILE • NULL • NULLIF • NUMERIC
OCCURRENCES_REGEX • OCTET_LENGTH • OF • OFFSET • OLD • ON • ONLY • OPEN • OR • ORDER •
OUT • OUTER • OVER • OVERLAPS • OVERLAY
PARAMETER • PARTITION • PERCENT_RANK • PERCENTILE_CONT • PERCENTILE_DISC • POSITION •
POSITION_REGEX • POWER • PRECISION • PREPARE • PRIMARY • PROCEDURE
RANGE • RANK • READS • REAL • RECURSIVE • REF • REFERENCES • REFERENCING • REGR_AVGX •
REGR_AVGY • REGR_COUNT • REGR_INTERCEPT • REGR_R2 • REGR_SLOPE • REGR_SXX • REGR_SXY
• REGR_SYY • RELEASE • REPEAT • RESIGNAL • RESULT • RETURN • RETURNS • REVOKE • RIGHT •
ROLLBACK • ROLLUP • ROW • ROW_NUMBER • ROWS
SAVEPOINT • SCOPE • SCROLL • SEARCH • SECOND • SELECT • SENSITIVE • SESSION_USER • SET •
SIGNAL • SIMILAR • SMALLINT • SOME • SPECIFIC • SPECIFICTYPE • SQL • SQLEXCEPTION • SQLSTATE
• SQLWARNING • SQRT • STACKED • START • STATIC • STDDEV_POP • STDDEV_SAMP • SUBMULTISET
• SUBSTRING • SUBSTRING_REGEX • SUM • SYMMETRIC • SYSTEM • SYSTEM_USER
TABLE • TABLESAMPLE • THEN • TIME • TIMESTAMP • TIMEZONE_HOUR • TIMEZONE_MINUTE •
TO • TRAILING • TRANSLATE • TRANSLATE_REGEX • TRANSLATION • TREAT • TRIGGER • TRIM •
TRIM_ARRAY • TRUE • TRUNCATE
UESCAPE • UNDO • UNION • UNIQUE • UNKNOWN • UNNEST • UNTIL • UPDATE • UPPER • USER • USING
VALUE • VALUES • VAR_POP • VAR_SAMP • VARBINARY • VARCHAR • VARYING
WHEN • WHENEVER • WHERE • WIDTH_BUCKET • WINDOW • WITH • WITHIN • WITHOUT • WHILE
YEAR
List of SQL Keywords Disallowed as HyperSQL
Identifiers
When the default SET DATABASE SQL NAMES FALSE mode is used, only a subset of SQL Standard keywords
cannot be used as HyperSQL identifiers. The keywords are as follows:
ALL • AND • ANY • AS • AT • AVG
BETWEEN • BOTH • BY
CALL • CASE • CAST • COALESCE • CORRESPONDING • CONVERT • COUNT • CREATE • CROSS
DEFAULT • DISTINCT • DROP
ELSE • EVERY • EXISTS • EXCEPT
FOR • FROM • FULL
GRANT • GROUP
HAVING
Lists of Keywords
294
IN • INNER • INTERSECT • INTO • IS
JOIN
LEFT • LEADING • LIKE
MAX • MIN
NATURAL • NOT • NULLIF
ON • ORDER • OR • OUTER
PRIMARY
REFERENCES • RIGHT
SELECT • SET • SOME • STDDEV_POP • STDDEV_SAMP • SUM
TABLE • THEN • TO • TRAILING • TRIGGER
UNION • UNIQUE • USING
VALUES • VAR_POP • VAR_SAMP
WHEN • WHERE • WITH
Special Function Keywords
HyperSQL  supports  SQL  Standard  functions  that  are  called  without  parentheses.  These  functions  include
CURRENT_DATE, LOCALTIMESTAMP, TIMEZONE_HOUR, USER, etc. When the default SET DATABASE
SQL NAMES FALSE mode is used, keywords that are names of SQL functions can be used as column names without
double quotes in CREATE TABLE statements . But when the identifier is a column name and is referenced in SELECT
or other statements, the keywords must be double quoted. Otherwise the result of the SQL function is returned instead
of the column value.
HyperSQL also supports non-standard functions SYSTIMESTAMP, CURDATE, CURTIME, TODAY, SYSDATE
and NOW which can be called with or without parentheses ( e.g. NOW() or NOW ). These names can be used as
column names, but the names must be double quoted in SELECT and other statements.
295
Appendix B. Building HyperSQL Jars
How to build customized or specialized jar files
Fred Toussi, The HSQL Development Group
$Revision: 5212 $
2015-06-29 22:26:45-0400
Purpose
From version 2.0, the supplied hsqldb.jar file is built with Java 1.6. If you want to run with a 1.5 or older JVM,
or if you want to use an alternative jar (hsqldb-min.jar, etc.) you must build the desired jar with a Java SDK.
The Gradle task / Ant target explainjars reports the versions of Java and Ant actually used.
Building with Gradle
As noted above, Java SDK 5 or later is required.
Unlike most software build systems, you do not need to have the Gradle system installed on your computer to use it.
You don't need to understand the details to use it, but this is the purpose of the gradlew wrapper scripts that you can
see in HyperSQL's build directory. If you want or need to learn more about Gradle, you can start on the   Gradle
Documentation page   [http://gradle.org/documentation] on the   Gradle web site   [http://gradle.org].
Gradle honors JAVA_HOME
Gradle can find the Java to use by finding out where java is available from, but if environmental
variable JAVA_HOME is set, that will override. Therefore, if you have multiple JREs or JDKs installed, or
don't know if multiple are installed, you should set environmental variable JAVA_HOME to definitively
eliminate all ambiguity.
Rare Gotcha
Depending on your operating system, version, and how you installed your JDK, Gradle may not be
able to find the JDK. Gradle will inform you if this happens. The easiest way to fix this problem is to
set environmental variable JAVA_HOME to the root directory where your Java SDK is installed. (See
previous note for justification). So as not to get bogged down in the details here, if you don't know how
to set an environmental variable, I ask you to utilize a search engine.
Invoking a Gradle Build Graphically
Whether from an IDE, a shortcut or launch icon, to run a Gradle graphical build you just need to execute either the
file gradle-gui.cmd (on Windows) or gradle-gui (all other platforms), both of which reside in the build
directory of your HyperSQL distribution.
I will explain how to invoke a graphical Gradle build from Windows Explorer and from Eclipse IDE. Users of other
operating systems should be able to infer how to use their own file manager in the same way as shown for Internet
Explorer. Users who want a desktop shortcut, quick-launch icon should first get Gradle working from a file manager
(like Windows Explorer), then seek out instructions for making shortcuts, etc. for your operating system or desktop
manager. (Try a web search).
Some IDEs, like IntelliJ have direct support for Gradle. The Spring Framework team is working on a sophisticated
plugin for using Gradle with their IDE. But I'm going to document a very basic setup done with Eclipse because it's
serviceable and a very similar procedure is likely to work with all other IDEs.
Building HyperSQL Jars
296
If you do use and enjoy Gradle, then I urge you to make the product better by registering a free account for
yourself at  the Gradle Jira site   [http://issues.gradle.org/] and vote for critical usability issues like  GRADLE-427
[http://issues.gradle.org/browse/GRADLE-427],  GRADLE-1855   [http://issues.gradle.org/browse/GRADLE-1855],
GRADLE-1870      [http://issues.gradle.org/browse/GRADLE-1870],    GRADLE-1871      [http://issues.gradle.org/
browse/GRADLE-1871], to help to improve the product.
Procedure B.1. Invoking Gradle GUI from Windows Explorer
1. Start up Windows explorer. Depending on your Windows version, it will be in the Start Menu, or in the menu
you get when you right-click Start.
2. Navigate Windows Explorer to the build directory within your HyperSQL installation.
3. Find an icon or line (depending on your Windows Explorer view) for the file gradle-gui.cmd. If there is no
listing for gradle-gui.cmd, but two listings for gradle-gui, then you want the one signified by text, icon,
or mouse-over tooltip, as a batch or CMD file. Double-click this item.
Procedure B.2. Setting up Gradle Graphical Builds from Eclipse IDE
1. From Eclipse, use pulldown menu Run / External Tools / External Tools Configurations....
2. Right-click on Program in the left navigator Right-click Project in the left navigator panel and select New.
(Depending on the state of your workspace, instead of New in the context-sensitive menu, there may be a
New_configuration or similar item nested under Program, in which case you should select that).
3. To the right, change the value in the Name: field to HSQLDB Gradle (or whatever name you want for this
launcher config (this Gradle launcher is only for your HSQLDB project).
4. Make sure that the Main tab is selected.
5. For the Location: field, use the Browse Workspace... button to navigate to and select the gradle-gui.cmd
(Windows) or gradle-gui (other) file in the build directory of your HyperSQL project.
Building HyperSQL Jars
297
Configuring Gradle GUI Launcher in Eclipse
Depending on your Eclipse version and workspace setup, the value populated into the Location: field after you
select the program may appear very differently than in this screen shot.
6. Click the Run button. The Gradle Gui should run. (If you just Apply and Close here instead of Run, the new
Gradle launch item will not be added to the pulldown and toolbar menus).
After doing the Eclipse setup, you can use pulldown menu Run / External Tools or the equivalent tool bar button
button to launch the Gradle Gui.
Documents you may be interested
Documents you may be interested