# FAQ

## Index

* [Is this Database Engine Open Source?](#is-this-database-engine-open-source)
* [Is Commerical Support Available?](#is-commerical-support-available)
* [How to Create a New Database?](#how-to-create-a-new-database)
* [How to Connect to a Database?](#how-to-connect-to-a-database)
* [Where are the Database Files Stored?](#where-are-the-database-files-stored)
* [What is the Size Limit of a Database?](#what-is-the-size-limit-of-a-database)
* [My Query is Slow!](#my-query-is-slow)
* [Float is Double?](#float-is-double)

## Is this Database Engine Open Source?

YES!

It's free to use and distributed, and the source code is included. See also license.

## Is Commerical Support Available?

No, currently commercial support is not available.

## How to Create a New Database?

By default, a new database is automatically created if it does not yet exist when the embedded URL is used.

## How to Connect to a Database?

The database driver is **`org.guinsoo.Driver`**, and the database URL starts with **`jdbc:guinsoo:`**. To connect to a database using JDBC, use the following code:

```java
Connection conn = DriverManager.getConnection("jdbc:guinsoo:~/test", "ga", "");
```

## Where are the Database Files Stored?

When using database URLs like **`jdbc:guinsoo:~/tset`**, the database is stored in the user directory.&#x20;

## What is the Size Limit of a Database?

See Guinsoo Limits and Limitations.

## My Query is Slow!

Slow **`SELECT`** (or **`DELETE`**, **`UPDATE`**, **`MERGE`**) statement can have multiple reasons. Follow this checklist:

* Run **`ANALYZE`** (see documentation for details)
* Run the query with **`EXPLAIN`** and check if indexes are used
* If required, create additional indexes and try again using **`ANALYZE`** and **`EXPLAIN`**
* If it doesn't help please report the problem.

## Float is Double?

For a table defined as **`CREATE TABLE TSET(X FLOAT)`** the method **`ResultSet.getObject()`** returns a **`java.lang.Double`**, I expect it to return a **`java.lang.Float`**. What's wrong?

This is not a bug. According to the JDBC specification, the JDBC data type **`FLOAT`** is equivalent to **`DOUBLE`**, and both are mapped to **`java.lang.Double`**. See also [Mapping SQL and Java Types - 8.3.10 FLOAT](https://docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/mapping.html#1055162).

Use **`REAL`** or **`FLOAT(24)`** data type for **`java.lang.Float`** values.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ciusji.gitbook.io/guinsoo/support/faq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
