The sample code shown below uses upper/db to map Go-specific objects to SQL operations. Specifically, the code:
Creates the accounts table, if it does not already exist.
Deletes any existing rows in the accounts table.
Inserts two rows into the accounts table.
Prints the rows in the accounts table to the terminal.
Deletes the first row in the accounts table.
Updates the rows in the accounts table within an explicit transaction.
Prints the rows in the accounts table to the terminal once more.
package main "fmt" "log" "time" "github.com/upper/db/v4" "github.com/upper/db/v4/adapter/cockroachdb")// The settings variable stores connection details.var settings = cockroachdb.ConnectionURL{ Host: "localhost", Database: "bank", User: "maxroach", Options: map[string]string{ // Secure node. "sslrootcert": "certs/ca.crt", "sslkey": "certs/client.maxroach.key", "sslcert": "certs/client.maxroach.crt", },}// Accounts is a handy way to represent a collection.func Accounts(sess db.Session) db.Store { return sess.Collection("accounts")}// Account is used to represent a single record in the "accounts" table.type Account struct { ID uint64 `db:"id,omitempty"` Balance int64 `db:"balance"`}// Collection is required in order to create a relation between the Account// struct and the "accounts" table.func (a *Account) Store(sess db.Session) db.Store { return Accounts(sess)}// createTables creates all the tables that are neccessary to run this example.func createTables(sess db.Session) error { _, err := sess.SQL().Exec(` CREATE TABLE IF NOT EXISTS accounts ( ID SERIAL PRIMARY KEY, balance INT ) `) if err != nil { return err } return nil}// crdbForceRetry can be used to simulate a transaction error and// demonstrate upper/db's ability to retry the transaction automatically.//// By default, upper/db will retry the transaction five times, if you want// to modify this number use: sess.SetMaxTransactionRetries(n).//// This is only used for demonstration purposes and not intended// for production code.func crdbForceRetry(sess db.Session) error { var err error // The first statement in a transaction can be retried transparently on the // server, so we need to add a placeholder statement so that our // force_retry() statement isn't the first one. _, err = sess.SQL().Exec(`SELECT 1`) if err != nil { return err } // If force_retry is called during the specified interval from the beginning // of the transaction it returns a retryable error. If not, 0 is returned // instead of an error. _, err = sess.SQL().Exec(`SELECT crdb_internal.force_retry('1s'::INTERVAL)`) if err != nil { return err } return nil}func main() { // Connect to the local CockroachDB node. sess, err := cockroachdb.Open(settings) if err != nil { log.Fatal("cockroachdb.Open: ", err) } defer sess.Close() // Adjust this number to fit your specific needs (set to 5, by default) // sess.SetMaxTransactionRetries(10) // Create the "accounts" table createTables(sess) // Delete all the previous items in the "accounts" table. err = Accounts(sess).Truncate() if err != nil { log.Fatal("Truncate: ", err) } // Create a new account with a balance of 1000. account1 := Account{Balance: 1000} err = Accounts(sess).InsertReturning(&account1) if err != nil { log.Fatal("sess.Save: ", err) } // Create a new account with a balance of 250. account2 := Account{Balance: 250} err = Accounts(sess).InsertReturning(&account2) if err != nil { log.Fatal("sess.Save: ", err) } // Printing records printRecords(sess) // Change the balance of the first account. account1.Balance = 500 err = sess.Save(&account1) if err != nil { log.Fatal("sess.Save: ", err) } // Change the balance of the second account. account2.Balance = 999 err = sess.Save(&account2) if err != nil { log.Fatal("sess.Save: ", err) } // Printing records printRecords(sess) // Delete the first record. err = sess.Delete(&account1) if err != nil { log.Fatal("Delete: ", err) } startTime := time.Now() // Add a couple of new records within a transaction. err = sess.Tx(func(tx db.Session) error { var err error if err = tx.Save(&Account{Balance: 887}); err != nil { return err } if time.Now().Sub(startTime) < time.Second*1 { // Will fail continuously for 2 seconds. if err = crdbForceRetry(tx); err != nil { return err } } if err = tx.Save(&Account{Balance: 342}); err != nil { return err } return nil }) if err != nil { log.Fatal("Could not commit transaction: ", err) } // Printing records printRecords(sess)}func printRecords(sess db.Session) { accounts := []Account{} err := Accounts(sess).Find().All(&accounts) if err != nil { log.Fatal("Find: ", err) } log.Printf("Balances:") for i := range accounts { fmt.Printf("\taccounts[%d]: %d\n", accounts[i].ID, accounts[i].Balance) }}
Note that the sample code also includes a function that simulates a transaction error (crdbForceRetry()). Upper/db’s CockroachDB adapter automatically retries transactions when transaction errors are thrown. As a result, this function forces a transaction retry.To run the code, copy the sample above, or download it directly.
To clone a version of the code below that connects to insecure clusters, run the following command:git clone https://github.com/cockroachlabs/hello-world-go-upperdb/Note that you will need to edit the connection string to use the certificates that you generated when you set up your secure cluster.
The sample code shown below uses upper/db to map Go-specific objects to SQL operations. Specifically, the code:
Creates the accounts table, if it does not already exist.
Deletes any existing rows in the accounts table.
Inserts two rows into the accounts table.
Prints the rows in the accounts table to the terminal.
Deletes the first row in the accounts table.
Updates the rows in the accounts table within an explicit transaction.
Prints the rows in the accounts table to the terminal once more.
package main "fmt" "log" "time" "github.com/upper/db/v4" "github.com/upper/db/v4/adapter/cockroachdb")// The settings variable stores connection details.var settings = cockroachdb.ConnectionURL{ Host: "localhost", Database: "bank", User: "maxroach", Options: map[string]string{ // Insecure node. "sslmode": "disable", },}// Accounts is a handy way to represent a collection.func Accounts(sess db.Session) db.Store { return sess.Collection("accounts")}// Account is used to represent a single record in the "accounts" table.type Account struct { ID uint64 `db:"id,omitempty"` Balance int64 `db:"balance"`}// Collection is required in order to create a relation between the Account// struct and the "accounts" table.func (a *Account) Store(sess db.Session) db.Store { return Accounts(sess)}// createTables creates all the tables that are neccessary to run this example.func createTables(sess db.Session) error { _, err := sess.SQL().Exec(` CREATE TABLE IF NOT EXISTS accounts ( ID SERIAL PRIMARY KEY, balance INT ) `) if err != nil { return err } return nil}// crdbForceRetry can be used to simulate a transaction error and// demonstrate upper/db's ability to retry the transaction automatically.//// By default, upper/db will retry the transaction five times, if you want// to modify this number use: sess.SetMaxTransactionRetries(n).//// This is only used for demonstration purposes and not intended// for production code.func crdbForceRetry(sess db.Session) error { var err error // The first statement in a transaction can be retried transparently on the // server, so we need to add a placeholder statement so that our // force_retry() statement isn't the first one. _, err = sess.SQL().Exec(`SELECT 1`) if err != nil { return err } // If force_retry is called during the specified interval from the beginning // of the transaction it returns a retryable error. If not, 0 is returned // instead of an error. _, err = sess.SQL().Exec(`SELECT crdb_internal.force_retry('1s'::INTERVAL)`) if err != nil { return err } return nil}func main() { // Connect to the local CockroachDB node. sess, err := cockroachdb.Open(settings) if err != nil { log.Fatal("cockroachdb.Open: ", err) } defer sess.Close() // Adjust this number to fit your specific needs (set to 5, by default) // sess.SetMaxTransactionRetries(10) // Create the "accounts" table createTables(sess) // Delete all the previous items in the "accounts" table. err = Accounts(sess).Truncate() if err != nil { log.Fatal("Truncate: ", err) } // Create a new account with a balance of 1000. account1 := Account{Balance: 1000} err = Accounts(sess).InsertReturning(&account1) if err != nil { log.Fatal("sess.Save: ", err) } // Create a new account with a balance of 250. account2 := Account{Balance: 250} err = Accounts(sess).InsertReturning(&account2) if err != nil { log.Fatal("sess.Save: ", err) } // Printing records printRecords(sess) // Change the balance of the first account. account1.Balance = 500 err = sess.Save(&account1) if err != nil { log.Fatal("sess.Save: ", err) } // Change the balance of the second account. account2.Balance = 999 err = sess.Save(&account2) if err != nil { log.Fatal("sess.Save: ", err) } // Printing records printRecords(sess) // Delete the first record. err = sess.Delete(&account1) if err != nil { log.Fatal("Delete: ", err) } startTime := time.Now() // Add a couple of new records within a transaction. err = sess.Tx(func(tx db.Session) error { var err error if err = tx.Save(&Account{Balance: 887}); err != nil { return err } if time.Now().Sub(startTime) < time.Second*1 { // Will fail continuously for 2 seconds. if err = crdbForceRetry(tx); err != nil { return err } } if err = tx.Save(&Account{Balance: 342}); err != nil { return err } return nil }) if err != nil { log.Fatal("Could not commit transaction: ", err) } // Printing records printRecords(sess)}func printRecords(sess db.Session) { accounts := []Account{} err := Accounts(sess).Find().All(&accounts) if err != nil { log.Fatal("Find: ", err) } log.Printf("Balances:") for i := range accounts { fmt.Printf("\taccounts[%d]: %d\n", accounts[i].ID, accounts[i].Balance) }}
Note that the sample code also includes a function that simulates a transaction error (crdbForceRetry()). Upper/db’s CockroachDB adapter automatically retries transactions when transaction errors are thrown. As a result, this function forces a transaction retry.Copy the code or download it directly.To clone a version of the code below that connects to insecure clusters, run the following command:git clone https://github.com/cockroachlabs/hello-world-go-upperdb/
Change to the directory where you cloned the repo and get the dependencies with go mod init:
$ go mod init hello-world-go-upperdb
Then run the code:
$ go run main.go
The output should look similar to the following:
go: finding module for package github.com/upper/db/v4go: finding module for package github.com/upper/db/v4/adapter/cockroachdbgo: found github.com/upper/db/v4 in github.com/upper/db/v4 v4.0.02020/09/16 10:31:55 Balances: accounts[590467288222990337]: 1000 accounts[590467288229576705]: 2502020/09/16 10:31:55 Balances: accounts[590467288222990337]: 500 accounts[590467288229576705]: 9992020/09/16 10:31:55 upper/db: log_level=WARNING file=go/pkg/mod/github.com/upper/db/v4@v4.0.0/internal/sqladapter/session.go:642 Session ID: 00006 Transaction ID: 00005 Query: SELECT crdb_internal.force_retry('1ms'::INTERVAL) Error: pq: restart transaction: crdb_internal.force_retry(): TransactionRetryWithProtoRefreshError: forced by crdb_internal.force_retry() Time taken: 0.00171s Context: context.Background2020/09/16 10:31:55 upper/db: log_level=WARNING file=go/pkg/mod/github.com/upper/db/v4@v4.0.0/internal/sqladapter/session.go:642 Session ID: 00006 Transaction ID: 00005 Query: INSERT INTO "accounts" ("balance") VALUES ($1) RETURNING "id" Arguments: []interface {}{887} Error: pq: current transaction is aborted, commands ignored until end of transaction block Time taken: 0.00065s Context: context.Background2020/09/16 10:31:56 Balances: accounts[590467288229576705]: 999 accounts[590467288342757377]: 887 accounts[590467288350064641]: 342
Note that the forced transaction errors result in errors printed to the terminal, but the transactions are retried until they succeed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CockroachDB","colors":{"primary":"#9059FF","light":"#9059FF","dark":"#9059FF"},"logo":{"light":"https://mintcdn.com/cockroachlabs/4WvUnbVuGZfqM4kW/images/CockroachLabs_Wordmark_Black.png?fit=max\u0026auto=format\u0026n=4WvUnbVuGZfqM4kW\u0026q=85\u0026s=54ccae625c9986bf1df8ddc7b2c571f0","dark":"https://mintcdn.com/cockroachlabs/4WvUnbVuGZfqM4kW/images/CockroachLabs_Wordmark_White.png?fit=max\u0026auto=format\u0026n=4WvUnbVuGZfqM4kW\u0026q=85\u0026s=0dd9b66973a1c7d3dd72aa67b6094efe","href":"https://www.cockroachlabs.com/"},"favicon":{"light":"https://mintcdn.com/cockroachlabs/2yihO7vMXnL0G_07/images/favicon.svg?fit=max\u0026auto=format\u0026n=2yihO7vMXnL0G_07\u0026q=85\u0026s=01f9aa59c9f275e1f35cd424a27d2551","dark":"https://mintcdn.com/cockroachlabs/2yihO7vMXnL0G_07/images/favicon.svg?fit=max\u0026auto=format\u0026n=2yihO7vMXnL0G_07\u0026q=85\u0026s=01f9aa59c9f275e1f35cd424a27d2551"},"api":{"examples":{"defaults":"required","languages":["curl"]}},"appearance":{"default":"light"},"navbar":{"primary":{"type":"button","label":"Get started free","href":"https://cockroachlabs.cloud/signup?referralId=cc_nav_global\u0026_ga=2.242886210.1147139380.1759903632-41552699.1759903632"}},"footer":{"socials":{"youtube":"https://www.youtube.com/@cockroachdb","x":"https://x.com/CockroachDB","linkedin":"https://www.linkedin.com/company/cockroach-labs/mycompany/verification","instagram":"https://www.instagram.com/cockroachdb"},"links":[{"header":"Product","items":[{"label":"CockroachDB","href":"https://www.cockroachlabs.com/product"},{"label":"CockroachDB Cloud","href":"https://www.cockroachlabs.com/product/cockroachcloud"},{"label":"Compare","href":"https://www.cockroachlabs.com/compare"},{"label":"Pricing","href":"https://www.cockroachlabs.com/pricing"},{"label":"Get CockroachDB","href":"https://www.cockroachlabs.com/get-started-cockroachdb"},{"label":"Sign In","href":"https://cockroachlabs.cloud/"}]},{"header":"Resources","items":[{"label":"Guides","href":"https://resources.cockroachlabs.com/guides"},{"label":"Webinars","href":"https://www.cockroachlabs.com/community/webinars"},{"label":"Videos","href":"https://www.cockroachlabs.com/resources/video"},{"label":"Architecture Overview","href":"https://www.cockroachlabs.com/docs/stable/architecture/overview"},{"label":"FAQ","href":"https://www.cockroachlabs.com/docs/stable/frequently-asked-questions"},{"label":"Security","href":"https://www.cockroachlabs.com/security"}]},{"header":"Learn \u0026 Support","items":[{"label":"Docs","href":"https://www.cockroachlabs.com/docs"},{"label":"University","href":"https://learn.cockroachlabs.com/"},{"label":"Developers","href":"https://www.cockroachlabs.com/developers"},{"label":"Forum","href":"https://forum.cockroachlabs.com/"},{"label":"Slack","href":"https://cockroa.ch/slack"},{"label":"Support Portal","href":"https://support.cockroachlabs.com/hc/en-us"},{"label":"Contact Us","href":"https://www.cockroachlabs.com/contact"}]},{"header":"Company","items":[{"label":"About","href":"https://www.cockroachlabs.com/about"},{"label":"Blog","href":"https://www.cockroachlabs.com/blog"},{"label":"Careers","href":"https://www.cockroachlabs.com/careers"},{"label":"Customers","href":"https://www.cockroachlabs.com/customers"},{"label":"News","href":"https://www.cockroachlabs.com/press"},{"label":"Privacy","href":"https://www.cockroachlabs.com/privacy"},{"label":"Terms of Use","href":"https://www.cockroachlabs.com/website-terms-of-use"}]}]},"fonts":{"heading":{"family":"Poppins"},"body":{"family":"Open Sans"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}},"latex":true},"integrations":{"gtm":{"tagId":"GTM-NR8LC4"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you're looking for doesn't exist. [Return to docs home](/index.html)."}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"global":{"anchors":[{"anchor":"University","icon":"graduation-cap","href":"https://learn.cockroachlabs.com/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cockroachlabs","hasAudioNarration":false,"actualSubdomain":"cockroachlabs","customDomains":["docs.cockroachlabs.com"],"gitSource":{"type":"github","owner":"cockroachlabs","repo":"docs","deployBranch":"main","contentDirectory":"cockroachlabs-preview-main","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5ee999e01b82c591a6686","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"CockroachDB","count":6951},{"language":"default","tag":"Docs","count":3217},{"language":"default","tag":"SQL","count":2566},{"language":"default","tag":"Statements","count":1714},{"language":"default","tag":"Self-Hosted Deployments","count":1457},{"language":"default","tag":"Reference","count":774},{"language":"default","tag":"Cloud Deployments","count":616},{"language":"default","tag":"Endpoints","count":528},{"language":"default","tag":"Cloud API Reference","count":518},{"language":"default","tag":"Get Started","count":441}],"searchSettings":{"isFiltersEnabled":true,"showContentSnippets":true,"fullPageSearch":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","content":":root{--inline-code-bg-light: rgb(var(--gray-200) / 0.92);--inline-code-bg-dark: rgb(255 255 255 / 0.08)}.prose :not(pre)>code{background-color:var(--inline-code-bg-light)!important}.dark .prose :not(pre)>code{background-color:var(--inline-code-bg-dark)!important}@media (min-width: 1536px){#navbar>.max-w-8xl,[class*=\"peer-[.is-not-custom]:peer-[.is-not-center]:max-w-8xl\"]{width:100%!important;max-width:none!important}}#navigation-items{display:flex;flex-direction:column}#navigation-items>ul:not(.sidebar-group){order:1;margin-top:1.5rem}.crdb-metrics-table table{table-layout:fixed!important;width:100%!important;min-width:0!important;max-width:100%!important;border-collapse:collapse}.crdb-metrics-table table td,.crdb-metrics-table table th{min-width:0!important;overflow-wrap:anywhere;word-break:break-word}.crdb-fixed-table table{table-layout:fixed!important;width:100%!important;min-width:0!important;max-width:100%!important;border-collapse:collapse}.crdb-fixed-table table td,.crdb-fixed-table table th{min-width:0!important;overflow-wrap:anywhere;word-break:break-word}.bg-cover{background-size:cover;background-repeat:no-repeat;background-position:center center}.bg-cover__bg-3-1{background-image:url(\"https://cockroach-labs-docs.imgix.net/bg-3-1.png?auto=format,compress\u0026w=1200\u0026q=40\")}.home-header{border-radius:0.5rem;margin-bottom:2rem!important;padding:2rem}.card{border:1px solid #e5e7eb;border-radius:0.75rem;background-color:white}.dark .card{background-color:#0d1117;border-color:rgba(255, 255, 255, 0.1)}.card-link{text-decoration:none!important;overflow:hidden}.card-link:hover{outline:1px solid rgba(105, 51, 255, 0.55);outline-offset:-1px}.card-link,.card-link:hover{transform:none!important;box-shadow:none!important}.card-link a,.card-link a:hover,.card-link h3,.card-link h3:hover,.card-link p,.card-link p:hover{border:0!important;text-decoration:none!important;transform:none!important}.card-link a{display:block;width:100%}.card-link h3{font-size:1rem!important;font-weight:600!important}.card-body{padding:1.5rem}.landing-column-title{margin-bottom:1rem}.overline{text-transform:uppercase;letter-spacing:0.05em}.btn-redirect{display:inline-flex;align-items:center;gap:0.5rem;padding:0.75rem 1.5rem;border:2px solid #e5e7eb;border-radius:0.5rem;text-decoration:none;transition:border-color 0.2s}.btn-redirect:hover{border-color:#6933ff}.btn-block{display:flex;width:100%;justify-content:center}.dark .btn-redirect{border-color:rgba(255, 255, 255, 0.1)}.article-section-title{font-size:1.25rem!important}.article-lists h3{font-size:0.875rem!important;font-weight:600!important;text-transform:uppercase;letter-spacing:0.05em;color:#6b7280!important}.dark .article-lists h3{color:#9ca3af!important}.article-lists ul{font-size:0.875rem}.shadow{box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.bg-dark-wing{background-color:#152849;border-radius:0.5rem}.text-ice-temple{color:#1bf8ec!important;display:inline-flex;align-items:center;gap:0.375rem}.text-ice-temple img{display:inline-block;margin:0}.bg-dark-wing h2{font-size:clamp(1.25rem, 1rem + 1.5vw, 1.75rem)!important}@media (max-width: 576px){.card-body.bg-dark-wing{padding:1.25rem!important}}.text-decoration-none{text-decoration:none!important}.text-muted{color:#6b7280!important}.card-link .card-desc{font-size:0.9375rem!important;font-weight:400!important;line-height:1.5!important;text-align:left!important;color:#4b5563!important;width:100%;margin-top:0.5rem}.dark .card-link .card-desc{color:#9ca3af!important}.report-tag{display:inline-block;padding:0.25rem 0.75rem;border-radius:0.25rem;background-color:rgba(84, 42, 189, 0.08);color:#542abd}.dark .report-tag{background-color:rgba(84, 42, 189, 0.3);color:#b39dff}.resilience-report-img{background-image:url(\"/images/state-resilience.png\");background-size:cover;background-position:center;min-height:150px;border-radius:0.5rem}.row{display:flex!important;flex-wrap:wrap;margin-left:-0.75rem;margin-right:-0.75rem}.display-flex{display:flex!important}.col-lg-4{flex:0 0 auto;width:100%;padding-left:0.75rem;padding-right:0.75rem}@media (min-width: 992px){.col-lg-4{width:33.333333%!important}}.col-lg-3,.col-sm-6,.col-xs-12{flex:0 0 auto;width:100%!important;padding-left:0.75rem;padding-right:0.75rem}@media (min-width: 992px){.col-lg-3{width:25%!important}}@media (min-width: 576px){.col-sm-6{width:50%!important}}.col-12{width:100%!important}.col-lg-12{width:100%;padding-left:0.75rem;padding-right:0.75rem}@media (min-width: 992px){.col-lg-12{width:100%!important}}.col-md-4,.col-md-8{flex:0 0 auto;width:100%;padding-left:0.75rem;padding-right:0.75rem}@media (min-width: 768px){.col-md-4{width:33.333333%!important}.col-md-8{width:66.666667%!important}}.h-100{height:100%}.d-flex{display:flex}.flex-column{flex-direction:column}.mb-3{margin-bottom:1rem!important}.mb-5{margin-bottom:3rem!important}.pb-5{padding-bottom:3rem!important}.mb-xl-5{margin-bottom:3rem!important}.mt-auto{margin-top:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:0.5rem!important}.mt-3{margin-top:1rem!important}.mt-5:not(.code-block){margin-top:3rem!important}.code-block.mb-8{margin-bottom:calc(var(--spacing) * 5)}.pt-5{padding-top:3rem!important}.m-0{margin:0!important}.ml-2{margin-left:0.5rem!important}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:0.5rem!important}.mb-4{margin-bottom:1.5rem!important}.p-2{padding:0.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.ml-1{margin-left:0.25rem!important}.mr-auto{margin-right:auto!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}@media (min-width: 1200px){.p-xl-5{padding:3rem!important}}.mx-0{margin-left:0!important;margin-right:0!important}.text-center{text-align:center}.text-white{color:white!important}.text-black{color:black!important}.dark .text-black{color:white!important}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}.card-header-overlap-text{position:relative}@media (min-width: 768px){.p-md-5{padding:3rem!important}}@media (min-width: 992px){.d-lg-flex{display:flex!important}.mb-lg-0{margin-bottom:0!important}}.prose table{border-collapse:collapse!important}.prose table th,.prose table td{border:1px solid rgb(var(--gray-200))!important}.dark .prose table th,.dark .prose table td{border-color:rgb(var(--gray-700) / 0.5)!important}.prose table th{padding:0.571429em;font-weight:600;vertical-align:bottom;color:var(--tw-prose-headings);text-align:left}.prose table th.center-align{text-align:center}.prose table td{padding:0.571429em;vertical-align:baseline}[data-component-part=\"accordion-description\"]{font-size:0.875rem!important}.accordion.mb-3{margin-bottom:0.25rem!important}@media (max-width: 991.98px){[id^=\"kapa-widget-container\"] button{width:36px!important;height:36px!important;min-width:36px!important;padding:0!important;font-size:0!important}[id^=\"kapa-widget-container\"] button svg{width:18px!important;height:18px!important}[id^=\"kapa-widget-container\"] button span{display:none!important}}table.crdb-fixed-table{table-layout:fixed!important;min-width:0!important;width:100%}table.crdb-fixed-table td,table.crdb-fixed-table th{min-width:0!important;overflow-wrap:break-word;word-break:normal}.sql-grammar svg .line{fill:none;stroke:#262626}.sql-grammar svg .bold-line{stroke:#0A0A0A;shape-rendering:crispEdges;stroke-width:2}.sql-grammar svg .thin-line{stroke:#0F0F0F;shape-rendering:crispEdges}.sql-grammar svg .filled{fill:#262626;stroke:none}.sql-grammar svg text.terminal{font-family:Verdana, Sans-serif;font-size:12px;fill:#0A0A0A;font-weight:bold}.sql-grammar svg text.nonterminal{font-family:Verdana, Sans-serif;font-size:12px;fill:#0055FF}.sql-grammar svg text.regexp{font-family:Verdana, Sans-serif;font-size:12px;fill:#0F0F0F}.sql-grammar svg rect,.sql-grammar svg circle,.sql-grammar svg polygon{fill:#262626;stroke:#262626}.sql-grammar svg rect.terminal{fill:#ffffff;stroke:#262626}.sql-grammar svg rect.nonterminal{fill:#FFFFFF;stroke:#262626}.sql-grammar svg rect.text{fill:none;stroke:none}.sql-grammar svg polygon.regexp{fill:#FFFFFF;stroke:#262626}.sql-grammar svg{background-color:#ffffff}.sql-grammar a[name]::before{content:'';display:block;height:80px;margin:-80px 0 0}.sql-grammar a[name]:focus{outline:0}pre[language=\"sql\"][data-crdb-prompt-stripped] code::before{content:\"> \";color:#94e2d5;user-select:none}.mark-yes{color:#008a5e;font-weight:600}.dark .mark-yes{color:#3ddc97}"},{"filePath":"collapse-nav.css","content":"html:not(.crl-nav-off) [data-layout-item=\"sidebar\"] li[data-title]:not([data-active]):not([data-crl-keep])>button+ul,html:not(.crl-nav-off) [data-layout-item=\"mobile-nav\"] li[data-title]:not([data-active]):not([data-crl-keep])>button+ul{display:none}html:not(.crl-nav-off) [data-layout-item=\"sidebar\"] li[data-title]:not([data-active]):not([data-crl-keep])>button svg,html:not(.crl-nav-off) [data-layout-item=\"mobile-nav\"] li[data-title]:not([data-active]):not([data-crl-keep])>button svg{rotate:none!important;transform:none!important}"}],"page":{"pagePath":"docs/v26.2/build-a-go-app-with-cockroachdb-upperdb","slug":"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb","pageMetadata":{"title":"Build a Go App with CockroachDB and upper/db","old_description":"Learn how to use CockroachDB from a simple Go application with the upper/db data access layer.","canonical":"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb","description":null,"href":"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Danger,Heading,Tab,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Danger)_missingMdxReference(`Danger`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This tutorial shows you how build a simple Go application with CockroachDB and the `,_jsx(_components.a,{href:`https://upper.io/`,children:`upper/db`}),` data access layer.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-begin`,children:`Before you begin`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/docs/v26.2/install-cockroachdb-mac`,children:`Install CockroachDB`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Start up a `,_jsx(_components.a,{href:`/docs/v26.2/secure-a-cluster`,children:`secure`}),` or `,_jsx(_components.a,{href:`/docs/v26.2/start-a-local-cluster`,children:`insecure`}),` local cluster.`]}),`\n`,_jsx(_components.li,{children:`Choose the instructions that correspond to whether your cluster is secure or insecure:`}),`\n`]}),`\n`,_jsx(Danger,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--insecure`}),` flag used in this tutorial is intended for non-production testing only. To run CockroachDB in production, use a secure cluster instead.`]})}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Secure`,id:`secure`,\"data-child-heading-ids\":`[\"step-1-create-the-maxroach-user-and-bank-database\",\"step-2-generate-a-certificate-for-the-maxroach-user\",\"step-3-run-the-go-code\"]`,children:[_jsxs(Heading,{level:`2`,id:`step-1-create-the-maxroach-user-and-bank-database`,children:[`Step 1. Create the `,_jsx(_components.code,{children:`maxroach`}),` user and `,_jsx(_components.code,{children:`bank`}),` database`]}),_jsxs(_components.p,{children:[`Start the `,_jsx(_components.a,{href:`/docs/v26.2/cockroach-sql`,children:`built-in SQL shell`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`$`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` cockroach`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` sql`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` --certs-dir=certs`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`In the SQL shell, issue the following statements to create the `,_jsx(_components.code,{children:`maxroach`}),` user and `,_jsx(_components.code,{children:`bank`}),` database:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` CREATE`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` USER `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`IF`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` NOT`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` EXISTS`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` maxroach;`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` CREATE`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` DATABASE`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` bank;`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Give the `,_jsx(_components.code,{children:`maxroach`}),` user the necessary permissions:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` GRANT`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` ALL `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`ON`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` DATABASE`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` bank `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`TO`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` maxroach;`})]}),`\n`]})})}),_jsx(_components.p,{children:`Exit the SQL shell:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` \\\\q`})]}),`\n`]})})}),_jsxs(Heading,{level:`2`,id:`step-2-generate-a-certificate-for-the-maxroach-user`,children:[`Step 2. Generate a certificate for the `,_jsx(_components.code,{children:`maxroach`}),` user`]}),_jsxs(_components.p,{children:[`Create a certificate and key for the `,_jsx(_components.code,{children:`maxroach`}),` user by running the following command:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`$`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` cockroach`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` cert`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` create-client`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` maxroach`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` --certs-dir=certs`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` --ca-key=my-safe-directory/ca.key`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The code samples will run with `,_jsx(_components.code,{children:`maxroach`}),` as the user.`]}),_jsx(Heading,{level:`2`,id:`step-3-run-the-go-code`,children:`Step 3. Run the Go code`}),_jsx(_components.p,{children:`The sample code shown below uses upper/db to map Go-specific objects to SQL operations. Specifically, the code:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Creates the `,_jsx(_components.code,{children:`accounts`}),` table, if it does not already exist.`]}),`\n`,_jsxs(_components.li,{children:[`Deletes any existing rows in the `,_jsx(_components.code,{children:`accounts`}),` table.`]}),`\n`,_jsxs(_components.li,{children:[`Inserts two rows into the `,_jsx(_components.code,{children:`accounts`}),` table.`]}),`\n`,_jsxs(_components.li,{children:[`Prints the rows in the `,_jsx(_components.code,{children:`accounts`}),` table to the terminal.`]}),`\n`,_jsxs(_components.li,{children:[`Deletes the first row in the `,_jsx(_components.code,{children:`accounts`}),` table.`]}),`\n`,_jsxs(_components.li,{children:[`Updates the rows in the `,_jsx(_components.code,{children:`accounts`}),` table within an explicit `,_jsx(_components.a,{href:`/docs/v26.2/transactions`,children:`transaction`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Prints the rows in the `,_jsx(_components.code,{children:`accounts`}),` table to the terminal once more.`]}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`186`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`186`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`package`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` main`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"fmt\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"log\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"time\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"github.com/upper/db/v4\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"github.com/upper/db/v4/adapter/cockroachdb\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// The settings variable stores connection details.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`var`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` settings `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` cockroachdb`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`ConnectionURL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tHost`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"localhost\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tDatabase`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"bank\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tUser`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"maxroach\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tOptions`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` map`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`[`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`string`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`]`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`string`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t\t// Secure node.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t \"sslrootcert\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"certs/ca.crt\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t \"sslkey\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"certs/client.maxroach.key\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t \"sslcert\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"certs/client.maxroach.crt\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// Accounts is a handy way to represent a collection.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Store`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Collection`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"accounts\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// Account is used to represent a single record in the \"accounts\" table.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`type`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` Account`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` struct`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tID `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`uint64`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:' `db:\"id,omitempty\"`'})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tBalance `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`int64`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:' `db:\"balance\"`'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// Collection is required in order to create a relation between the Account`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// struct and the \"accounts\" table.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` (`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`a `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`*`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Store`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Store`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// createTables creates all the tables that are neccessary to run this example.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` createTables`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` error`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t_`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`SQL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Exec`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"`\"})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\tCREATE TABLE IF NOT EXISTS accounts (`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t\tID SERIAL PRIMARY KEY,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t\tbalance INT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"\t`\"}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// crdbForceRetry can be used to simulate a transaction error and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// demonstrate upper/db's ability to retry the transaction automatically.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`//`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// By default, upper/db will retry the transaction five times, if you want`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// to modify this number use: sess.SetMaxTransactionRetries(n).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`//`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// This is only used for demonstration purposes and not intended`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// for production code.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` crdbForceRetry`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` error`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tvar`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`error`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// The first statement in a transaction can be retried transparently on the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// server, so we need to add a placeholder statement so that our`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// force_retry() statement isn't the first one.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t_`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`SQL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Exec`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"`SELECT 1`\"}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// If force_retry is called during the specified interval from the beginning`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// of the transaction it returns a retryable error. If not, 0 is returned`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// instead of an error.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t_`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`SQL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Exec`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"`SELECT crdb_internal.force_retry('1s'::INTERVAL)`\"}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` main`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Connect to the local CockroachDB node.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tsess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` cockroachdb`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Open`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`settings`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"cockroachdb.Open: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tdefer`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Close`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Adjust this number to fit your specific needs (set to 5, by default)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// sess.SetMaxTransactionRetries(10)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Create the \"accounts\" table`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tcreateTables`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Delete all the previous items in the \"accounts\" table.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Truncate`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Truncate: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Create a new account with a balance of 1000.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount1 `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 1000`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`InsertReturning`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Create a new account with a balance of 250.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount2 `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 250`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`InsertReturning`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account2`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Printing records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tprintRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Change the balance of the first account.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 500`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Change the balance of the second account.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount2`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 999`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account2`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Printing records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tprintRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Delete the first record.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Delete`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Delete: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tstartTime `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` time`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Now`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Add a couple of new records within a transaction.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`tx`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` error`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tvar`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`error`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 887`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`});`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` time`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Now`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Sub`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`startTime`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` time`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Second`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`*`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:`1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t\t\t// Will fail continuously for 2 seconds.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` crdbForceRetry`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`);`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 342`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`});`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t})`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Could not commit transaction: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Printing records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tprintRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` printRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccounts `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` []`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Find`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`All`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Find: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Printf`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Balances:\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tfor`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` i `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` range`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` accounts `}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tfmt`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Printf`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"`}),_jsx(_components.span,{style:{color:`#F5C2E7`,\"--shiki-dark\":`#F5C2E7`},children:`\\\\t`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`accounts[%d]: %d`}),_jsx(_components.span,{style:{color:`#F5C2E7`,\"--shiki-dark\":`#F5C2E7`},children:`\\\\n`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`[`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`i`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`].`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`ID`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`[`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`i`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`].`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Note that the sample code also includes a function that simulates a transaction error (`,_jsx(_components.code,{children:`crdbForceRetry()`}),`). Upper/db’s CockroachDB adapter `,_jsx(_components.a,{href:`/docs/v26.2/transaction-retry-error-reference#client-side-retry-handling`,children:`automatically retries transactions`}),` when transaction errors are thrown. As a result, this function forces a transaction retry.`]}),_jsx(_components.p,{children:`To run the code, copy the sample above, or download it directly.`}),_jsxs(Tip,{children:[_jsx(_components.p,{children:`To clone a version of the code below that connects to insecure clusters, run the following command:`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`git clone https://github.com/cockroachlabs/hello-world-go-upperdb/`})}),_jsx(_components.p,{children:`Note that you will need to edit the connection string to use the certificates that you generated when you set up your secure cluster.`})]})]}),_jsxs(Tab,{title:`Insecure`,id:`insecure`,\"data-child-heading-ids\":`[\"step-1-create-the-maxroach-user-and-bank-database-2\",\"step-2-run-the-go-code\"]`,children:[_jsxs(Heading,{level:`2`,id:`step-1-create-the-maxroach-user-and-bank-database-2`,children:[`Step 1. Create the `,_jsx(_components.code,{children:`maxroach`}),` user and `,_jsx(_components.code,{children:`bank`}),` database`]}),_jsxs(_components.p,{children:[`Start the `,_jsx(_components.a,{href:`/docs/v26.2/cockroach-sql`,children:`built-in SQL shell`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`$`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` cockroach`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` sql`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` --insecure`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`In the SQL shell, issue the following statements to create the `,_jsx(_components.code,{children:`maxroach`}),` user and `,_jsx(_components.code,{children:`bank`}),` database:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` CREATE`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` USER `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`IF`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` NOT`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` EXISTS`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` maxroach;`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` CREATE`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` DATABASE`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` bank;`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Give the `,_jsx(_components.code,{children:`maxroach`}),` user the necessary permissions:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` GRANT`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` ALL `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`ON`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` DATABASE`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` bank `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`TO`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` maxroach;`})]}),`\n`]})})}),_jsx(_components.p,{children:`Exit the SQL shell:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`>`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` \\\\q`})]}),`\n`]})})}),_jsx(Heading,{level:`2`,id:`step-2-run-the-go-code`,children:`Step 2. Run the Go code`}),_jsx(_components.p,{children:`The sample code shown below uses upper/db to map Go-specific objects to SQL operations. Specifically, the code:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Creates the `,_jsx(_components.code,{children:`accounts`}),` table, if it does not already exist.`]}),`\n`,_jsxs(_components.li,{children:[`Deletes any existing rows in the `,_jsx(_components.code,{children:`accounts`}),` table.`]}),`\n`,_jsxs(_components.li,{children:[`Inserts two rows into the `,_jsx(_components.code,{children:`accounts`}),` table.`]}),`\n`,_jsxs(_components.li,{children:[`Prints the rows in the `,_jsx(_components.code,{children:`accounts`}),` table to the terminal.`]}),`\n`,_jsxs(_components.li,{children:[`Deletes the first row in the `,_jsx(_components.code,{children:`accounts`}),` table.`]}),`\n`,_jsxs(_components.li,{children:[`Updates the rows in the `,_jsx(_components.code,{children:`accounts`}),` table within an explicit `,_jsx(_components.a,{href:`/docs/v26.2/transactions`,children:`transaction`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Prints the rows in the `,_jsx(_components.code,{children:`accounts`}),` table to the terminal once more.`]}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`184`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`184`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`package`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` main`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"fmt\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"log\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"time\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"github.com/upper/db/v4\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\"github.com/upper/db/v4/adapter/cockroachdb\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// The settings variable stores connection details.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`var`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` settings `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` cockroachdb`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`ConnectionURL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tHost`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"localhost\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tDatabase`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"bank\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tUser`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"maxroach\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tOptions`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` map`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`[`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`string`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`]`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`string`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t\t// Insecure node.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t\"sslmode\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` \"disable\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// Accounts is a handy way to represent a collection.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Store`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Collection`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"accounts\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// Account is used to represent a single record in the \"accounts\" table.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`type`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` Account`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` struct`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tID `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`uint64`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:' `db:\"id,omitempty\"`'})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tBalance `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`int64`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:' `db:\"balance\"`'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// Collection is required in order to create a relation between the Account`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// struct and the \"accounts\" table.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` (`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`a `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`*`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Store`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Store`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// createTables creates all the tables that are neccessary to run this example.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` createTables`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` error`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t_`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`SQL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Exec`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"`\"})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\tCREATE TABLE IF NOT EXISTS accounts (`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t\tID SERIAL PRIMARY KEY,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t\tbalance INT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\t\t)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"\t`\"}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// crdbForceRetry can be used to simulate a transaction error and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// demonstrate upper/db's ability to retry the transaction automatically.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`//`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// By default, upper/db will retry the transaction five times, if you want`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// to modify this number use: sess.SetMaxTransactionRetries(n).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`//`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// This is only used for demonstration purposes and not intended`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`// for production code.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` crdbForceRetry`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` error`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tvar`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`error`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// The first statement in a transaction can be retried transparently on the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// server, so we need to add a placeholder statement so that our`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// force_retry() statement isn't the first one.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t_`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`SQL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Exec`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"`SELECT 1`\"}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// If force_retry is called during the specified interval from the beginning`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// of the transaction it returns a retryable error. If not, 0 is returned`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// instead of an error.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t_`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`SQL`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Exec`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:\"`SELECT crdb_internal.force_retry('1s'::INTERVAL)`\"}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` main`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Connect to the local CockroachDB node.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tsess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` cockroachdb`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Open`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`settings`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"cockroachdb.Open: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tdefer`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Close`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Adjust this number to fit your specific needs (set to 5, by default)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// sess.SetMaxTransactionRetries(10)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Create the \"accounts\" table`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tcreateTables`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Delete all the previous items in the \"accounts\" table.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Truncate`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Truncate: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Create a new account with a balance of 1000.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount1 `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 1000`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`InsertReturning`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Create a new account with a balance of 250.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount2 `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 250`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`InsertReturning`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account2`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Printing records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tprintRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Change the balance of the first account.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 500`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Change the balance of the second account.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccount2`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 999`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account2`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"sess.Save: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Printing records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tprintRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Delete the first record.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Delete`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`account1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Delete: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tstartTime `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` time`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Now`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Add a couple of new records within a transaction.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`tx`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` error`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tvar`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`error`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 887`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`});`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` time`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Now`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Sub`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`startTime`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` time`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Second`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`*`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:`1`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t\t\t// Will fail continuously for 2 seconds.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` crdbForceRetry`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`);`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` tx`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Save`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#FAB387`,\"--shiki-dark\":`#FAB387`},children:` 342`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`});`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\t\treturn`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\t\treturn`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t})`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Could not commit transaction: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`\t// Printing records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`\tprintRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`func`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` printRecords`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#EBA0AC`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#EBA0AC`,\"--shiki-dark-font-style\":`italic`},children:`sess`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` db`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Session`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\taccounts `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` []`}),_jsx(_components.span,{style:{color:`#F9E2AF`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:`Account`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\terr `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` Accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`sess`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`).`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Find`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`().`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`All`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tif`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`!=`}),_jsx(_components.span,{style:{color:`#F38BA8`,\"--shiki-dark\":`#F38BA8`},children:` nil`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Find: \"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` err`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\tlog`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Printf`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"Balances:\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:`\tfor`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` i `}),_jsx(_components.span,{style:{color:`#94E2D5`,\"--shiki-dark\":`#94E2D5`},children:`:=`}),_jsx(_components.span,{style:{color:`#CBA6F7`,\"--shiki-dark\":`#CBA6F7`},children:` range`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` accounts `}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`\t\tfmt`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`Printf`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`(`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"`}),_jsx(_components.span,{style:{color:`#F5C2E7`,\"--shiki-dark\":`#F5C2E7`},children:`\\\\t`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`accounts[%d]: %d`}),_jsx(_components.span,{style:{color:`#F5C2E7`,\"--shiki-dark\":`#F5C2E7`},children:`\\\\n`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:`\"`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`[`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`i`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`].`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`ID`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:` accounts`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`[`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`i`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`].`}),_jsx(_components.span,{style:{color:`#CDD6F4`,\"--shiki-dark\":`#CDD6F4`},children:`Balance`}),_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9399B2`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Note that the sample code also includes a function that simulates a transaction error (`,_jsx(_components.code,{children:`crdbForceRetry()`}),`). Upper/db’s CockroachDB adapter `,_jsx(_components.a,{href:`/docs/v26.2/transaction-retry-error-reference#client-side-retry-handling`,children:`automatically retries transactions`}),` when transaction errors are thrown. As a result, this function forces a transaction retry.`]}),_jsx(_components.p,{children:`Copy the code or download it directly.`}),_jsx(_components.p,{children:`To clone a version of the code below that connects to insecure clusters, run the following command:`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`git clone https://github.com/cockroachlabs/hello-world-go-upperdb/`})})]})]}),`\n`,_jsxs(_components.p,{children:[`Change to the directory where you cloned the repo and get the dependencies with `,_jsx(_components.code,{children:`go mod init`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`$`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` go`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` mod`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` init`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` hello-world-go-upperdb`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Then run the code:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89B4FA`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`$`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` go`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` run`}),_jsx(_components.span,{style:{color:`#A6E3A1`,\"--shiki-dark\":`#A6E3A1`},children:` main.go`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The output should look similar to the following:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`31`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-mocha catppuccin-mocha`,style:{backgroundColor:`#1e1e2e`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#cdd6f4`,\"--shiki-dark\":`#cdd6f4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`31`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`go: finding module for package github.com/upper/db/v4`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`go: finding module for package github.com/upper/db/v4/adapter/cockroachdb`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`go: found github.com/upper/db/v4 in github.com/upper/db/v4 v4.0.0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2020/09/16 10:31:55 Balances:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288222990337]: 1000`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288229576705]: 250`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2020/09/16 10:31:55 Balances:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288222990337]: 500`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288229576705]: 999`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2020/09/16 10:31:55 upper/db: log_level=WARNING file=go/pkg/mod/github.com/upper/db/v4@v4.0.0/internal/sqladapter/session.go:642`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tSession ID: 00006`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tTransaction ID: 00005`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tQuery: SELECT crdb_internal.force_retry('1ms'::INTERVAL)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tError: pq: restart transaction: crdb_internal.force_retry(): TransactionRetryWithProtoRefreshError: forced by crdb_internal.force_retry()`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tTime taken: 0.00171s`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tContext: context.Background`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2020/09/16 10:31:55 upper/db: log_level=WARNING file=go/pkg/mod/github.com/upper/db/v4@v4.0.0/internal/sqladapter/session.go:642`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tSession ID: 00006`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tTransaction ID: 00005`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tQuery: INSERT INTO \"accounts\" (\"balance\") VALUES ($1) RETURNING \"id\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tArguments: []interface {}{887}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tError: pq: current transaction is aborted, commands ignored until end of transaction block`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tTime taken: 0.00065s`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\tContext: context.Background`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2020/09/16 10:31:56 Balances:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288229576705]: 999`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288342757377]: 887`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\taccounts[590467288350064641]: 342`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Note that the forced transaction errors result in errors printed to the terminal, but the transactions are retried until they succeed.`}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-next`,children:`What’s next?`}),`\n`,_jsx(_components.p,{children:`Read more about upper/db:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://upper.io/v4/getting-started/`,children:`Introduction to upper/db`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://tour.upper.io/`,children:`The upper/db tour`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://pkg.go.dev/github.com/upper/db/v4`,children:`upper/db reference docs`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`You might also be interested in the following pages:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/v26.2/connection-parameters`,children:`Client Connection Parameters`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/v26.2/connection-pooling`,children:`Connection Pooling`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/v26.2/demo-replication-and-rebalancing`,children:`Data Replication`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/v26.2/demo-cockroachdb-resilience`,children:`CockroachDB Resilience`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/v26.2/demo-replication-and-rebalancing`,children:`Replication \u0026 Rebalancing`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}},"config":{},"pageMetadata":{"title":"Build a Go App with CockroachDB and upper/db","old_description":"Learn how to use CockroachDB from a simple Go application with the upper/db data access layer.","canonical":"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb","description":null,"href":"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you begin","slug":"before-you-begin","depth":2,"children":[]},{"title":"Step 1. Create the maxroach user and bank database","slug":"step-1-create-the-maxroach-user-and-bank-database","depth":2,"children":[],"tabId":"secure"},{"title":"Step 2. Generate a certificate for the maxroach user","slug":"step-2-generate-a-certificate-for-the-maxroach-user","depth":2,"children":[],"tabId":"secure"},{"title":"Step 3. Run the Go code","slug":"step-3-run-the-go-code","depth":2,"children":[],"tabId":"secure"},{"title":"Step 1. Create the maxroach user and bank database","slug":"step-1-create-the-maxroach-user-and-bank-database-2","depth":2,"children":[],"tabId":"insecure"},{"title":"Step 2. Run the Go code","slug":"step-2-run-the-go-code","depth":2,"children":[],"tabId":"insecure"},{"title":"What’s next?","slug":"what’s-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cockroachlabs/4695317e415d4eba/kapa.js","/_mintlify/custom/cockroachlabs/40fb45a3cfe42c92/copy-code-prompt.js","/_mintlify/custom/cockroachlabs/3f343c9e8c40397a/collapse-nav.js"],"subdomain":"cockroachlabs","siteName":"CockroachDB","title":"Build a Go App with CockroachDB and upper/db - CockroachDB","navMaps":{"firstHrefInVersion":{"v26.4":{"href":"/docs/stable/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1},"v26.3":{"href":"/docs/v26.3/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v26.2":{"href":"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb","matchLevel":0},"v26.1":{"href":"/docs/v26.1/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v25.4":{"href":"/docs/v25.4/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v25.3":{"href":"/docs/v25.3/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v25.2":{"href":"/docs/v25.2/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v25.1":{"href":"/docs/v25.1/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v24.3":{"href":"/docs/v24.3/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v24.1":{"href":"/docs/v24.1/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v23.2":{"href":"/docs/v23.2/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true},"v23.1":{"href":"/docs/v23.1/build-a-go-app-with-cockroachdb-upperdb","matchLevel":1,"canonicalOverride":true}},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T19:18:24.707Z","originalFileLocation":"docs/v26.2/build-a-go-app-with-cockroachdb-upperdb.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"CockroachDB\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Build a Go App with CockroachDB and upper/db - CockroachDB\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CockroachDB\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cockroachlabs.mintlify.site/_mintlify/api/og/v2?division=Golang\u0026amp;title=Build+a+Go+App+with+CockroachDB+and+upper%2Fdb\u0026amp;theme=4aeed7318cb28bd50868adb3\u0026amp;signature=00e950ee4677a7df546f48a6b9ff482a1b463172c0816dbdba330f60b2f62530\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Build a Go App with CockroachDB and upper/db - CockroachDB\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cockroachlabs.mintlify.site/_mintlify/api/og/v2?division=Golang\u0026amp;title=Build+a+Go+App+with+CockroachDB+and+upper%2Fdb\u0026amp;theme=4aeed7318cb28bd50868adb3\u0026amp;signature=00e950ee4677a7df546f48a6b9ff482a1b463172c0816dbdba330f60b2f62530\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cockroachlabs/c9BlkJ0WBi2Ma7w-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CockroachDB\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9059FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cockroachlabs.com/#organization\",\"name\":\"CockroachDB\",\"url\":\"https://docs.cockroachlabs.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cockroachlabs/4WvUnbVuGZfqM4kW/images/CockroachLabs_Wordmark_Black.png?fit=max\u0026auto=format\u0026n=4WvUnbVuGZfqM4kW\u0026q=85\u0026s=54ccae625c9986bf1df8ddc7b2c571f0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cockroachlabs.com#website\",\"name\":\"CockroachDB\",\"url\":\"https://docs.cockroachlabs.com\",\"publisher\":{\"@id\":\"https://docs.cockroachlabs.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb#webpage\",\"url\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb\",\"name\":\"Build a Go App with CockroachDB and upper/db\",\"dateModified\":\"2026-11-11T19:18:24.707Z\",\"isPartOf\":{\"@id\":\"https://docs.cockroachlabs.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://docs.cockroachlabs.com/docs/v26.2/install-cockroachdb-mac\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Develop with CockroachDB\",\"item\":\"https://docs.cockroachlabs.com/docs/v26.2/developer-basics\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Golang\",\"item\":\"https://docs.cockroachlabs.com/docs/v26.2/build-a-go-app-with-cockroachdb\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Build a Go App with CockroachDB and upper/db\",\"item\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb#article\",\"headline\":\"Build a Go App with CockroachDB and upper/db\",\"name\":\"Build a Go App with CockroachDB and upper/db\",\"url\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cockroachlabs.com/docs/stable/build-a-go-app-with-cockroachdb-upperdb#webpage\"},\"dateModified\":\"2026-11-11T19:18:24.707Z\",\"publisher\":{\"@id\":\"https://docs.cockroachlabs.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cockroachlabs.com#website\"}}]}\u003c/script>","agentPointerHref":"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb.md","siteName":"CockroachDB","nav":{"global":{"anchors":[{"anchor":"University","icon":"graduation-cap","href":"https://learn.cockroachlabs.com/"}]},"products":[{"product":"Cockroach Continuum Cloud","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cockroachlabs/images/continuum/cockroachlabs-symbol.svg","description":"The agentic database cloud","pages":[{"title":"Cockroach Continuum Cloud","href":"/docs/continuum"}]},{"product":"CockroachDB","icon":"database","description":"Distributed SQL database","versions":[{"version":"v26.4","default":true,"tag":"Stable","pages":[{"title":"v26.4","href":"/docs/stable/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v26.3","pages":[{"title":"v26.3","href":"/docs/v26.3/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v26.2","tabs":[{"tab":"Docs","icon":"book-open","pages":[{"title":"CockroachDB Docs","sidebarTitle":"Docs Home","href":"/docs/v26.2"},{"group":"Get Started","pages":[{"group":"Install CockroachDB","pages":[{"title":"Install CockroachDB on Mac","href":"/docs/v26.2/install-cockroachdb-mac"},{"title":"Install CockroachDB on Linux","href":"/docs/v26.2/install-cockroachdb-linux"},{"title":"Install a FIPS-ready CockroachDB Runtime","href":"/docs/v26.2/fips"},{"title":"Install CockroachDB on Windows","href":"/docs/v26.2/install-cockroachdb-windows"}]},{"group":"Develop with CockroachDB","pages":[{"title":"Developer Basics","href":"/docs/v26.2/developer-basics"},{"group":"JavaScript/TypeScript","pages":[{"title":"Build a Simple CRUD Node.js App with CockroachDB and the node-postgres Driver","href":"/docs/v26.2/build-a-nodejs-app-with-cockroachdb"},{"title":"Build a Node.js App with CockroachDB and Sequelize","href":"/docs/v26.2/build-a-nodejs-app-with-cockroachdb-sequelize"},{"title":"Build a Simple CRUD Node.js App with CockroachDB and Knex.js","href":"/docs/v26.2/build-a-nodejs-app-with-cockroachdb-knexjs"},{"title":"Build a Simple CRUD Node.js App with CockroachDB and Prisma","href":"/docs/v26.2/build-a-nodejs-app-with-cockroachdb-prisma"},{"title":"Build a TypeScript App with CockroachDB and TypeORM","href":"/docs/v26.2/build-a-typescript-app-with-cockroachdb"}]},{"group":"Python","pages":[{"title":"Build a Python App with CockroachDB and Psycopg 3","href":"/docs/v26.2/build-a-python-app-with-cockroachdb-psycopg3"},{"title":"Build a Python App with CockroachDB and psycopg2","href":"/docs/v26.2/build-a-python-app-with-cockroachdb"},{"title":"Build a Simple CRUD Python App with CockroachDB and SQLAlchemy","href":"/docs/v26.2/build-a-python-app-with-cockroachdb-sqlalchemy"},{"title":"Build a Python App with CockroachDB and Django","href":"/docs/v26.2/build-a-python-app-with-cockroachdb-django"},{"title":"Build a Python App with CockroachDB and asyncpg","href":"/docs/v26.2/build-a-python-app-with-cockroachdb-asyncpg"}]},{"group":"Golang","pages":[{"title":"Build a Simple CRUD Go App with CockroachDB and the Go pgx Driver","href":"/docs/v26.2/build-a-go-app-with-cockroachdb"},{"title":"Build a Go App with CockroachDB and GORM","href":"/docs/v26.2/build-a-go-app-with-cockroachdb-gorm"},{"title":"Build a Go App with CockroachDB the Go pq Driver","description":null,"href":"/docs/v26.2/build-a-go-app-with-cockroachdb-pq"},{"title":"Build a Go App with CockroachDB and upper/db","href":"/docs/v26.2/build-a-go-app-with-cockroachdb-upperdb"}]},{"group":"Java","pages":[{"title":"Build a Simple CRUD Java App with CockroachDB and JDBC","description":null,"href":"/docs/v26.2/build-a-java-app-with-cockroachdb"},{"title":"Build a Java App with CockroachDB and Hibernate","href":"/docs/v26.2/build-a-java-app-with-cockroachdb-hibernate"},{"title":"Build a Java App with CockroachDB and jOOQ","href":"/docs/v26.2/build-a-java-app-with-cockroachdb-jooq"},{"title":"Build a Spring App with CockroachDB and MyBatis","href":"/docs/v26.2/build-a-spring-app-with-cockroachdb-mybatis"}]},{"group":"Ruby","pages":[{"title":"Build a Ruby App with CockroachDB and the Ruby pg Driver","href":"/docs/v26.2/build-a-ruby-app-with-cockroachdb"},{"title":"Build a Ruby App with CockroachDB and Active Record","href":"/docs/v26.2/build-a-ruby-app-with-cockroachdb-activerecord"}]},{"title":"Build a C# App with CockroachDB and the .NET Npgsql Driver","sidebarTitle":"C# (.NET)","href":"/docs/v26.2/build-a-csharp-app-with-cockroachdb"},{"title":"Build a Rust App with CockroachDB and the Rust-Postgres Driver","sidebarTitle":"Rust","href":"/docs/v26.2/build-a-rust-app-with-cockroachdb"},{"title":"Build a GraphQL Application Using Hasura","sidebarTitle":"Hasura (GraphQL)","href":"/docs/v26.2/hasura-getting-started"}]},{"group":"Standard Examples","pages":[{"title":"Create and Deploy an AWS Lambda Function Built on CockroachDB","sidebarTitle":"AWS Lambda","href":"/docs/v26.2/deploy-lambda-function"},{"title":"Deploy a CockroachDB Cloud Application with Google Cloud Run","sidebarTitle":"Google Cloud Run","href":"/docs/v26.2/deploy-app-gcr"},{"title":"Deploy a Netlify App Built on CockroachDB","sidebarTitle":"Netlify","href":"/docs/v26.2/deploy-app-netlify"},{"title":"Deploy a Web App Built on CockroachDB with Vercel","sidebarTitle":"Vercel","href":"/docs/v26.2/deploy-app-vercel"},{"title":"Serverless Function Best Practices","href":"/docs/v26.2/serverless-function-best-practices"}]},{"title":"MovR","href":"/docs/v26.2/movr"}]},{"group":"CockroachDB and AI","pages":[{"title":"CockroachDB and AI","sidebarTitle":"Overview","href":"/docs/v26.2/cockroachdb-and-ai"},{"title":"Agent Skills for CockroachDB","href":"/docs/v26.2/agent-skills"},{"group":"CockroachDB MCP Server","pages":[{"title":"CockroachDB MCP Server","sidebarTitle":"Overview","href":"/docs/v26.2/cockroachdb-mcp-server"},{"title":"Install, Configure, and Connect to the CockroachDB MCP Server","sidebarTitle":"Install, Configure, and Connect","href":"/docs/v26.2/install-cockroachdb-mcp-server"},{"title":"CockroachDB MCP Server Reference","sidebarTitle":"Self-hosted MCP Server Reference","href":"/docs/v26.2/cockroachdb-mcp-server-reference"}]},{"title":"CockroachDB Docs MCP Server","sidebarTitle":"Docs MCP Server","href":"/docs/v26.2/docs-mcp-integration"}]},{"group":"Feature Overview","pages":[{"group":"CockroachDB Basics","pages":[{"title":"Why CockroachDB?","href":"/docs/v26.2/why-cockroachdb"},{"title":"Replication and Rebalancing","sidebarTitle":"Replication \u0026 Rebalancing","href":"/docs/v26.2/demo-replication-and-rebalancing"},{"title":"CockroachDB Resilience Demo","sidebarTitle":"CockroachDB Resilience","href":"/docs/v26.2/demo-cockroachdb-resilience"},{"title":"Serializable Transactions","href":"/docs/v26.2/demo-serializable"},{"title":"Multi-Active Availability","href":"/docs/v26.2/multi-active-availability"}]},{"group":"CockroachDB SQL","pages":[{"title":"PostgreSQL Compatibility","href":"/docs/v26.2/postgresql-compatibility"},{"title":"SQL Feature Support in CockroachDB","sidebarTitle":"SQL Features","href":"/docs/v26.2/sql-feature-support"},{"title":"SQL FAQs","href":"/docs/v26.2/sql-faqs"}]}]},{"group":"Data Resilience","pages":[{"title":"Data Resilience","sidebarTitle":"Overview","href":"/docs/v26.2/data-resilience"},{"title":"Disaster Recovery Overview","sidebarTitle":"Disaster Recovery","href":"/docs/v26.2/disaster-recovery-overview"}]},{"group":"Connect to an Application","pages":[{"title":"Install a Driver or ORM Framework","href":"/docs/v26.2/install-client-drivers"},{"title":"Connect to a CockroachDB Cluster","sidebarTitle":"Connect to a Cluster","href":"/docs/v26.2/connect-to-the-database"},{"title":"Client Connection Parameters","href":"/docs/v26.2/connection-parameters"},{"title":"Connection Pooling","href":"/docs/v26.2/connection-pooling"}]},{"group":"Self-Hosted Deployments","pages":[{"title":"Production Checklist","href":"/docs/v26.2/recommended-production-settings"},{"title":"Deployment \u0026 Operations Skills Taxonomy","sidebarTitle":"Deployment and Operations Skills Taxonomy","href":"/docs/v26.2/deployment-operations-skills-taxonomy"},{"group":"Deploy Locally","pages":[{"group":"Deploy from Binary","pages":[{"title":"Deploy a Local Cluster from Binary (Secure)","href":"/docs/v26.2/secure-a-cluster"},{"title":"Deploy a Local Cluster from Binary (Insecure)","href":"/docs/v26.2/start-a-local-cluster"}]},{"title":"Deploy a Local Cluster in Docker (Insecure)","href":"/docs/v26.2/start-a-local-cluster-in-docker"},{"title":"Simulate a Multi-Region Cluster on localhost (Insecure)","sidebarTitle":"Simulate a Multi-Region Cluster Locally","href":"/docs/v26.2/simulate-a-multi-region-cluster-on-localhost"}]},{"group":"Deploy Manually","pages":[{"title":"Manual Deployment","sidebarTitle":"Overview","href":"/docs/v26.2/manual-deployment"},{"title":"Deploy CockroachDB On-Premises","sidebarTitle":"Deploy On-Premises","href":"/docs/v26.2/deploy-cockroachdb-on-premises"},{"title":"Deploy CockroachDB on AWS EC2","sidebarTitle":"Deploy on AWS","href":"/docs/v26.2/deploy-cockroachdb-on-aws"},{"title":"Deploy CockroachDB on Microsoft Azure","sidebarTitle":"Deploy on Azure","href":"/docs/v26.2/deploy-cockroachdb-on-microsoft-azure"},{"title":"Deploy CockroachDB on Google Cloud Platform GCE","sidebarTitle":"Deploy on Google Cloud Platform GCE","href":"/docs/v26.2/deploy-cockroachdb-on-google-cloud-platform"},{"title":"Deploy CockroachDB on Digital Ocean","sidebarTitle":"Deploy on Digital Ocean","href":"/docs/v26.2/deploy-cockroachdb-on-digital-ocean"}]},{"group":"Deploy in Kubernetes with CockroachDB Operator","pages":[{"title":"CockroachDB Operator Overview","sidebarTitle":"Overview","href":"/docs/v26.2/cockroachdb-operator-overview"},{"title":"Deploy CockroachDB with the CockroachDB Operator","sidebarTitle":"CockroachDB Operator Deployment Guide","href":"/docs/v26.2/deploy-cockroachdb-with-cockroachdb-operator"},{"group":"Migrate from Other Kubernetes Deployments","pages":[{"title":"Migrate from Helm StatefulSet","href":"/docs/v26.2/migrate-cockroachdb-kubernetes-helm"},{"title":"Migrate from the Public Operator","sidebarTitle":"Migrate from Public operator","href":"/docs/v26.2/migrate-cockroachdb-kubernetes-operator"}]},{"group":"Operate CockroachDB with Kubernetes","pages":[{"title":"Pod Scheduling with the CockroachDB Operator","sidebarTitle":"Pod Scheduling","href":"/docs/v26.2/schedule-cockroachdb-operator"},{"title":"Resource Management with the CockroachDB Operator","sidebarTitle":"Resource Management","href":"/docs/v26.2/configure-cockroachdb-operator"},{"title":"Certificate Management with the CockroachDB Operator","sidebarTitle":"Certificate Management","href":"/docs/v26.2/secure-cockroachdb-operator"},{"title":"Cluster Scaling with the CockroachDB Operator","sidebarTitle":"Cluster Scaling","href":"/docs/v26.2/scale-cockroachdb-operator"},{"title":"Cluster Monitoring with the CockroachDB Operator","sidebarTitle":"Cluster Monitoring","href":"/docs/v26.2/monitor-cockroachdb-operator"},{"title":"Upgrade a cluster in Kubernetes with the CockroachDB Operator","sidebarTitle":"Cluster Upgrades","href":"/docs/v26.2/upgrade-cockroachdb-operator"},{"title":"Override Deployment Templates with the CockroachDB Operator","sidebarTitle":"Override Templates","href":"/docs/v26.2/override-templates-cockroachdb-operator"},{"title":"Performance with the CockroachDB Operator","sidebarTitle":"Kubernetes Performance","href":"/docs/v26.2/cockroachdb-operator-performance"}]}]},{"group":"Deploy on Kubernetes with Legacy Technologies","pages":[{"title":"Kubernetes Overview","sidebarTitle":"Overview","href":"/docs/v26.2/kubernetes-overview"},{"title":"Legacy Kubernetes Deployment Deprecation Notice","sidebarTitle":"Legacy Kubernetes Deployment Deprecation Notice","href":"/docs/v26.2/kubernetes-deprecation-notice"},{"title":"Deploy CockroachDB in a Single Kubernetes Cluster","href":"/docs/v26.2/deploy-cockroachdb-with-kubernetes"},{"title":"Deploy CockroachDB in a Single Kubernetes Cluster (Insecure)","href":"/docs/v26.2/deploy-cockroachdb-with-kubernetes-insecure"},{"title":"Deploy CockroachDB on Red Hat OpenShift","sidebarTitle":"OpenShift Deployment","href":"/docs/v26.2/deploy-cockroachdb-with-kubernetes-openshift"},{"title":"Orchestrate CockroachDB Across Multiple Kubernetes Clusters","sidebarTitle":"Multi-Cluster Deployment","href":"/docs/v26.2/orchestrate-cockroachdb-with-kubernetes-multi-cluster"},{"group":"Operate on Kubernetes","pages":[{"title":"Pod Scheduling","href":"/docs/v26.2/schedule-cockroachdb-kubernetes"},{"title":"Resource Management","href":"/docs/v26.2/configure-cockroachdb-kubernetes"},{"title":"Certificate Management","href":"/docs/v26.2/secure-cockroachdb-kubernetes"},{"title":"Cluster Scaling","href":"/docs/v26.2/scale-cockroachdb-kubernetes"},{"title":"Cluster Monitoring","href":"/docs/v26.2/monitor-cockroachdb-kubernetes"},{"title":"Upgrade a cluster in Kubernetes","sidebarTitle":"Cluster Upgrades","href":"/docs/v26.2/upgrade-cockroachdb-kubernetes"},{"title":"CockroachDB Performance on Kubernetes","sidebarTitle":"Kubernetes Performance","href":"/docs/v26.2/kubernetes-performance"}]}]},{"group":"Multi-Region for Self-Hosted Deployments","pages":[{"title":"Topology Patterns Overview","href":"/docs/v26.2/topology-patterns"},{"title":"Basic Production Topology","href":"/docs/v26.2/topology-basic-production"},{"title":"Follower Reads Topology","href":"/docs/v26.2/topology-follower-reads"},{"title":"Follow-the-Workload Topology","href":"/docs/v26.2/topology-follow-the-workload"},{"title":"Regional Tables","href":"/docs/v26.2/regional-tables"},{"title":"Global Tables","href":"/docs/v26.2/global-tables"}]},{"group":"Security","pages":[{"group":"Certificates","pages":[{"title":"Use the CockroachDB CLI to provision a development cluster","href":"/docs/v26.2/manage-certs-cli"},{"title":"Manage PKI certificates with HashiCorp Vault","href":"/docs/v26.2/manage-certs-vault"},{"title":"Create Security Certificates using OpenSSL","href":"/docs/v26.2/create-security-certificates-openssl"},{"title":"Advanced Public Key Infrastructure (PKI) Certificate Scenarios","href":"/docs/v26.2/create-security-certificates-custom-ca"},{"title":"Using Online Certificate Status Protocol (OCSP) with CockroachDB","sidebarTitle":"Use Online Certificate Status Protocol (OCSP)","href":"/docs/v26.2/manage-certs-revoke-ocsp"},{"title":"Certificate-based authentication using multiple values from the X.509 Subject field","sidebarTitle":"Certificate-based authentication using multiple values from the X.509 SUBJECT field","href":"/docs/v26.2/certificate-based-authentication-using-the-x509-subject-field"}]},{"title":"Authenticate to CockroachDB Self-Hosted Clusters","sidebarTitle":"Authentication","href":"/docs/v26.2/authentication"},{"title":"Manage Encryption for CockroachDB Self-Hosted Clusters","sidebarTitle":"Encryption","href":"/docs/v26.2/encryption"},{"title":"Manage Cluster User Authorization","sidebarTitle":"Authorization","href":"/docs/v26.2/authorization"},{"title":"Table-based SQL Audit Logging","href":"/docs/v26.2/sql-audit-logging"},{"title":"Role-based SQL Audit Logging","href":"/docs/v26.2/role-based-audit-logging"},{"title":"Configure LDAP Authentication","sidebarTitle":"LDAP Authentication","href":"/docs/v26.2/ldap-authentication"},{"title":"Configure LDAP Authorization","sidebarTitle":"LDAP Authorization","href":"/docs/v26.2/ldap-authorization"},{"title":"GSSAPI Authentication (Enterprise)","sidebarTitle":"GSSAPI Authentication","href":"/docs/v26.2/gssapi_authentication"},{"title":"Cluster Single Sign-on (SSO) using JSON Web Tokens (JWTs)","sidebarTitle":"Cluster SSO using JWT","href":"/docs/v26.2/sso-sql"},{"title":"Configure JWT Authorization","sidebarTitle":"JWT Authorization","href":"/docs/v26.2/jwt-authorization"},{"title":"Single Sign-on (SSO) for DB Console","sidebarTitle":"DB Console SSO","href":"/docs/v26.2/sso-db-console"},{"title":"Configure OIDC Authorization for DB Console","sidebarTitle":"OIDC Authorization","href":"/docs/v26.2/oidc-authorization"},{"title":"Rotate Security Certificates","href":"/docs/v26.2/rotate-certificates"},{"title":"Use HashiCorp Vault's Dynamic Secrets","sidebarTitle":"Use Hashicorp Vault's Dynamic Secrets","href":"/docs/v26.2/vault-db-secrets-tutorial"},{"title":"Update Operating System Packages in a CockroachDB Docker Image","sidebarTitle":"Update Docker Image OS Packages","href":"/docs/v26.2/update-docker-image-os-packages"}]},{"group":"Monitoring and Alerting","pages":[{"title":"Monitoring and Alerting","sidebarTitle":"Overview","href":"/docs/v26.2/monitoring-and-alerting"},{"title":"Common Issues to Monitor","href":"/docs/v26.2/common-issues-to-monitor"},{"title":"Enable the Node Map","href":"/docs/v26.2/enable-node-map"},{"title":"Prometheus Endpoint","href":"/docs/v26.2/prometheus-endpoint"},{"title":"Monitor CockroachDB with Prometheus","sidebarTitle":"Use Prometheus and Alertmanager","href":"/docs/v26.2/monitor-cockroachdb-with-prometheus"},{"title":"Essential Metrics for CockroachDB Self-Hosted Deployments","sidebarTitle":"Essential Metrics for CockroachDB self-hosted Deployments","href":"/docs/v26.2/essential-metrics-self-hosted"},{"title":"Essential Alerts for CockroachDB Self-Hosted Deployments","sidebarTitle":"Essential Alerts for CockroachDB self-hosted Deployments","href":"/docs/v26.2/essential-alerts-self-hosted"}]},{"group":"Administration","pages":[{"title":"DB Console Overview","href":"/docs/v26.2/ui-overview"},{"title":"Cluster Overview Page","href":"/docs/v26.2/ui-cluster-overview-page"},{"group":"Metrics Dashboards","pages":[{"title":"Overview Dashboard","sidebarTitle":"Overview","href":"/docs/v26.2/ui-overview-dashboard"},{"title":"Hardware Dashboard","sidebarTitle":"Hardware","href":"/docs/v26.2/ui-hardware-dashboard"},{"title":"Runtime Dashboard","sidebarTitle":"Runtime","href":"/docs/v26.2/ui-runtime-dashboard"},{"title":"Networking Dashboard","sidebarTitle":"Networking","href":"/docs/v26.2/ui-networking-dashboard"},{"title":"SQL Dashboard","sidebarTitle":"SQL","href":"/docs/v26.2/ui-sql-dashboard"},{"title":"Storage Dashboard","sidebarTitle":"Storage","href":"/docs/v26.2/ui-storage-dashboard"},{"title":"Replication Dashboard","sidebarTitle":"Replication","href":"/docs/v26.2/ui-replication-dashboard"},{"title":"Distributed Dashboard","sidebarTitle":"Distributed","href":"/docs/v26.2/ui-distributed-dashboard"},{"title":"Queues Dashboard","sidebarTitle":"Queues","href":"/docs/v26.2/ui-queues-dashboard"},{"title":"Slow Requests Dashboard","sidebarTitle":"Slow Requests","href":"/docs/v26.2/ui-slow-requests-dashboard"},{"title":"Changefeeds Dashboard","sidebarTitle":"Changefeeds","href":"/docs/v26.2/ui-cdc-dashboard"},{"title":"Overload Dashboard","sidebarTitle":"Overload","href":"/docs/v26.2/ui-overload-dashboard"},{"title":"TTL Dashboard","sidebarTitle":"TTL","href":"/docs/v26.2/ui-ttl-dashboard"},{"title":"Physical Cluster Replication Dashboard","sidebarTitle":"Physical Cluster Replication","href":"/docs/v26.2/ui-physical-cluster-replication-dashboard"},{"title":"Logical Data Replication Dashboard","sidebarTitle":"Logical Data Replication","href":"/docs/v26.2/ui-logical-data-replication-dashboard"},{"title":"Custom Chart Debug Page","href":"/docs/v26.2/ui-custom-chart-debug-page"}]},{"title":"Databases Page","href":"/docs/v26.2/ui-databases-page"},{"title":"Sessions Page","href":"/docs/v26.2/ui-sessions-page"},{"title":"Statements Page","href":"/docs/v26.2/ui-statements-page"},{"title":"Transactions Page","href":"/docs/v26.2/ui-transactions-page"},{"title":"Insights Page","href":"/docs/v26.2/ui-insights-page"},{"title":"Network Page","href":"/docs/v26.2/ui-network-latency-page"},{"title":"Top Ranges Page","href":"/docs/v26.2/ui-top-ranges-page"},{"title":"Jobs Page","href":"/docs/v26.2/ui-jobs-page"},{"title":"Schedules Page","href":"/docs/v26.2/ui-schedules-page"},{"title":"Advanced Debug Page","href":"/docs/v26.2/ui-debug-pages"},{"title":"Key Visualizer","href":"/docs/v26.2/ui-key-visualizer"},{"title":"WAL Failover","href":"/docs/v26.2/wal-failover"}]},{"group":"Backups and Restores","pages":[{"title":"Backup and Restore Overview","sidebarTitle":"Overview","href":"/docs/v26.2/backup-and-restore-overview"},{"title":"Take Full and Incremental Backups","sidebarTitle":"Full and Incremental Backups","href":"/docs/v26.2/take-full-and-incremental-backups"},{"title":"Take Backups with Revision History and Restore from a Point-in-time","sidebarTitle":"Backups with Revision History and Point-in-time Restore","href":"/docs/v26.2/take-backups-with-revision-history-and-restore-from-a-point-in-time"},{"title":"Take and Restore Encrypted Backups","sidebarTitle":"Encrypted Backup and Restore","href":"/docs/v26.2/take-and-restore-encrypted-backups"},{"title":"Take Locality-restricted Backups","sidebarTitle":"Locality-restricted Backup Execution","href":"/docs/v26.2/take-locality-restricted-backups"},{"title":"Take and Restore Locality-aware Backups","sidebarTitle":"Locality-aware Backup and Restore","href":"/docs/v26.2/take-and-restore-locality-aware-backups"},{"title":"Manage a Backup Schedule","sidebarTitle":"Scheduled Backups","href":"/docs/v26.2/manage-a-backup-schedule"},{"title":"Backup Validation","href":"/docs/v26.2/backup-validation"},{"title":"Expire Past Backups","href":"/docs/v26.2/expire-past-backups"},{"title":"Backup and Restore Monitoring","href":"/docs/v26.2/backup-and-restore-monitoring"}]},{"group":"File Storage","pages":[{"title":"Use Cloud Storage","sidebarTitle":"Cloud Storage","href":"/docs/v26.2/use-cloud-storage"},{"title":"Cloud Storage Authentication","href":"/docs/v26.2/cloud-storage-authentication"},{"title":"Use Userfile Storage","sidebarTitle":"Userfile Storage","href":"/docs/v26.2/use-userfile-storage"},{"title":"Use a Local File Server","sidebarTitle":"Local File Server","href":"/docs/v26.2/use-a-local-file-server"}]},{"group":"Cluster Maintenance","pages":[{"title":"Upgrade CockroachDB self-hosted","sidebarTitle":"Upgrade CockroachDB","href":"/docs/v26.2/upgrade-cockroach-version"},{"title":"Disaster Recovery Planning","href":"/docs/v26.2/disaster-recovery-planning"},{"title":"Restoring Backups Across Versions","href":"/docs/v26.2/restoring-backups-across-versions"},{"title":"Manage Long-Running Queries","href":"/docs/v26.2/manage-long-running-queries"},{"title":"Node Shutdown","href":"/docs/v26.2/node-shutdown"}]},{"group":"Logs","pages":[{"title":"Logging Overview","sidebarTitle":"Overview","href":"/docs/v26.2/logging-overview"},{"title":"Configure Logs","href":"/docs/v26.2/configure-logs"},{"title":"Logging Use Cases","href":"/docs/v26.2/logging-use-cases"},{"title":"Log SQL Activity to Datadog","href":"/docs/v26.2/log-sql-activity-to-datadog"},{"title":"Logging Best Practices","href":"/docs/v26.2/logging-best-practices"},{"title":"Critical Log Messages","href":"/docs/v26.2/critical-log-messages"}]},{"title":"Cluster API v2.0","sidebarTitle":"Cluster API","href":"/docs/v26.2/cluster-api"}]},{"group":"Schema Design","pages":[{"title":"Database Schemas","href":"/docs/v26.2/schema-design-overview"},{"title":"Computed Columns","href":"/docs/v26.2/computed-columns"},{"title":"Column Families","href":"/docs/v26.2/column-families"},{"title":"Scale to Multiple Regions","href":"/docs/v26.2/multiregion-scale-application"},{"group":"Indexes","pages":[{"title":"Secondary Indexes","href":"/docs/v26.2/schema-design-indexes"},{"title":"Index a Subset of Rows with Partial Indexes","sidebarTitle":"Partial Indexes","href":"/docs/v26.2/partial-indexes"},{"title":"Index Sequential Keys with Hash-sharded Indexes","sidebarTitle":"Hash-sharded Indexes","href":"/docs/v26.2/hash-sharded-indexes"},{"title":"Generalized Inverted Indexes","href":"/docs/v26.2/inverted-indexes"},{"title":"Full-Text Search","href":"/docs/v26.2/full-text-search"},{"title":"Trigram Indexes","href":"/docs/v26.2/trigram-indexes"},{"title":"Expression Indexes","href":"/docs/v26.2/expression-indexes"},{"title":"Spatial Indexes","href":"/docs/v26.2/spatial-indexes"},{"title":"Vector Indexes","href":"/docs/v26.2/vector-indexes"}]},{"group":"Update a Database Schema","pages":[{"title":"Online Schema Changes","href":"/docs/v26.2/online-schema-changes"},{"title":"Migrate CockroachDB Schemas with Alembic","sidebarTitle":"Use Alembic","href":"/docs/v26.2/alembic"},{"title":"Migrate CockroachDB Schemas with Flyway","sidebarTitle":"Use Flyway","href":"/docs/v26.2/flyway"},{"title":"Migrate CockroachDB Schemas with Liquibase","sidebarTitle":"Use Liquibase","href":"/docs/v26.2/liquibase"}]}]},{"group":"Reads and Writes","pages":[{"title":"Reads and Writes in CockroachDB","sidebarTitle":"Overview","href":"/docs/v26.2/architecture/reads-and-writes-overview"},{"group":"Read Data","pages":[{"title":"Reusable Views","href":"/docs/v26.2/views"},{"title":"Subqueries","href":"/docs/v26.2/subqueries"},{"title":"Temporary Tables","href":"/docs/v26.2/temporary-tables"},{"title":"Paginate Results","href":"/docs/v26.2/pagination"},{"title":"Follower Reads","href":"/docs/v26.2/follower-reads"},{"title":"AS OF SYSTEM TIME","sidebarTitle":"AS OF SYSTEM TIME","href":"/docs/v26.2/as-of-system-time"},{"title":"Query Spatial Data","href":"/docs/v26.2/query-spatial-data"}]},{"group":"Write Data","pages":[{"title":"Bulk-update Data","href":"/docs/v26.2/bulk-update-data"},{"title":"Bulk-delete Data","href":"/docs/v26.2/bulk-delete-data"},{"title":"Batch Delete Expired Data with Row-Level TTL","href":"/docs/v26.2/row-level-ttl"}]},{"group":"Transactions","pages":[{"title":"Transactions","sidebarTitle":"Overview","href":"/docs/v26.2/transactions"},{"title":"Advanced Client-side Transaction Retries","href":"/docs/v26.2/advanced-client-side-transaction-retries"},{"title":"Life of a Distributed Transaction","href":"/docs/v26.2/architecture/life-of-a-distributed-transaction"},{"title":"Read Committed Transactions","href":"/docs/v26.2/read-committed"}]},{"title":"Test Your Application Locally","href":"/docs/v26.2/local-testing"},{"url":"https://www.cockroachlabs.com/docs/tutorials/sql-playground","title":"SQL Playground","href":"/links/tutorials/sql-playground"},{"group":"Database Management Tools","pages":[{"title":"Visualize CockroachDB Schemas with DBeaver","sidebarTitle":"DBeaver GUI","href":"/docs/v26.2/dbeaver"},{"title":"Use IntelliJ IDEA with CockroachDB","sidebarTitle":"IntelliJ IDEA","href":"/docs/v26.2/intellij-idea"}]}]},{"group":"Stream Data","pages":[{"title":"Change Data Capture Overview","href":"/docs/v26.2/change-data-capture-overview"},{"group":"Get Started with Changefeeds","pages":[{"title":"Create and Configure Changefeeds","href":"/docs/v26.2/create-and-configure-changefeeds"},{"title":"Changefeed Best Practices","href":"/docs/v26.2/changefeed-best-practices"},{"group":"Changefeed Messages","pages":[{"title":"Changefeed Messages","sidebarTitle":"Overview","href":"/docs/v26.2/changefeed-messages"},{"title":"Changefeed Message Envelope","sidebarTitle":"Message Envelope","href":"/docs/v26.2/changefeed-message-envelopes"}]},{"title":"Changefeed Sinks","href":"/docs/v26.2/changefeed-sinks"},{"title":"Changefeed Examples","href":"/docs/v26.2/changefeed-examples"}]},{"group":"Monitor Changefeeds","pages":[{"title":"Monitor and Debug Changefeeds","sidebarTitle":"Overview","href":"/docs/v26.2/monitor-and-debug-changefeeds"},{"title":"Changefeed Monitoring Guide","sidebarTitle":"Monitoring Guide","href":"/docs/v26.2/changefeed-monitoring-guide"},{"title":"Protect Changefeed Data from Garbage Collection","sidebarTitle":"Protect Changefeed Data","href":"/docs/v26.2/protect-changefeed-data"}]},{"group":"Optimize Changefeeds","pages":[{"title":"Change Data Capture Queries","href":"/docs/v26.2/cdc-queries"},{"title":"Changefeeds on Tables with Column Families","href":"/docs/v26.2/changefeeds-on-tables-with-column-families"},{"title":"Export Data with Changefeeds","href":"/docs/v26.2/export-data-with-changefeeds"},{"title":"Changefeeds in Multi-Region Deployments","href":"/docs/v26.2/changefeeds-in-multi-region-deployments"}]},{"group":"Changefeed Tutorials","pages":[{"group":"Stream a Changefeed to an Amazon MSK Cluster","pages":[{"title":"Stream a Changefeed to Amazon MSK","sidebarTitle":"Amazon MSK","href":"/docs/v26.2/stream-a-changefeed-to-amazon-msk"},{"title":"Stream a Changefeed to Amazon MSK Serverless","sidebarTitle":"Amazon MSK Serverless","href":"/docs/v26.2/stream-a-changefeed-to-amazon-msk-serverless"}]},{"title":"Connect to a Changefeed Kafka Sink with OAuth Using Okta","href":"/docs/v26.2/connect-to-a-changefeed-kafka-sink-with-oauth-using-okta"},{"title":"Stream a Changefeed to a Confluent Cloud Kafka Cluster","href":"/docs/v26.2/stream-a-changefeed-to-a-confluent-cloud-kafka-cluster"}]},{"group":"Technical Overview","pages":[{"title":"How Does a Changefeed Work?","href":"/docs/v26.2/how-does-a-changefeed-work"}]},{"title":"Advanced Changefeed Configuration","href":"/docs/v26.2/advanced-changefeed-configuration"}]},{"group":"Cross-Cluster Replication","pages":[{"group":"Logical Data Replication","pages":[{"title":"Logical Data Replication","sidebarTitle":"Overview","href":"/docs/v26.2/logical-data-replication-overview"},{"title":"Set Up Logical Data Replication","href":"/docs/v26.2/set-up-logical-data-replication"},{"title":"Manage Logical Data Replication","href":"/docs/v26.2/manage-logical-data-replication"},{"title":"Logical Data Replication Monitoring","sidebarTitle":"Monitor Logical Data Replication","href":"/docs/v26.2/logical-data-replication-monitoring"}]},{"group":"Physical Cluster Replication","pages":[{"title":"Physical Cluster Replication","sidebarTitle":"Overview","href":"/docs/v26.2/physical-cluster-replication-overview"},{"title":"Set Up Physical Cluster Replication","href":"/docs/v26.2/set-up-physical-cluster-replication"},{"title":"Upgrade a Cluster Running PCR","href":"/docs/v26.2/upgrade-with-pcr"},{"title":"Fail Over from a Primary Cluster to a Standby Cluster","sidebarTitle":"Fail Over from a Primary to a Standby Cluster","href":"/docs/v26.2/failover-replication"},{"title":"Physical Cluster Replication Monitoring","sidebarTitle":"Monitor a Replication Stream","href":"/docs/v26.2/physical-cluster-replication-monitoring"},{"title":"Read from Standby","sidebarTitle":"Read From Standby","href":"/docs/v26.2/read-from-standby"},{"title":"Physical Cluster Replication Technical Overview","sidebarTitle":"Technical Overview","href":"/docs/v26.2/physical-cluster-replication-technical-overview"},{"group":"Cluster Virtualization","pages":[{"title":"Cluster Virtualization Overview","sidebarTitle":"Overview","href":"/docs/v26.2/cluster-virtualization-overview"},{"title":"Work with virtual clusters","sidebarTitle":"Work with Virtual Clusters","href":"/docs/v26.2/work-with-virtual-clusters"},{"title":"Cluster Setting Scopes with Cluster Virtualization enabled","sidebarTitle":"Setting Scopes","href":"/docs/v26.2/cluster-virtualization-setting-scopes"},{"title":"Cluster Metric Scopes with Cluster Virtualization enabled","sidebarTitle":"Metric Scopes","href":"/docs/v26.2/cluster-virtualization-metric-scopes"}]}]}]},{"group":"Multi-Region Capabilities","pages":[{"title":"Multi-Region Capabilities Overview","sidebarTitle":"Overview","href":"/docs/v26.2/multiregion-overview"},{"title":"Multi-Region Survival Goals","sidebarTitle":"Survival Goals","href":"/docs/v26.2/multiregion-survival-goals"},{"group":"Data Domiciling and Performance","pages":[{"title":"Table Localities","href":"/docs/v26.2/table-localities"},{"title":"Table Partitioning","href":"/docs/v26.2/partitioning"},{"title":"Data Domiciling with CockroachDB","sidebarTitle":"Data Domiciling with CockroachDB Tutorial","href":"/docs/v26.2/data-domiciling"}]},{"title":"How to Choose a Multi-Region Configuration","href":"/docs/v26.2/choosing-a-multi-region-configuration"},{"title":"Multi-Region Zone Config Extensions","href":"/docs/v26.2/zone-config-extensions"}]},{"group":"Optimize Performance","pages":[{"title":"Optimize Statement Performance Overview","sidebarTitle":"Overview","href":"/docs/v26.2/make-queries-fast"},{"title":"SQL Performance Best Practices","href":"/docs/v26.2/performance-best-practices-overview"},{"title":"Indexes","href":"/docs/v26.2/indexes"},{"title":"Map SQL Activity using an Application Name","href":"/docs/v26.2/map-sql-activity-to-app"},{"title":"Cost-Based Optimizer","href":"/docs/v26.2/cost-based-optimizer"},{"title":"Canary Statistics","href":"/docs/v26.2/canary-statistics"},{"title":"Vectorized Query Execution","sidebarTitle":"Vectorized Execution Engine","href":"/docs/v26.2/vectorized-execution"},{"title":"Load-Based Splitting","href":"/docs/v26.2/load-based-splitting"},{"title":"Replication Controls","href":"/docs/v26.2/configure-replication-zones"},{"title":"Admission Control","href":"/docs/v26.2/admission-control"},{"title":"Monitor and Analyze Transaction Contention","href":"/docs/v26.2/monitor-and-analyze-transaction-contention"},{"title":"Performance Tuning Recipes","href":"/docs/v26.2/performance-recipes"},{"group":"Performance Tuning Tutorials","pages":[{"title":"Statement Tuning with EXPLAIN","sidebarTitle":"Statement Tuning with EXPLAIN","href":"/docs/v26.2/sql-tuning-with-explain"},{"title":"Apply SQL Statement Performance Rules","href":"/docs/v26.2/apply-statement-performance-rules"},{"title":"Troubleshoot Lock Contention","href":"/docs/v26.2/troubleshoot-lock-contention"}]}]},{"group":"Integrate","pages":[{"group":"Ory","pages":[{"title":"Ory Overview","href":"/docs/v26.2/ory-overview"},{"title":"Integrate CockroachDB with Ory","sidebarTitle":"Integrate with Ory","href":"/docs/v26.2/ory-integration-guide"}]},{"title":"Integrate CockroachDB with Satori","sidebarTitle":"Integrate with Satori","href":"/docs/v26.2/satori-integration"}]}]},{"tab":"Migrate","icon":"arrow-right-arrow-left","pages":[{"title":"Migrate","href":"/docs/molt/migration-overview"}]},{"tab":"SQL","icon":"code","pages":[{"title":"SQL","href":"/docs/v26.2/sql-statements"}]},{"tab":"Reference","icon":"book","pages":[{"title":"Reference","href":"/docs/v26.2/architecture/glossary"}]},{"tab":"Cluster API","icon":"rocket","pages":[{"title":"Cluster API","href":"/docs/api/cluster"}]},{"tab":"Troubleshoot","icon":"bug","pages":[{"title":"Troubleshoot","href":"/docs/v26.2/troubleshooting-overview"}]}]},{"version":"v26.1","pages":[{"title":"v26.1","href":"/docs/v26.1/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v25.4","tag":"LTS","pages":[{"title":"v25.4","href":"/docs/v25.4/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v25.3","tag":"Unsupported","pages":[{"title":"v25.3","href":"/docs/v25.3/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v25.2","tag":"LTS","pages":[{"title":"v25.2","href":"/docs/v25.2/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v25.1","tag":"Unsupported","pages":[{"title":"v25.1","href":"/docs/v25.1/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v24.3","tag":"LTS","pages":[{"title":"v24.3","href":"/docs/v24.3/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v24.1","tag":"LTS","pages":[{"title":"v24.1","href":"/docs/v24.1/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v23.2","tag":"LTS","pages":[{"title":"v23.2","href":"/docs/v23.2/build-a-go-app-with-cockroachdb-upperdb"}]},{"version":"v23.1","tag":"Unsupported","pages":[{"title":"v23.1","href":"/docs/v23.1/build-a-go-app-with-cockroachdb-upperdb"}]}]},{"product":"Cloud Deployments","icon":"cloud","description":"Fully managed CockroachDB","pages":[{"title":"Cloud Deployments","href":"/docs/cockroachcloud"}]},{"product":"Releases","icon":"list","description":"Version history, support policy \u0026 advisories","pages":[{"title":"Releases","href":"/docs/releases"}]}]},"basePath":"","title":"Build a Go App with CockroachDB and upper/db - CockroachDB","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}