| | 427 | |
| | 428 | 2006-09-15 thru 2007-06-02 |
| | 429 | |
| | 430 | * Started rewriting Rosetta again, but with a name change, since |
| | 431 | "Rosetta" was no longer appropriate for various reasons. This rewrite |
| | 432 | took the intentionally bad and temporary name QDRDBMS, to be renamed |
| | 433 | again (to Muldis DB) later on. With the name change allowed for the |
| | 434 | previous version numbering of Rosetta to be dropped, and this rewrite |
| | 435 | would eventually be first released as version zero. |
| | 436 | |
| | 437 | * Unlike both Rosetta incarnations, QDRDBMS started off explicitly |
| | 438 | having no external dependencies at all save Perl 5 or Perl 6 itself |
| | 439 | (and what they bundle), so this made it simpler yet in design, and in |
| | 440 | particular made it very easy to install (no dependency tree). |
| | 441 | |
| | 442 | * QDRDBMS was started in the wake of having had a lot more experience |
| | 443 | in reading up on the truly relational model of data, and was now |
| | 444 | designed fundamentally to be the design and implementation of a new |
| | 445 | turing complete programming language for working with relational |
| | 446 | databases, now called "QDRDBMS D". |
| | 447 | |
| | 448 | * QDRDBMS actually had a lot of code written for it this time, with the |
| | 449 | focus initially being to code first and document later, to experiment |
| | 450 | with what might work out. |
| | 451 | |
| | 452 | * Made an experimental CPAN release of QDRDBMS version 0.0.0 on |
| | 453 | 2007-05-31, which specifically was a quick branch that stripped out all |
| | 454 | the code and just contained the documentation. This was the only CPAN |
| | 455 | release of the (partial) project under the QDRDBMS name. |
| | 456 | |
| | 457 | * Shortly after this, QDRDBMS was renamed to its presumably final name |
| | 458 | of "Muldis DB", and its command language to "Muldis D". |
| | 459 | |
| | 460 | 2006-04-14 thru 2006-11-22 |
| | 461 | |
| | 462 | * Started a complementary Perl 6 project named "Relation" which was |
| | 463 | intended to provide native tuple and relation data types for ordinary |
| | 464 | use in Perl 6 programs like other built-in collection types. The first |
| | 465 | commit was Pugs SVN rev 9938, on 2006-04-14, and Pugs 6.2.12 |
| | 466 | (2006-06-26) included it. |
| | 467 | |
| | 468 | * On 2006-07-04, renamed this project to "Set-Relation", which it |
| | 469 | remains to this day. Pugs 6.2.13 and later included this. |
| | 470 | |
| | 471 | * Set-Relation received various small updates thru 2007-02-03, but is |
| | 472 | now stagnant; it will likely get un-stuck after Muldis DB sets an |
| | 473 | example for it. |
| | 474 | |
| | 475 | 2006-02-01 thru 2006-04-13 |
| | 476 | |
| | 477 | * The first simultaneous releases of the Perl 5 and 6 versions of |
| | 478 | Rosetta's rewrite occurred on 2006-02-01; they were also the first CPAN |
| | 479 | releases of either version. The Perl 6 one was Pugs release 6.2.11 |
| | 480 | (SVN rev 8934). |
| | 481 | |
| | 482 | * On 2006-02-23 was the first (Perl 5) CPAN release of Rosetta where |
| | 483 | the project was then officially an implementation of "The Third |
| | 484 | Manifesto", the central work of Darwen and Date's DBMS proposal; |
| | 485 | moreover, Rosetta's command language was named "Rosetta D", to be a "D" |
| | 486 | language by the terms of said proposal. |
| | 487 | |
| | 488 | * On 2006-03-20 was the (Perl 5) release that declared Rosetta was to |
| | 489 | be fundamentally a self-contained relational DBMS (and the core |
| | 490 | distribution would bundle such an implementation of its API) rather |
| | 491 | than "just" a DBMS wrapper; though extensions could still chose to |
| | 492 | operate as wrappers over other DBMSs. |
| | 493 | |
| | 494 | * On 2006-04-13 was the last CPAN release of the Perl 5 Rosetta, and |
| | 495 | Pugs 6.2.12 (SVN rev 10930), on 2006-06-26, had the corresponding Perl |
| | 496 | 6 version; Pugs 6.2.13 (SVN rev 11402), on 2006-10-27, had the last |
| | 497 | CPAN release of Perl 6 Rosetta, with trivial Perl 6 only updates. |
| | 498 | After this, Pugs would have a Muldis DB instead. |
| | 499 | |
| | 500 | * This time period also saw very little code, and almost entirely |
| | 501 | documentation updates. |
| | 502 | |
| | 503 | * However, the code that did exist at this time was trying so hard to |
| | 504 | be alike between Perl 5 and Perl 6 that the Perl 5 version had external |
| | 505 | dependencies on a half-dozen CPAN distros that provided features like |
| | 506 | Perl 6 builtins, but said features were largely trivial. Both versions |
| | 507 | also went to trouble to make their user text (support) multi-lingual. |
| | 508 | |
| | 509 | 2005-12-06 thru 2006-01-31 |
| | 510 | |
| | 511 | * Rosetta started to evolve so that its API and design was based on |
| | 512 | relational algebra, which is a lot of smaller generic constructs that |
| | 513 | can easily be arranged into queries; this is in contrast to the |
| | 514 | previous design based around monolithic and unwieldy SQL "select" |
| | 515 | queries. Generally speaking, there was increasing influence on the |
| | 516 | design by Hugh Darwen's and Chris Date's proposals on how a truly |
| | 517 | relational DBMS should work. This time period also saw very little |
| | 518 | code, and almost entirely documentation updates. |
| | 519 | |
| | 520 | 2005-12-05 |
| | 521 | |
| | 522 | * Darren Duncan is introduced by David Wheeler to the truly relational |
| | 523 | model of data, in a posting on the Bricolage development list in the |
| | 524 | "Re: [6977] New branch for maintenance of Bricolage 1.10.x." thread. |
| | 525 | |
| | 526 | * David said that Darren's expressed thought, that compound data types |
| | 527 | in table fields was a violation of first normal form, was in fact a |
| | 528 | misconception about the relational model. David then referenced a |
| | 529 | recent interview with C. J. Date. |
| | 530 | |
| | 531 | * This set off a chain of events which was the largest paradigm shift |
| | 532 | to ever affect the Rosetta project. While the continuing goal of |
| | 533 | Rosetta remained largely the same, the way this was to be accomplished |
| | 534 | would become quite different, and the project would gain a new goal, to |
| | 535 | help improve the design of relational DBMSs themselves. |
| | 536 | |
| | 537 | 2005-09-30 thru 2005-12-04 |
| | 538 | |
| | 539 | * Started a full rewrite of Rosetta, with the intent of avoiding being |
| | 540 | over-engineered, and cutting corners in the short term so to get |
| | 541 | something useable at all sooner. The idea was to focus on vertical |
| | 542 | development first, so that at least a subset of features work earlier, |
| | 543 | taking the development strategy of Perl6-Pugs itself as an example; |
| | 544 | this is in contrast to the more horizontal development strategy of the |
| | 545 | first Rosetta implementation. |
| | 546 | |
| | 547 | * Moreover, this rewrite was being done simultaneously in both Perl 5 |
| | 548 | and Perl 6; each language had its own independent but synchronized |
| | 549 | version, with the Perl 6 one intended to be the main future one that |
| | 550 | guided design decisions, and the Perl 5 one intended to be the one |
| | 551 | production-ready first, to be used until Perl 6 itself was production |
| | 552 | ready. That co-development was maintained afterwards, and happens with |
| | 553 | the Muldis DB core. |
| | 554 | |
| | 555 | * There was practically no code produced at this time, mainly just |
| | 556 | design documentation. |
| | 557 | |
| | 558 | * This Rosetta rewrite retained the version numbering of the previous |
| | 559 | line, and its numbers were a bit awkward as a result. |
| | 560 | |
| | 561 | 2002-11-12 thru 2005-09-28, plus 2006-01-13 |
| | 562 | |
| | 563 | * Developed and released on CPAN the Rosetta DBMS framework, whose |
| | 564 | intended purpose was to provide rigorous portability of database |
| | 565 | schemas and database-using applications between different SQL DBMS |
| | 566 | products. A lot of design documentation was produced, as well as some |
| | 567 | code and tests, but while a significant amount of executing code was |
| | 568 | produced, no solution emerged that was actually useable for real work; |
| | 569 | what did get produced was also unnecessarily complicated. |
| | 570 | |
| | 571 | * Throughout the life of that project, these various module namespaces |
| | 572 | were used for CPAN distributions of parts of the framework: |
| | 573 | |
| | 574 | - DBIx-Portable (2003-01-05) |
| | 575 | - Rosetta (2003-01-21 thru 2005-09-28, plus 2006-01-13) |
| | 576 | - SQL::ObjectModel (2003-06-11 thru 2003-09-16) |
| | 577 | - SQL::SyntaxModel (2003-09-26 thru 2004-09-13) |
| | 578 | - SQL::Routine (2004-10-04 thru 2005-09-28) |
| | 579 | |
| | 580 | * The "Rosetta" and "SQL-Routine" names were also registered with "The |
| | 581 | Perl 5 Module List", on 2003-01-21 and 2004-10-04, respectively. Later |
| | 582 | on, the "SQL-Routine" registration was deleted on 2006-01-07, and the |
| | 583 | "Rosetta" registration on 2007-04-24. |
| | 584 | |
| | 585 | * A translation of some parts of Rosetta into Perl 6 was made, under |
| | 586 | the auspices of the Perl6-Pugs project, between 2005-03-25 (Pugs SVN |
| | 587 | rev 1194) and 2005-04-02 (Pugs SVN rev 1463); Pugs release 6.0.13 |
| | 588 | (2005-03-26) included a version, but Pugs 6.0.14 (2005-04-04) did not; |
| | 589 | the Perl 6 versions didn't work, however, which is why they were soon |
| | 590 | excised from the Pugs VC (to P6PAN, which didn't go anywhere). |
| | 591 | |
| | 592 | * A Lightning Talk was also given introducing Rosetta at OSCON 2005; |
| | 593 | but it is Muldis DB instead that will fulfill the promises made in it. |
| | 594 | |
| | 595 | 2002-06-07 |
| | 596 | |
| | 597 | * Started writing self-contained code components that were explicitly |
| | 598 | designed to enable external code that used them to work seamlessly on |
| | 599 | multiple database products. Some of this work was reused later in the |
| | 600 | Rosetta DBMS framework et al, and hence 2002 is the start of the |
| | 601 | declared copyright date range for Muldis DB. |