Postgresql bindings for Guile! (Uses Guile's FFI, so installation is easy!) Why "squee"? Because "squeal" is a silly way to pronounce squeal, and "squee" is an always-happy squeal! (Thanks for the great name, Aeva and Sheila!)

David Pirotte 215e926b93 Fixing guile.m4 7 years ago
am 80ce6ad47e autotool chain - final step 8 years ago
doc c816c6bf30 autotool chain - step 3 8 years ago
m4 215e926b93 Fixing guile.m4 7 years ago
meta 80ce6ad47e autotool chain - final step 8 years ago
org 5a6c294ab3 autotool chain - step 1 8 years ago
squee 920ba43545 autotool chain - step 2 8 years ago
.gitignore 80ce6ad47e autotool chain - final step 8 years ago
AUTHORS 5a6c294ab3 autotool chain - step 1 8 years ago
COPYING 5a6c294ab3 autotool chain - step 1 8 years ago
ChangeLog 5a6c294ab3 autotool chain - step 1 8 years ago
INSTALL 5a6c294ab3 autotool chain - step 1 8 years ago
LICENSE 5a6c294ab3 autotool chain - step 1 8 years ago
Makefile.am 80ce6ad47e autotool chain - final step 8 years ago
NEWS 5a6c294ab3 autotool chain - step 1 8 years ago
README 5a6c294ab3 autotool chain - step 1 8 years ago
autogen.sh 80ce6ad47e autotool chain - final step 8 years ago
configure.ac ec941636b8 configure: Remove comma from GUILE_PKG call. 7 years ago
env.in 80ce6ad47e autotool chain - final step 8 years ago
guix.scm 44876f5d71 guix.scm: Add postgresql as an input. 7 years ago
squee.scm 920ba43545 autotool chain - step 2 8 years ago

README

Squee! Simple PostgeSQL bindings for Guile!
============================================

What's Squee? Squee is a library for connecting to the excellent
PostgreSQL database using Guile. It uses Guile's "foreign function
interface" support, which means you don't need to compile
anything... it all happens through the magic of dynamic linking!

The project is released under the GNU Lesser Public License, version 3
or later (as published by the FSF), just like Guile itself.


Using
-----

;; Make a connection to the database
(define conn (connect-to-postgres-paramstring "dbname=sandbox"))

;; Select some stuff from the database
(exec-query conn "SELECT * FROM animals")
; -> (("1" "monkey" "Almost a human" "ooh ooh") ("3" "parrot" "pretty noisy" "ba-kwaw"))
;; Select, but substitute in a variable
(exec-query conn "SELECT * FROM animals where NAME = $1" '("monkey"))
; -> (("1" "monkey" "Almost a human" "ooh ooh"))

Technically these functions return multiple values, so if you
"receive" the second parameter, you also can get metadata about your
query.

Queries that don't return rows (as in CREATE or DELETE statements)
will simply return #t, so keep that in mind!

That's about it for now, more to come soon.