Skip to content

atsentia/mojo-sql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mojo-sql

Pure Mojo SQL database client with query builder and connection pooling.

Features

  • Query Builder - Type-safe SQL construction
  • Connection Pool - Efficient connection management
  • Result Sets - Structured query results
  • Transactions - ACID transaction support
  • Multiple Databases - PostgreSQL, MySQL, SQLite patterns

Installation

pixi add mojo-sql

Quick Start

Query Builder

from mojo_sql import Query

# SELECT
var q = Query.select("users")
    .columns("id", "name", "email")
    .where("active", "=", "1")
    .order_by("name")
    .limit(10)
    .build()

# INSERT
var q = Query.insert("users")
    .value("name", "John")
    .value("email", "john@example.com")
    .build()

# UPDATE
var q = Query.update("users")
    .set("name", "Jane")
    .where("id", "=", "1")
    .build()

# DELETE
var q = Query.delete("users")
    .where("id", "=", "1")
    .build()

Executing Queries

from mojo_sql import MockConnection, Query

var conn = MockConnection()
conn.connect()

var query = Query.select("users").build()
var result = conn.execute(query)

if result.is_ok():
    for i in range(result.row_count()):
        var row = result.result_set()[i]
        print(row.get_string("name"))

Connection Pool

from mojo_sql import ConnectionPool, ConnectionConfig

var config = ConnectionConfig("localhost", 5432, "mydb")
var pool = ConnectionPool(config, min_size=2, max_size=10)
pool.initialize()

var idx = pool.acquire()
if idx >= 0:
    var conn = pool.get_connection(idx)
    # Use connection...
    pool.release(idx)

pool.shutdown()

API Reference

Class Description
Query SQL query builder
ConnectionPool Connection pooling
ResultSet Query results
Row Single result row
Transaction Transaction management

Testing

mojo run tests/test_sql.mojo

License

Apache 2.0

Part of mojo-contrib

This library is part of mojo-contrib, a collection of pure Mojo libraries.

About

Pure Mojo SQL query builder with pooling

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages