-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, 12 May 2009 12:42:32 -0400 Jeff Ortel <jor...@redhat.com> wrote:
> All, > > I'd like to start getting some eyes on the pgsql branch in > preparation of a merge to master. So far, the changes on this branch > have been focused on porting the schema and updating the application > infrastructure to work with both oracle and postgres databases. None > of the queries have been ported/forked yet. I'm not implying that > the branch is ready to merge to master as is. Rather, that it is > ready for review and I'd like everyone's help to get it to where we > can merge it. > > Here is a summary of the changes to look for (as best I can): > > SCHEMA DIRECTORY > > The goal here was to push as much of the schema into common as > practical and make the schema code tree as developer friendly as > possible. > > - The schema directory has been refactored replacing > rhnsat/ > with: > oracle/ > postgres/. > - Forked (cannot be common) items: > rhnsat/class/ > rhnsat/types/ > rhnsat/procs/ > rhnsat/packages/ > (git) moved to oracle/ and copied to postgres/ and ported to PG. > - Table files (rhnsat/tables/*) > - <table>.sql files: > - Most moved to common/tables/ > - Trigger DDL split out and moved into existing or new > oracle/triggers/<table>.sql > - *_triggers.sql files: > - (git) moved to oracle/triggers/ > - _triggers suffix removed because redundant w/ directory > scoping. > - *_data.sql files: > - Most (git) moved to common/data/ > - Few files forked and (git) moved to oracle/data. Forked > files copied to postgres/data and ported to PG. > - _data suffix removed because redundant w/ directory scoping. > - *_index.sql files consolidated into file w/ table DDL. Most of > the indexes were already there anyway. > - View files: > - Most view (.sql) files were (git) moved to common/views. This > involved some standardizing of the view SQL but most were unchanged. > - Few view (.sql) files were forked: > - (git) moved to oracle/views/ > - Copied to postgres/views and ported to PG. > - Upgrades (upgrade/* directories & files): > - Most files (git) moved to common/upgrade/<upgrade> > - Few files forked: (git) moved to oracle/upgrade/<upgrade>. > - Few files forked: copied to postgres/upgrade/<upgrade> and > ported to PG. > - Upgrade scripts containing updated things created as CREATE OR > REPLACE like views procs and packages updated replacing cut-n-paste > content that is redundant with install files with an include to the > install (.sql) file. See examples in git tree. > - So far, git only has 0.4 -> 0.5 (example) upgrade scripts, rest > to follow. > > COMMON --> DB SPECIFIC > > At build, common (common/) files are transformed by a build tool > named "chameleon" into DB specific files. For example: > # > # cd oracle > # chameleon -s oracle -o tables/common/x.sql ../common/tables/x.sql > # > Long term, chameleon will be a Fedora project and included in Fedora > distribution. For now, it is available on the wiki: > https://fedorahosted.org/spacewalk/wiki/PostgreSqlProject#Attachments. > > STYLE > > You may notice that the common/tables/*.sql were formatted using > chameleon. Consistent with most DDL/SQL style guides, chameleon > renders keywords in caps and uses spaces instead of tabs. If you > don't like this style, don't freak out. We take a vote and I can > easily re-run the files through chameleon and reformat to any style > we like :-) > > MAKEFILES > > The Makefile.schema refactored into a /regular/ makefile. Dependency > sorting and .sql file aggregation split out into a build tool named > "blend". Although, make does do dependency sorting with the .deps > files, the Makefile.schema (although, a clever application of the > technology) seems to exceed make's intended use and was difficult to > maintain and debug. Blend also provides analysis of .deps files and > reports unused rules, unfound references, duplicate files and > circular dependencies. Anyway, if someone really believes we should > go back to using make for this, I suppose we can. > > PACKAGING > > The spacewalk-schema.spec was updated to package and install > install / upgrade scripts for both oracle and postgres. The files > are installed in: > > /etc/sysconif/rhn/oracle/ > main.sql > spacewalk_0.4-spacewalk_0.5.sql > ... > > /etc/sysconif/rhn/postgres/ > main.sql > spacewalk_0.4-spacewalk_0.5.sql > ... > > As you can see, the upgrade scripts are aggregated using blend just > like the install scripts. Spacewalk::Setup and the > spacewalk-schema-upgrade scripts need to be updated to support the > new directory structure and files names. This work has been started > but still needs more work. ** Milan, can you help with changes to > spacewalk-schema-upgrade? Also, anyone know what the links are for > in the upgrade directories? Do we need them? Can they be created > during RPM install? > > > INSTALL / SETUP > > - Installer > - Isolated more Oracle specific parts of spacewalk-setup. > - Added concept of specifying a database "backend" to use. > - Changes to support both Oracle/PostgreSQL db connection strings. > - Changes to support schema installation for both db's from new > schema location. > - rhn.conf now gets full db connection params instead of just a dsn > - not all are used for Oracle > - command line and db population scripts modified to populate > schema for both databases (some used --dsn argument, no longer valid) > - Python backend: > - More work on rhnSQL to support both databases transparently. > - added Cursor.update_blob method to support both methods of > updating blobs/byteas. > - Added support for calling PostgreSQL stored procedures (still > needs work) > - General code cleanup in rhnSQL. > - Needs heavy testing. > - Many query changes to progress through setup on both dbs. > - - Perl stack: > - Prepped for connecting to both databases. > - Heavy changes to how connections are established, stored, and > re-used. (mostly in a3ea30ad5badd272250ad7230305d1b9c2a96db2) > - Java > - Added dependency on postgresql jdbc driver. > - Initial changes to support connections to both dbs, had some > success with this, got to user creation screen with a couple > hacks during setup. > > > > > > > _______________________________________________ > Spacewalk-devel mailing list > Spacewalk-devel@redhat.com > https://www.redhat.com/mailman/listinfo/spacewalk-devel If you'd like to review the diff in any specific area of the git tree (or all of it) checkout the pgsql branch and use: git diff eaf631878376443eecf585daaf503691c58b93e7..HEAD -- ./ This is roughly what's been changed in the pgsql branch. Schema rpm has been completely re-structured as per the above, if you'd like to take a look at the end result: cd schema/spacewalk/ tito build --rpm --test And take a look at the resulting rpm. Cheers, Devan - -- Devan Goodwin <dgood...@redhat.com> Software Engineer Spacewalk / RHN Satellite Halifax, Canada 650.567.9039x79267 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (GNU/Linux) iEYEARECAAYFAkoK+O8ACgkQAyHWaPV9my4f+wCfXtkTet8IAoyXCRunQwWihLek Yy0AoNyz9EDLVRtTWf3x+I290cAlp/v4 =a1yT -----END PGP SIGNATURE----- _______________________________________________ Spacewalk-devel mailing list Spacewalk-devel@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-devel