2004-05-01 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.30.
* This is a "middle of development" release that includes a large number of
changes, some of which are only partially implemented. It exists largely
so that I can have a reliable backup for (and historical record of) the
last 3 weeks of in-progress work. Some changes made now are incompatible
with 0.29, and likewise will be further changes to come in 0.31.
* Multiple corresponding updates in Language.pod and SyntaxModel.pm (now
v0.17) that are partly influenced by my close studying of the SQL-2003
standard, and partly by my attempts to build a SQL generator.
* Updated documentation to say that the SQL-2003 standard is now the focus
of influence rather than SQL-1999 (or SQL-1992).
* Expanded the support for temporal data types / domains. The 2
simple_data_type enumerated values of [DATETIME, INTERVAL] have become 5
values of [DATM_FULL, DATM_DATE, DATM_TIME, INTRVL_YM, INTRVL_DT]. Also
added new 'domain' Node attribute 'with_zone'.
* Expanded the support for table join operators. The 2 join_operator
enumerated values of [EQUAL, LEFT] have become 5 values of [CROSS, INNER,
LEFT, RIGHT, FULL] (last 3 are outer-joins, INNER is renamed from EQUAL).
As with before, there is no concept of a "natural" join at this level.
* Expanded the view_part enumerated value list to include WINDOW and other
matters for consideration.
* Expanded the basic_expr_type enumerated value list to add CAST and SEQN.
Added new attributes to "view_expr" and "routine_expr" Nodes named 'domain'
and 'sequence' that are respectively used with CAST and SEQN.
* Updated the standard_func enumerated value list in several ways. Removed
the TO_* casting functions, which for now are replaced by the CAST basic
expression type. Renamed NVL to COALESCE, EXP to POWER. Added NOT_NULL,
ABS. Removed MIN, MAX, AVG as non-aggregate functions. Removed CROWID,
CROWNUM, CLEVEL, which will be replaced later. Renamed the G* aggregate
functions to the same names minus the leading 'G'. Added EXISTS.
* Added documentation regarding the recursiveness of views.
* The 'name' attribute of "routine" Nodes is now mandatory.
* Other small documentation updates in the same two files. For example,
"sequences" are now called "sequence generators".
* No updates were made to the test suite since it did not test the portions
of SQL::SyntaxModel that changed; the old suite still passes all its tests.
2004-04-10 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.29.
* Updated Language.pod and SyntaxModel.pm (now v0.16) to transpose the
'domain' Node attributes 'num_precision' and 'num_scale'. Up until now I
was using 'scale' to mean the same thing that everyone else uses
'precision' to mean, and vice-versa; now I am using the terms to mean the
same things as is widely accepted. Further updated the documentation for
all 'num_*' attributes, removed any conditional mandatory constraints on
them. Made a small corresponding change in t_SQL_SyntaxModel.pm.
* Updated the 'command_type' enumerated type to include a set of 'SEQU_*'
commands that look like the ones for 'TABLE_*', 'VIEW_*', 'ROUTINE_*'.
Other minor changes in Language.pod and SyntaxModel.pm.
2004-03-22 Darren Duncan <perl@DarrenDuncan.net>
* Release 0.28.
* There are 4 distributions being released simultaneously that all have the
same release number of 0.28; this is one of them. They are:
SQL-SyntaxModel-0.28, SQL-SyntaxModel-ByTree-0.28,
SQL-SyntaxModel-SkipID-0.28, Rosetta-0.28. Each of the latter 3 is
dependant on the first 1. These 4 distributions cumulatively have almost
identical contents to the Rosetta-0.27 distribution, which is their sole
progenitor; that older distribution has hereby been split into 4 pieces
which will now be developed independently from each other. All 4 new
distributions inherit the external dependency on Locale-KeyedText-0.03.
* While those of Rosetta-0.27 were taken as a starting point, these CPAN
standard files have been changed to either a large or a small extent as
appropriate so that they represent the new 0.28 distribution: ChangeLog,
INSTALL, Makefile.PL, MANIFEST, ReadMe, TODO. (META.yml is generated.)
* This ChangeLog file has been truncated to exclude the details from
releases 0.01 thru 0.27, as they aren't very useful going forward and take
up a lot of space (about 90 kilobytes). If you want to read those details
then please look at an archived Rosetta-0.27 distribution, which is the
last one to have them.
* The distribution you are looking at now is the first one to bear the name
SQL-SyntaxModel. For historical posterity, this is its file manifest:
- ChangeLog
- INSTALL
- lib/SQL/SyntaxModel.pm
- lib/SQL/SyntaxModel/API_C.pod
- lib/SQL/SyntaxModel/L/en.pm
- lib/SQL/SyntaxModel/Language.pod
- lib/t_SQL_SyntaxModel.pm
- LICENSE
- Makefile.PL
- MANIFEST
- META.yml Module meta-data (added by MakeMaker)
- ReadMe
- t/SQL_SyntaxModel.t
- TODO
* All modules with version numbers have seen theirs incremented by 0.01
compared to Rosetta-0.27, and all modules or scripts that use them now
require the new numbers; said modules did not have any other significant
changes. In this distribution, SQL::SyntaxModel is now v0.15 and
SQL::SyntaxModel::L::en is now v0.05.
* A few other minor updates were made to several files.
2004-03-21 Darren Duncan <perl@DarrenDuncan.net>
* Rosetta-0.27, the last version of the distribution prior to its 4-way
split, was released on CPAN.
2003-01-27 Darren Duncan <perl@DarrenDuncan.net>
* Rosetta-0.02, the first version of the distribution under that name,
was released on CPAN.
2003-01-05 Darren Duncan <perl@DarrenDuncan.net>
* DBIx-Portable-0.01, the only version of the Rosetta distribution under
its previous name, was released on CPAN.
2002-11-12 Darren Duncan <perl@DarrenDuncan.net>
* Began development on the modules which became the pre-split Rosetta
distribution as their own entity that is separate from my application, for
open-source distribution on CPAN. The modules were to comprise an
RDBMS-generic DB framework for any application to use.
* Modules based on a template created by h2xs 1.18.
2002-07-28
* Posted the first significant update to the second prototype, which added
an index or cache for data that was expensive to calculate for each page
request, and involved rewriting about a fourth of the perl code.
2002-06-07
* Posted to my website the second public prototype demo of the new
self-proprietary database driven application, whose database schema, user
interface, feature set, and Perl application code was almost completely
rewritten. The new version explicitly had separate modules for database
communication and the web interface logic, with MySQL-specific code and
database generic or data dictionary code in separate files, and separate
files for parts of the web interface. The program used the same generic
CPAN modules as in the first prototype, DBI/MySQL and CGI::Portable.
2001-11-24
* Posted the last update to the first prototype.
2001-07-12
* Posted to my website the first public prototype demo of a new
self-proprietary database driven application, which is like a cross between
a multimedia metadata catalogue and a repository for historical or
genealogical data. This application contained the first prototypes of code
that ended up in these modules. All of this application's code, for
database communication and web interface logic, was situated in a single
module, with the rest of the program being more generic CPAN modules like
DBI (and DBD for MySQL) and CGI::Portable.
2000-05-17
* Requested MySQL database privileges on my web host so I have something to
start developing, testing and deploying database driven applications on.