AboutTermsPrivacyContact
 
Updating
GizmoSQL

GizmoSQL

Released: 2026-04-13
© 2026 GizmoData LLC
GizmoSQL - QR Code
Version 1.22.4
4+
Download on the App Store
Version 1.22.4
4+
Download on the App Store
Released: 2026-04-13
© 2026 GizmoData LLC

Description

The GizmoSQL app turns your iPhone or iPad into a high-performance SQL database server using the Arrow Flight SQL protocol — the same columnar data transfer standard used in enterprise analytics.
START A SERVER IN SECONDS
Choose DuckDB or SQLite as your backend, tap Start, and you have a fully functional database server running on your device. Connect from laptops, desktops, or other devices on your network using any Arrow Flight SQL client — including JDBC, ADBC (Go, Python, C++), ODBC, and Node.js drivers.
DUCKLAKE COMPATIBLE
Access your DuckLake using your GizmoSQL mobile server. The PostgreSQL and httpfs extensions are pre-loaded so you can connect to and query your data lake seamlessly.
BUILT-IN SQL CLIENT
Write and execute SQL queries directly on your device with a terminal-style interface. Features include syntax highlighting, box-drawing table output, query timing, and automatic result pagination for large datasets.
DATA BROWSER
Explore your database visually. Navigate catalogs, schemas, and tables. View column names, types, and constraints. Preview data and manage tables — all without writing a query.
KEY FEATURES
- DuckDB and SQLite database backends
- Arrow Flight SQL protocol for high-performance columnar data transfer
- Automatic TLS encryption with self-signed certificates
- Username/password authentication with JWT session tokens
- Configurable query timeout, logging, and init SQL commands
- Export database files via the Files app — copy to iCloud Drive, AirDrop, or any sharing method
- Real-time server logs with color-coded severity levels
- Active session monitoring
BUILT FOR ANALYTICS
DuckDB is an analytical database engine optimized for complex queries over large datasets. Combined with Arrow Flight SQL's columnar transport, GizmoSQL delivers fast query results whether you're running TPC-H benchmarks or exploring real-world data on the go.
CONNECT FROM ANYWHERE ON YOUR NETWORK
Once the server is running, any device on the same Wi-Fi network can connect using the displayed connection string. GizmoSQL supports the full Arrow Flight SQL protocol including prepared statements, transactions, catalog metadata, and bulk data ingest.
See: https://gizmodata.com/gizmosql for more details.
View the source code at: https://github.com/gizmodata/gizmosql

What's New in Version 1.22.4

