From ce5fee25a561c8669f62a5dc7c2c91b9abf8f537 Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Mon, 19 Jan 2026 16:18:02 +0530 Subject: [PATCH 1/5] Add new string types to tables section of docs --- .../docs/products/databases/tables/+page.markdoc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/routes/docs/products/databases/tables/+page.markdoc b/src/routes/docs/products/databases/tables/+page.markdoc index f2daebbb0f..ae9b0dcdbd 100644 --- a/src/routes/docs/products/databases/tables/+page.markdoc +++ b/src/routes/docs/products/databases/tables/+page.markdoc @@ -1226,7 +1226,10 @@ You can choose between the following types. | Column | Description | |--------------|------------------------------------------------------------------| -| `string` | String column. | +| `varchar` | String column. Maximum 16,383 characters. | +| `text` | Text column. Maximum 16,383 characters. | +| `mediumtext` | Text column. Maximum 4,194,303 characters. | +| `longtext` | Text column. Maximum 1,073,741,823 characters. | | `integer` | Integer column. | | `float` | Float column. | | `boolean` | Boolean column. | @@ -1239,6 +1242,11 @@ You can choose between the following types. | `line` | Geographic line represented by an ordered list of coordinates. | | `polygon` | Geographic polygon representing a closed area; supports interior holes. | | `relationship` | Relationship column relates one table to another. [Learn more about relationships.](/docs/products/databases/relationships) | +| `string` | **Deprecated.** Use `varchar`, `text`, `mediumtext`, or `longtext` instead. | + +{% info title="Migrating from string columns" %} +The `string` type is deprecated. Internally, `string` columns dynamically switch between `varchar`, `text`, `mediumtext`, and `longtext` based on the size you specify. Existing `string` columns will change to the appropriate text type based on the size of the existing data. +{% /info %} If an column must be populated in all rows, set it as `required`. If not, you may optionally set a default value. From 02df970a7a43b18fd0ce797a1cc2b8fdbf5927b5 Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Mon, 19 Jan 2026 16:51:56 +0530 Subject: [PATCH 2/5] fixes and update examples --- .../products/databases/tables/+page.markdoc | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/routes/docs/products/databases/tables/+page.markdoc b/src/routes/docs/products/databases/tables/+page.markdoc index ae9b0dcdbd..363e078f0d 100644 --- a/src/routes/docs/products/databases/tables/+page.markdoc +++ b/src/routes/docs/products/databases/tables/+page.markdoc @@ -48,7 +48,7 @@ const promise = tablesDB.createTable({ }, { key: 'name', - type: 'string', + type: 'varchar', size: 255, required: true }, @@ -165,7 +165,7 @@ let promise = tablesDB.createTable({ }, { key: 'name', - type: 'string', + type: 'varchar', size: 255, required: true }, @@ -284,7 +284,7 @@ $result = $tablesDB->createTable( ], [ 'key' => 'name', - 'type' => 'string', + 'type' => 'varchar', 'size' => 255, 'required' => true ], @@ -395,7 +395,7 @@ result = tablesDB.create_table( }, { 'key': 'name', - 'type': 'string', + 'type': 'varchar', 'size': 255, 'required': True }, @@ -504,7 +504,7 @@ response = tablesDB.create_table( }, { key: 'name', - type: 'string', + type: 'varchar', size: 255, required: true }, @@ -618,7 +618,7 @@ Table result = await tablesDB.CreateTable( new Dictionary { { "key", "name" }, - { "type", "string" }, + { "type", "varchar" }, { "size", 255 }, { "required", true } }, @@ -742,7 +742,7 @@ void main() { // Init SDK }, { 'key': 'name', - 'type': 'string', + 'type': 'varchar', 'size': 255, 'required': true }, @@ -858,7 +858,7 @@ val response = tablesDB.createTable( ), mapOf( "key" to "name", - "type" to "string", + "type" to "varchar", "size" to 255, "required" to true ), @@ -964,7 +964,7 @@ List> columns = Arrays.asList( }}, new HashMap() {{ put("key", "name"); - put("type", "string"); + put("type", "varchar"); put("size", 255); put("required", true); }}, @@ -1087,7 +1087,7 @@ let table = try await tablesDB.createTable( ], [ "key": "name", - "type": "string", + "type": "varchar", "size": 255, "required": true ], @@ -1226,10 +1226,10 @@ You can choose between the following types. | Column | Description | |--------------|------------------------------------------------------------------| -| `varchar` | String column. Maximum 16,383 characters. | -| `text` | Text column. Maximum 16,383 characters. | -| `mediumtext` | Text column. Maximum 4,194,303 characters. | -| `longtext` | Text column. Maximum 1,073,741,823 characters. | +| `varchar` | String column. Fully indexable if size < 768. Maximum 16,383 characters. | +| `text` | Text column. Prefix indexing only. Maximum 16,383 characters. | +| `mediumtext` | Text column. Prefix indexing only. Maximum 4,194,303 characters. | +| `longtext` | Text column. Prefix indexing only. Maximum 1,073,741,823 characters. | | `integer` | Integer column. | | `float` | Float column. | | `boolean` | Boolean column. | From a8d4e17cf7b3ffc465fc402b8a1dff0205547af0 Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Mon, 19 Jan 2026 16:57:53 +0530 Subject: [PATCH 3/5] data -> column --- src/routes/docs/products/databases/tables/+page.markdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/docs/products/databases/tables/+page.markdoc b/src/routes/docs/products/databases/tables/+page.markdoc index 363e078f0d..102e1516ea 100644 --- a/src/routes/docs/products/databases/tables/+page.markdoc +++ b/src/routes/docs/products/databases/tables/+page.markdoc @@ -1245,7 +1245,7 @@ You can choose between the following types. | `string` | **Deprecated.** Use `varchar`, `text`, `mediumtext`, or `longtext` instead. | {% info title="Migrating from string columns" %} -The `string` type is deprecated. Internally, `string` columns dynamically switch between `varchar`, `text`, `mediumtext`, and `longtext` based on the size you specify. Existing `string` columns will change to the appropriate text type based on the size of the existing data. +The `string` type is deprecated. Internally, `string` columns dynamically switch between `varchar`, `text`, `mediumtext`, and `longtext` based on the size you specify. Existing `string` columns will change to the appropriate text type based on the size of the existing column. {% /info %} If an column must be populated in all rows, set it as `required`. From e5d3ee786985fe37b089ff1a94f5b77df9e65f65 Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Tue, 3 Feb 2026 17:24:22 +0530 Subject: [PATCH 4/5] remove string deprecation note block, only move to bottom of list and mark deprecated --- src/routes/docs/products/databases/tables/+page.markdoc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/routes/docs/products/databases/tables/+page.markdoc b/src/routes/docs/products/databases/tables/+page.markdoc index 102e1516ea..c705ed4b84 100644 --- a/src/routes/docs/products/databases/tables/+page.markdoc +++ b/src/routes/docs/products/databases/tables/+page.markdoc @@ -1244,10 +1244,6 @@ You can choose between the following types. | `relationship` | Relationship column relates one table to another. [Learn more about relationships.](/docs/products/databases/relationships) | | `string` | **Deprecated.** Use `varchar`, `text`, `mediumtext`, or `longtext` instead. | -{% info title="Migrating from string columns" %} -The `string` type is deprecated. Internally, `string` columns dynamically switch between `varchar`, `text`, `mediumtext`, and `longtext` based on the size you specify. Existing `string` columns will change to the appropriate text type based on the size of the existing column. -{% /info %} - If an column must be populated in all rows, set it as `required`. If not, you may optionally set a default value. Additionally, decide if the column should be a single value or an array of values. From f18fb32701489de51f79d0bdb7d5ae41b362f782 Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Fri, 6 Feb 2026 20:50:55 +0530 Subject: [PATCH 5/5] address comments --- .../products/databases/tables/+page.markdoc | 153 ++++++++++++++++++ 1 file changed, 153 insertions(+) diff --git a/src/routes/docs/products/databases/tables/+page.markdoc b/src/routes/docs/products/databases/tables/+page.markdoc index c705ed4b84..78ca5c5781 100644 --- a/src/routes/docs/products/databases/tables/+page.markdoc +++ b/src/routes/docs/products/databases/tables/+page.markdoc @@ -52,6 +52,21 @@ const promise = tablesDB.createTable({ size: 255, required: true }, + { + key: 'bio', + type: 'text', + required: false + }, + { + key: 'content', + type: 'mediumtext', + required: false + }, + { + key: 'data', + type: 'longtext', + required: false + }, { key: 'age', type: 'integer', @@ -169,6 +184,21 @@ let promise = tablesDB.createTable({ size: 255, required: true }, + { + key: 'bio', + type: 'text', + required: false + }, + { + key: 'content', + type: 'mediumtext', + required: false + }, + { + key: 'data', + type: 'longtext', + required: false + }, { key: 'age', type: 'integer', @@ -288,6 +318,21 @@ $result = $tablesDB->createTable( 'size' => 255, 'required' => true ], + [ + 'key' => 'bio', + 'type' => 'text', + 'required' => false + ], + [ + 'key' => 'content', + 'type' => 'mediumtext', + 'required' => false + ], + [ + 'key' => 'data', + 'type' => 'longtext', + 'required' => false + ], [ 'key' => 'age', 'type' => 'integer', @@ -399,6 +444,21 @@ result = tablesDB.create_table( 'size': 255, 'required': True }, + { + 'key': 'bio', + 'type': 'text', + 'required': False + }, + { + 'key': 'content', + 'type': 'mediumtext', + 'required': False + }, + { + 'key': 'data', + 'type': 'longtext', + 'required': False + }, { 'key': 'age', 'type': 'integer', @@ -508,6 +568,21 @@ response = tablesDB.create_table( size: 255, required: true }, + { + key: 'bio', + type: 'text', + required: false + }, + { + key: 'content', + type: 'mediumtext', + required: false + }, + { + key: 'data', + type: 'longtext', + required: false + }, { key: 'age', type: 'integer', @@ -623,6 +698,24 @@ Table result = await tablesDB.CreateTable( { "required", true } }, new Dictionary + { + { "key", "bio" }, + { "type", "text" }, + { "required", false } + }, + new Dictionary + { + { "key", "content" }, + { "type", "mediumtext" }, + { "required", false } + }, + new Dictionary + { + { "key", "data" }, + { "type", "longtext" }, + { "required", false } + }, + new Dictionary { { "key", "age" }, { "type", "integer" }, @@ -746,6 +839,21 @@ void main() { // Init SDK 'size': 255, 'required': true }, + { + 'key': 'bio', + 'type': 'text', + 'required': false + }, + { + 'key': 'content', + 'type': 'mediumtext', + 'required': false + }, + { + 'key': 'data', + 'type': 'longtext', + 'required': false + }, { 'key': 'age', 'type': 'integer', @@ -862,6 +970,21 @@ val response = tablesDB.createTable( "size" to 255, "required" to true ), + mapOf( + "key" to "bio", + "type" to "text", + "required" to false + ), + mapOf( + "key" to "content", + "type" to "mediumtext", + "required" to false + ), + mapOf( + "key" to "data", + "type" to "longtext", + "required" to false + ), mapOf( "key" to "age", "type" to "integer", @@ -968,6 +1091,21 @@ List> columns = Arrays.asList( put("size", 255); put("required", true); }}, + new HashMap() {{ + put("key", "bio"); + put("type", "text"); + put("required", false); + }}, + new HashMap() {{ + put("key", "content"); + put("type", "mediumtext"); + put("required", false); + }}, + new HashMap() {{ + put("key", "data"); + put("type", "longtext"); + put("required", false); + }}, new HashMap() {{ put("key", "age"); put("type", "integer"); @@ -1091,6 +1229,21 @@ let table = try await tablesDB.createTable( "size": 255, "required": true ], + [ + "key": "bio", + "type": "text", + "required": false + ], + [ + "key": "content", + "type": "mediumtext", + "required": false + ], + [ + "key": "data", + "type": "longtext", + "required": false + ], [ "key": "age", "type": "integer",