Mercurial > hg > xemacs-beta
view modules/postgresql/postgresql.h @ 5067:7d7ae8db0341
add functions `stable-union' and `stable-intersection' to do stable set operations
-------------------- ChangeLog entries follow: --------------------
lisp/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* cl-seq.el:
* cl-seq.el (stable-union): New.
* cl-seq.el (stable-intersection): New.
New functions to do stable set operations, i.e. preserve the order
of the elements in the argument lists, and prefer LIST1 over LIST2
when ordering the combined result. The result looks as much like
LIST1 as possible, followed (in the case of `stable-union') by
any necessary elements from LIST2, in order. This is contrary to
`union' and `intersection', which are not required to be order-
preserving and are not -- they prefer LIST2 and output results in
backwards order.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 22 Feb 2010 21:23:02 -0600 |
parents | 6ef4efc5cfe0 |
children | e0db3c197671 |
line wrap: on
line source
/* postgresql.h -- Emacs Lisp binding to libpq.so Copyright (C) 2000 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. Author: SL Baur <steve@xemacs.org> Maintainer: SL Baur <steve@xemacs.org> Please send patches to this file to me first before submitting them to xemacs-patches. */ #ifndef INCLUDED_postgresql_h_ #define INCLUDED_postgresql_h_ 1 #define message message_ /* Yuck */ #include LIBPQ_FE_H_FILE /* main PostgreSQL header file */ #undef message #define BLCKSZ 8192 /* size of a default Postgres disk block */ /* This file contains the GCC bug workaround code for the private LRECORD types. */ /* PGconn is an opaque object and we need to be able to store them in Lisp code because libpq supports multiple connections. */ struct Lisp_PGconn { struct LCRECORD_HEADER header; PGconn *pgconn; }; typedef struct Lisp_PGconn Lisp_PGconn; DECLARE_LRECORD (pgconn, Lisp_PGconn); #define XPGCONN(x) XRECORD (x, pgconn, Lisp_PGconn) #define wrap_pgconn(p) wrap_record (p, pgconn) #define PGCONNP(x) RECORDP (x, pgconn) #define CHECK_PGCONN(x) CHECK_RECORD (x, pgconn) #define CONCHECK_PGCONN(x) CONCHECK_RECORD (x, pgconn) /****/ /* PGresult is an opaque object and we need to be able to store them in Lisp code. */ struct Lisp_PGresult { struct LCRECORD_HEADER header; PGresult *pgresult; }; typedef struct Lisp_PGresult Lisp_PGresult; DECLARE_LRECORD (pgresult, Lisp_PGresult); #define XPGRESULT(x) XRECORD (x, pgresult, Lisp_PGresult) #define wrap_pgresult(p) wrap_record (p, pgresult) #define PGRESULTP(x) RECORDP (x, pgresult) #define CHECK_PGRESULT(x) CHECK_RECORD (x, pgresult) #define CONCHECK_PGRESULT(x) CONCHECK_RECORD (x, pgresult) #endif /* INCLUDED_postgresql_h_ */