GetTables schema now carries real per-column metadata. The Arrow schema returned via Flight SQL GetTables with include_schema=true previously came straight from SELECT * FROM t LIMIT 0, which marks every field nullable and carries no DDL metadata. DuckDBTablesWithSchemaBatchReader now also queries duckdb_columns() per table (with proper ? parameter binding) and applies:
Field.nullable ← real NOT NULL constraint (fixes DBeaver's column-browser Nullable checkbox).
Metadata ARROW:FLIGHT:SQL:REMARKS ← column comment (populates JDBC REMARKS).
Metadata ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT ← "1" when the default starts with nextval(, else "0" (populates JDBC IS_AUTOINCREMENT).
Metadata GIZMOSQL:COLUMN_DEFAULT ← the column's default expression, exposed through the GizmoSQL JDBC driver v1.6.1+ as JDBC COLUMN_DEF. Fully backward-compatible: all three metadata keys are ignored by old clients; the standard Flight SQL JDBC driver picks up REMARKS + IS_AUTO_INCREMENT for free (they are upstream Apache Arrow Flight SQL spec keys).
_gizmosql_system system catalog (DuckDB backend). Server init SQL now ATTACH ':memory:' AS _gizmosql_system and creates two JDBC-shaped metadata helper views inside it, so Flight SQL clients can recover metadata that the Flight SQL protocol itself does not expose:
Fixed
DECIMAL prepared-statement parameter binding aborts the server process. Prior to v1.22.0, executing a prepared INSERT / UPDATE bound to a DuckDB DECIMAL column could trigger Arrow's ValidateDecimalPrecision check and SIGABRT the gizmosql_server process (exit 134). Surface symptom on the client was a raw UNAVAILABLE: Network closed for unknown reason / gRPC channel termination — the server process just disappeared mid-query. Three distinct bugs in duckdb_statement.cpp::GetDataTypeFromDuckDbType were fixed together: the DECIMAL arm never populated width/scale from the DuckDB type (hardcoded 0), the arrow::smallest_decimal(...) call had its arguments flipped ((scale, width) instead of (width, scale)), and returning a Decimal32/Decimal64 type is not accepted by the Arrow Java JDBC client (which only supports Decimal128 / Decimal256). The server now emits Decimal128(width, scale) for precisions 1–38, Decimal256(width, scale) for precision > 38, and falls back to Decimal256(38, scale) when DuckDB reports width == 0 (unresolved parameter placeholders in statements like INSERT INTO t(decimal_col) VALUES (?)). Regression coverage lives in the GizmoSQL JDBC driver repo's GizmoSqlIntegrationIT.testDecimalParameterRoundTrip, exercised against gizmodata/gizmosql:latest on every JDBC CI run.
Bulk ingest with temporary=True (issue #158): Repeated adbc_ingest(..., temporary=True) calls (or any Flight SQL CommandStatementIngest with temporary=true) no longer fail with Catalog Error: Table with name "..." already exists! (for create_append/replace) or Table: "..." does not exist (for create then append). The server's table-existence check previously only consulted the current database catalog, so temporary tables — which DuckDB stores in the implicit temp.main catalog — were invisible to the lookup. TableExists() now scopes to temp.main when the ingest is temporary. Thanks again to @fromm1990 for the report and reproducer.

Seller

Name

Gizmo Data LLC

Information

Categories

Version

1.22.4

Size

63.5 MB

Game Center

No

VPP Device Licensing

Yes

Rating

Rated: 4+

Compatibility

iOS 17.0 or later

Devices

iPhone 5s, iPhone 6, iPhone 6 Plus, iPhone 6s, iPhone 6s Plus, iPhone SE, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XR, iPhone XS, iPhone XS Max, iPhone 11, iPhone 11 Pro, iPhone 11 Pro Max, iPhone SE (2nd generation), iPhone 12, iPhone 12 Pro, iPhone 12 Pro Max, iPhone 12 mini, iPhone 13, iPhone 13 Pro, iPhone 13 Pro Max, iPhone 13 mini, iPhone SE (3rd generation), iPhone 14, iPhone 14 Plus, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15, iPhone 15 Plus, iPhone 15 Pro, iPhone 15 Pro Max, iPhone 16, iPhone 16 Plus, iPhone 16 Pro, iPhone 16 Pro Max, iPhone 16e, iPhone 17, iPhone 17 Pro, iPhone 17 Pro Max, iPhone Air, iPhone 17e, iPad (5th Generation) Wi-Fi, iPad (5th Generation) Wi-Fi + Cellular, iPad (6th generation) Wi-Fi, iPad (6th generation) Wi-Fi + Cellular, iPad Pro, iPad Pro (Cellular), iPad Pro (9.7-inch), iPad Pro (9.7-inch) (Cellular), iPad Pro 12.9-inch (2nd generation), iPad Pro 12.9-inch (2nd generation) Wi-Fi + Cellular, iPad Pro (10.5-inch), iPad Pro (10.5-inch) Wi-Fi + Cellular, iPad Pro (11-inch), iPad Pro (11-inch) Wi-Fi + Cellular, iPad Pro 12.9-inch (3rd generation), iPad Pro 12.9-inch (3rd generation) Wi-Fi + Cellular, iPad Air, iPad Air (Cellular), iPad Air 2, iPad Air 2 (Cellular), iPad Air (3rd generation), iPad Air (3rd generation) Wi-Fi + Cellular, iPad mini Retina, iPad mini Retina (Cellular), iPad mini 3, iPad mini 3 (Cellular), iPad mini 4, iPad mini 4 (Cellular), iPad mini (5th Generation), iPad mini (5th Generation) Wi-Fi + Cellular, iPad (7th generation) Wi-Fi + Cellular, iPad Pro 11-inch (2nd generation), iPad Pro 11-inch (2nd generation) Wi-Fi + Cellular, iPad Pro 12.9-inch (4th generation), iPad Pro 12.9-inch (4th generation) Wi-Fi + Cellular, iPad Air (4th Generation) (Wi-Fi), iPad Air (4th Generation) (Wi-Fi + Cellular), iPad (8th generation) Wi-Fi, iPad (8th generation) Wi-Fi + Cellular, iPad Pro 11-inch (3rd generation), iPad Pro 11-inch (3rd generation) Wi-Fi + Cellular, iPad Pro 12.9-inch (5th Generation), iPad Pro 12.9-inch (5th Generation) Wi-Fi + Cellular, iPad (9th Generation), iPad (9th Generation) Wi-Fi + Cellular, iPad mini (6th Generation), iPad mini (6th Generation) Wi-Fi + Cellular, iPad Air (5th generation), iPad Air (5th generation) Wi-Fi + Cellular, iPad Pro 11-inch (4th generation), iPad Pro 11-inch (4th generation) Wi-Fi + Cellular, iPad Pro 12.9-inch (6th generation), iPad Pro 12.9-inch (6th generation) Wi-Fi + Cellular, iPad (10th generation), iPad (10th generation) Wi-Fi + Cellular, iPad Air 11-inch (M2) Wi-Fi, iPad Air 13-inch (M2) Wi-Fi, iPad Air 13-inch (M2) Wi-Fi + Cellular, iPad Pro 11-inch (M4) Wi-Fi, iPad Pro 11-inch (M4) Wi-Fi + Cellular, iPad Pro 13-inch (M4) Wi-Fi, iPad Pro 13-inch (M4) Wi-Fi + Cellular, iPad mini (A17 Pro) Wi-Fi, iPad mini (A17 Pro) Wi-Fi + Cellular, iPad (A16) Wi-Fi, iPad (A16) Wi-Fi + Cellular, iPad Air 11-inch (M3) Wi-Fi, iPad Air 11-inch (M3) Wi-Fi + Cellular, iPad Air 13-inch (M3) Wi-Fi, iPad Air 13-inch (M3) Wi-Fi + Cellular, iPad Pro 11-inch (M5) Wi-Fi, iPad Pro 11-inch (M5) Wi-Fi + Cellular, iPad Pro 13-inch (M5) Wi-Fi, iPad Pro 13-inch (M5) Wi-Fi + Cellular, iPad Air11M4, iPad Air11M4Cellular, iPad Air13M4, iPad Air13M4Cellular, iPod touch (6th Generation), iPod touch (7th generation)

Languages

English

App Store: Customer Ratings

Ratings & Reviews

0.0 of 5 (No rating)

App Store: Customer Reviews

No Entry