SQL Parser Subselects

I have decided to rework my local version of the PEAR SQL parser to overcome some limitations.  The main features that I will be adding include:

  • Proper handling of sub-selects
  • Maintaining order of fields when some fields are actually function calls

In order to do this I have had to add a ‘columns’ array and a ‘tables’ array that hold information about all columns and tables respectively whether they are simple identifiers or not.  That means that some information is duplicated in these arrays (from the column_names and column_aliases, etc.. arrays). 

When this conversion is complete, it will pave the way for surrogate views in Dataface. 

PHP WebDAV Library

I woke up at 3am Saturday Morning as a result of an epiphany.  I recalled that PEAR has a WebDAV library that will allow me to make any heirarchical structure accessible via webdav.  I downloaded the library and played around with it a bit and found it to work beautifully.  Using webdav, Mac OSX or MS Windows can connect to the script as if it were a network file system and open files directly in the Finder (in Mac OS X’s case). 

 So, I got to thinking…  Using WebDAV and Dataface, it would be possible to build a CMS with MySQL that is completely accessible via webDAV.  In other words, the content could be stored in a database, but editors could access it via webDAV to edit the content in their favorite programs like Word, Dreamweaver, etc…   I slapped away at the keyboard all morning, and finally stopped when I decided that I needed to first complete support for surrogate views in Dataface before I could complete this elegant CMS.  

 

This CMS is hot on my fingertips though, so it will be coming soon. 

SSH Tunnelling

SSH Tunnelling has been around forever, but I have finally started using it – and WOW!  SSH Tunnelling is useful when you need to edit content on another machine, but you don’t have direct network access to it.  It can be used when you are in a situation where you have to first SSH into one machine and then SSH from there into your destination machine.  Some examples later.