User: Password:
Subscribe / Log in / New account



Posted May 16, 2012 12:23 UTC (Wed) by Cyberax (✭ supporter ✭, #52523)
In reply to: Awesome! by jberkus
Parent article: Highlights from the PostgreSQL 9.2 beta

Right now it's "no way in hell I'm going to release it in this state". It'll be BSD once I refactor it into something generally usable.

(Log in to post comments)


Posted May 22, 2012 5:34 UTC (Tue) by ringerc (subscriber, #3071) [Link]

Portability is an issue for Pg, particularly where intrinsics or inline asm are used. Pg is built with gcc, llvm/clang, icc, mingw/gcc-win32, and many other compilers. It runs on x86, x64, ppc32, ppc64, sparc64, mips, s390, and more. It is expected to support a wide set of platforms as per the buildfarm (

Of course, not all those need fancy fast asm/intrinsics based speedy parsers. A portable, safe implementation in plain old C does the job fine for most platforms; Pg's build system is designed to selectively build files depending on target platform so optimised versions can be used where available and a general fallback implementation where not.

A big concern to me with using a new JSON optimised/complex implementation would be the need to maintain it, ensuring it was secure, reliable, and stable. Especially in "fast" code it's hard to ensure that everything is checked and safe. Pg users expect bad input to cause a polite error message not a backend crash, so any kind of horrible corrupt JSON you can imagine must be coped with cleanly.

Of course, Pg already has a roll-your-own JSON implementation, so it'd be cool to have something faster so long as it still focused on safety first.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds