Change Log for OpenResty

0.3.18 Jul 22 2008
* Builtin parameters like user, password, session, use_cookie, limit/count, offset, last_response, var, callback, and charset are not renamed to the form with a leading underscore, as in _user, _password, _session, _use_cookie, _limit/_count, _offset, _last_response and etc. The old form is still supported in the short term but is now deprecated.
* added missing files for misc/restylog/.
* (highly) experimental PL/Perl support (just as a proof of concept).

0.3.17 Jul 18 2008
* now we always sort the model/role/view/feed list by id asc.
* now the "type" attribute is no longer optional while creating models and columns.

0.3.16 Jul 18 2008
* checks /etc/openresty/site_openresty.conf and /etc/openresty/openresty.conf when \$FindBin::Bin/etc/*.conf are not found.
* now "make install" also installs haskell/bin/restyscript in case it exists.
* added the misc/restylog utility for analysing lighttpd log for the OpenResty server.
* added hint for editing the config file when the user starts the OpenResty server with the PgMocked backend enabled.
* updated the docs to reflect the fact that we now use for our main OpenResty server hosted by Yahoo! China.
* updated the docs to reflect that we host the admin site now at
* added an onerror handler to openresty's get method and now it croaks on failed HTTP requests like 404, 503 and bad address :)
* demo/Admin - fixed an IE issue in admin.js regarding deleting a model row and adding the first model row.
* demo/Admin - now it displays the loading flag during logging and also croaks on bad request by means of openresty.js's new onerror handler.
* added the LICENSE file.
* added debian packaging utilty. now "make -f debian" will create a .deb file for OpenResty.
* added some POD to OpenResty::Config.
* added a section to OpenResty::Spec::Installation for system-wide installation of OpenResty.
* skipped t/21-capthca.t in pgmocked and recording mode.

0.3.15 Jul 15 2008
* used the prompt function rather than <STDIN> in Makefile.PL as per Sanko Robinson's suggestion.
* various improvements of OpenResty::Spec::GettingStarted_cn.
* updated the document OpenResty::Spec::REST_cn.

0.3.14 Jul 14 2008
* fixed a bug regarding set_user("_global") which breaks creating the first OpenResty account on a fresh Pg.
* now we specify the MaxRows option when calling DBI's selectall_arrayref.
* renamed the Admin API to Unsafe API.
* introduced the frontend.unsafe and test_suite.test_unsafe options and also disabled the Unsafe API by default.
* added some POD for various classes.
* added a new POD document OpenResty::Tutorial::GetttingStarted_cn.

0.3.13 Jul 11 2008
* now we enclose the stats log generation code with an eval rather than die the whole fastcgi process.
* added POD to the bin/openresty script.

0.3.12 Jul 10 2008
* now we no longer check the metamodel version when doing upgrade (it was a cycle.)

0.3.11 Jul 10 2008
* fixed a failure when the config option frontend.stats_log_dir is set to an empty string.

0.3.10 Jul 10 2008
* added (basic) POD docs to most of the .pm files.
* added the OpenResty::Spec::TestSuite document.
* added the OpenResty::Spec::Installation document.
* added the OpenResty::Spec::AccountAdmin document.
* added the OpenResty::Spec::Upgrading document (for real this time).

0.3.9 Jul 9 2008
* added the OpenResty::Spec::Upgrading document.
* now we check if the version of the metamodel is up-to-date during server startup.

0.3.8 Jul 9 2008
* now we can update a col's default back to null and empty strings.
* allowed type ltree in model columns.
* added a new config option frontend.stats_log_dir.
* now we cache has_role as well as the role's login method
* added naive support for the unique key in column spec while creating models.
* now we check unrecognized keys in column spec while creating models
* added 34-unique.t and its pgmocked data
* now "trivial" cache gets completely disabled in recording mode or pgmocked mode

0.3.7 Jul 1 2008
* Bumped the metamodel version number to 0.005.
* Fixed the long standing bug regarding the model column default values saved in the metamodel.
* Exposed the Feed API in the Admin site demo.
* Now we use _rand in openresty.js for defeating web browser caching.
* Now we allow multiple views with identical definitions.

0.3.6 Jun 25 2008
* Now we check the minisql's syntax when the user updates the view's definition.
* Added a new demo, RestyCheck, which is a quick health-checker for *any* OpenResty server.
* The built-in action RunAction is now feature-complete.
* Added support for Pg network addresses' <<, <<=, >>, and >>= operators to minisql.
* The InitFatal error now respects url params like callback and var
* Added OpenResty::Inlined to enable recursive calling of the process_dispatcher method of OpenResty::Dispatcher
* Added support for the ip4r type
* Purge the (file) cache in startup
* Removed file paths from the low-level DB error messages which may expose security holes
* Fixed the restyscript compiler wrapper class OpenResty::RestyScript which has some problem with IPC::Run::run on our production machines and
* Removed the whitespaces in solution used in cache key which has problems in memcached
* haskell/restyscript - added an optimized2 goal to Makefile to use -fvia-c and -optc-O3 and it makes the restyscript compiler about 20% faster :D

0.3.5 Jun 17 2008
* Now we require 2 OpenResty test accounts to run the test suite.
* Optimized the server by reducing DB queries via agressive user of caching.
* Bypassed some checks for builtin roles Admin and Public to reduce DB uses.
* Added tsearch2 related data types tsvector and tsquery to the Model API.
* Added support for tsearch2's @@ operator to minisql.
* Renamed the builtin action .Select to RunView and also reimplemented it by the restyscript compiler in Haskell.
* Implemented half of the RunAction builtin action via the restyscript compiler in Haskell.
* Added a new "trivial" param to OpenResty::Cache's set method to identify not-so-important caching which is disabled by the backend.recording option or backend.type option in the config file.
* Updated the INSTALLATION doc to mention a second test account required to run the test suite.

0.3.2 June 3 2008
* The perl minisql parser now accepts tsearch2 queries.
* Added support for varchar(\d+) for Model columns' types.
* Added support for select distinct ... in the perl minisql parser.
* Worked around a JSON::XS issue in perl 5.10.0 in t/13-count.t and t/03-model.t
* Updated the bundled Module::Install to the latest version on CPAN [RT #36389].
* Various improvements for the Haskell version of restyview compiler under haskell/.

0.3.1 May 26 2008
* Now the Captcha handler no longer stores IDs in the cache.
* Upgraded the metamodel to 0.004 by adding storage for the new Captcha API.
* Fixed the global metamodel initialization logic (a fresh install works now)
* Added massive documentation, like an initial draft for the Perl GettingStarted tutorial.
* Added a new demo, Click4honor, which was an NCP widget.
* Lots of improvements to the Blog demo.
* Added a working Haskell implementation for the minisql compiler for view (restyview) under haskell/. But it is not yet hooked into the server.

0.2.2 April 23 2008
* Put OpenResty under Artistic Licence 2.0.
* Fixed various nits in OpenResty::Spec::Overview.
* Fixed a typo in the INSTALLATION section in
* Updated the CheatSheet document to reflect recent changes.

0.2.1 April 22 2008
* Added the OpenResty::Spec::Overview document.

0.2.0 April 21 2008
* Now we save the hex MD5 form of role passwords in the _roles table.
* Updated the openresty.js client lib accordingly.
* Added OpenResty::FeedWriter::RSS and the Feed handler to implement the basic Feed API.
* Reported the PL/proxy server's hostname in the openresty shell if the backend is "PgFarm".
* Put a note regarding password encryption in CheatSheet per Dylan Tynan's suggestion.
* Checked if an OpenResty view already exists before creating it.
* Finished the catpcha handler refactoring documentation (chaoslawful).
* demo/Blog - implemented the Archives module using enhanced minisql syntax.
* Renamed MiniSQL to RestyScript since it will no longer be a subset of SQL anyway.
* Added support for various operations (including +, -, *, /, ^, ||, and %) in the RestyScript compiler.
* Fixed the "like" operator in the restyscript compiler for views.
* demo/Admin - the general-purpose OpenResty admin site is now functional and CRUD operations for models, model columns, model rows, views, and roles have been fully implemented. I've also put a compiled version at ).
* Upgraded the metamodel to 0.003

0.1.10 April 4 2008
* Optimized the row bulk insertion and model bulk deletion operations. They are now much much faster.
* Now we use the ping method to test the DBI handle.
* Added demo/Blog2 for
* Added demo/SpringBot which is an IRC bot using OpenResty for storage.
* Pushed and into a pretty good shape.
* Added support for the Pg network address types and bigint to the Model handler.

0.1.9 Mar 24 2008
* Implemented the MetaModel automatic upgrading mechanism.
* Using MetaModel 0.001 now.
* Switched to JSON::XS from JSON::Syck for JSON input/output.
* Fixed a bug in GET /=/model/col/UTF8 reported by qyliu++.
* Fixed a bug regarding captcha ID in cookies.
* Added support for "boolean" to the type checker.

0.1.8 Mar 18 2008
* Fixed a typo in

0.1.7 Mar 17 2008
* Added OpenResty::Spec::MetaModel.

0.1.6 Mar 16 2008
* Fixed another randomness caused by float-point numbers.

0.1.5 Mar 14 2008
* Fixed the version number for OpenResty::FastCGI to amuse the PAUSE indexer.

0.1.2 Mar 14 2008
* Added much more stuffs to CheatSheet.

0.1.1 Mar 13 2008
* Fixed a random regression caused by the inherent errors in float-point numbers.
* Fixed a bunch of English typos in the POD.

0.1.0 Mar 11 2008
* Asked the user for permission before downloading font/wqy-zenhei.ttf from ( )
* Implemented the PgMocked backend which mocks up the Pg backend using t/pgmocked-data.json.

0.0.11 Mar 7 2008
* Removed uncomm!ented "use Smart::Comments" from the source.

0.0.10 Mar 6 2008
* No longer croak on the INSTALLDIRS=site argument and others fed to Makefile.PL
* Various improments to the POD.
* Moved "use Data::UUID" from OpenResty::Dispatcher to
* Fixed the InitalFatal in OpenResty::connect bug.
* Fixed a bug in WWW::OpenResty::Embedded by requiring HTTP::Response 1.53
* Fixed the view creation syntax in REST_cn.pod.
* Fixed bin/openresty in
* Fixed a bug in the Version handler (regarding the version number with 3 fields)
* Renamed the various OPENAPI_* environments to OPENRESTY_*

0.0.9 Mar 5 2008
* Renamed doc/cheat-sheet.txt to OpenResty::CheatSheet.

0.0.8 Mar 5 2008
* minor tweaks in POD

0.0.7 Mar 5 2008
* Renamed yuting++'s opensearch.pod to OpenResty::Spec::Arch_cn.

0.0.6 Mar 5 2008
* Restricted OpenResty::Handler::* within their own packages to help CPAN indexer.

0.0.5 Mar 4 2008
* Initial CPAN release

0.0.4 Dec 28 2007
* Finished first draf of view support [laser]
* Added Backend directory to put database access layer code. [laser]
* Added Changes files,
* Updated README
* lib/ change $Backend->select to $self->select to reduce confision