Archive for the ‘SQLEditor’ Category

SQLEditor 1.6 final

Wednesday, January 6th, 2010

So, if you’ve seen SQLEditor recently, you’ll hopefully have seen that there is a new version out: version 1.6. This got released just at the beginning of December 2009

1.6 is something that I’ve been working on now for a long time, it is essentially (the unreleased) version 1.5 with improvements and updates. In particular it contains a SQL parser that was written using ANTLR and a new JNI based system for using JDBC drivers with support for Java 6 JDBC drivers.

It’s also the first release version of SQLEditor that is compatible with Snow Leopard. SQLEditor 1.4.7 and earlier had an unusual architecture. When I originally started writing SQLEditor, it was a Java application with a Swing user interface. After some development it seemed clear that java swing was proving limited in some ways. I rewrote the user interface layer in Cocoa, leaving the model layer in Java and using Cocoa Java to connect the two parts together. The application development continued and new versions were released. Eventually though, Apple decided that Cocoa Java was not the future and decided to deprecate it.

Work began immediately on rewriting the crucial components of SQLEditor, although there were some issues.

The first was the model code. Every object in an SQLEditor document is represented by an object and all of the code for these objects was written in Java. All of the object code was rewritten and tested against the earlier versions to check that it still worked. It was very important that files from previous versions continued to work (and as far as I know all of them so far do). New code was written to read and write the SQLEditor document xml format.

The second major issue was that the database interface used JDBC drivers, which are written in Java. Native code would use ODBC drivers. Although similar this might mean that users wouldn’t be able to use existing arrangements to access databases.

Eventually code was written to bridge between SQLEditor native code and the JDBC drivers using the Java Native Interface (JNI).

The other crucial problem was the SQL parser. This is used if you paste SQL code into SQLEditor or if you import a file. The SQL parser was written using JavaCC, a parser generator that is written in and produces Java code. Several parser generators were looked at to replace JavaCC and eventually ANTLR was chosen.

A new SQL parser was written and tested during 2009 in ANTLR and is included in SQLEditor 1.6. The new parser is completely rewritten compared to the one that existed in SQLEditor 1.4.7 and no code is shared between them.

A major step in developing the new parser was to port all of the SQL test cases from Java (in 1.4.7) to objective C (in 1.6). These automated unit tests are run against the parser to ensure that the new parser behaves correctly compared to both the 1.4.7 parser and the assorted SQL standards.

It is still something of a work in progress though, there are things it doesn’t support and it’s still being actively worked on. One particular thing that makes this somewhat harder than it might otherwise be is that it must accept SQL in several different dialects, not just a single standard.

SQLEditor 1.6 also included user interface improvements and various performance fixes.

Overall it’s an improved program, although I do wish that it had been released sooner.

Thanks to everyone using SQLEditor for your patience and also for trying the beta versions.

SQLEditor 1.6

Wednesday, September 23rd, 2009

The SQLEditor 1.6 public beta has been available now for about 3 weeks and I’m getting more hopeful about a final candidate release.

SQLEditor 1.6 is required for Mac OS X 10.6 Snow Leopard support, but because major sections needed rewriting to get this compatibility, there are also improvements to the core of the application.

There is a brand new SQL parser which is based on ANTLR and a new, more extendible, export system. Plus there are lots of other improvements in both user interface and functionality.

Best of all, it’s going to be a free upgrade for existing SQLEditor customers.

The beta is currently at version 1.6b7 but 1.6b8 will probably be out very soon.

I hope that you like it.

:-)

Download
SQLEditor 1.6b7
(DMG file | 4.2MB)

SQLEditor 1.4.4 Released

Thursday, April 30th, 2009

SQLEditor 1.4.4 was just released on Tuesday, the main feature improvement is the support for compound foreign keys. I posted a bit about this before and the final version is pretty much the same as I described.

Unfortunately there were a couple of bugs that slipped through relating to clicking objects. :-(

These are going to be fixed in a point release that should appear soon.

The new version is available from the automatic update system or download here:


3.9MB dmg File
Change Log
Product Notes
Expires
21st January 2009

SQLEditor: Compound Foreign Keys

Thursday, April 9th, 2009

The newest version of SQLEditor (1.4.4b1) now has support for compound foreign keys. This is something that people have been asking about for a while now, so I’m pleased that it got included.

There are some things that may need to be improved, but I’m fairly happy with the first revision of this.

Diagram showing compound foreign key

Diagram showing compound foreign key

The compound foreign key object is a new table level object that you can add from the Object menu just like a field or index. Then you drag from the foreign key to the target table. Finally you use the inspector to create pairs of columns to link together.

When importing from a database SQLEditor will try to create field-to-field links on foreign keys with only 1 pair of columns unless you tell it otherwise. (There is a new preference to do this)

Support is fairly complete, SQL parsing, database import, database export and SQL export are all available so it should work fairly well. I think the only thing it doesn’t do is auto-create indexes, so you may need to do this by hand on referenced columns (for those databases that need this)

There is naturally a new inspector palette to go with the table object.

Compound foreign key inspector

Compound foreign key inspector

This allows you to add pairs of columns using the + button at the bottom. Choose your columns using the little popup menus.

The whole thing is completely new, so please send in your thoughts to the usual address.

Download SQLEditor 1.4.4b1

(or enable the “Check for beta versions” preference and then use the check for updates feature)

SQLEditor 1.4.3b3

Monday, December 22nd, 2008

So, it’s coming up to the holidays, but there is time for another SQLEditor release.

1.4.3b3 (snappy numbering, yes?) is pretty much a bug fix release. I think that the index creation problems that were happening have now been fixed, plus better handling of when to create indexes. It should now correctly figure out if fields are indexed and shouldn’t now add duplicates (or worse attempt to add duplicates)

There is also the addition of the simulate mode for database export. This isn’t exactly new, because it’s been available in some development builds, but it has now appeared in a release version. Simulate mode runs the entire export as normal, except that instructions that alter the database aren’t actually sent to the database to be executed. The instructions are recorded though, so you can see what would have happened in the status window log view.

There is also a new feature which prevents fields and indexes being dropped (although it doesn’t prevent modification, use simulate if that’s what you want)

SQLEditor also now adds a line in the status window when an export fails complete with the instructions that were actually executed and the error that occurred. This information was always in the log, but it should be easier to see how SQLEditor has gone wrong (in the event that it does of course)

Finally some fixes for a few (hopefully unlikely) crashing bugs.

3.6MB dmg File

Change Log
Product Notes
Expires
21st January 2009

MySQL before 4.1?

Tuesday, December 2nd, 2008

This graph appears to show that most people polled (97%) are using MySQL 4.1 or later

This second poll shows, again, that most people (89%) are using 4.1 or later.

The thread at the PunBB forum gives 95% of people polled using 4.1 or later.

The Mambo forum poll from 2006 gives 80% using versions after 4.1 (with 8.5% don’t know or other)

Admittedly not scientific surveys (self selection, etc) but somewhat convincing.

This has an obvious implication on how to handle MySQL support, in particular special casing to work around particular issues in early versions. This code adds complexity and in some unfortunate cases also bugs. The less there is, the better.

SQLEditor updates

Saturday, November 15th, 2008

I’ve just released a new version of SQLEditor yesterday, mainly as a bug fix release, but it’s definitely recommended to upgrade.

The new beta is 1.4.3b1 which was released 14th November. It fixes a number of bugs, including MySQL comments and some odd bugs relating to selecting tables using the drag selection method.

Download 1.4.3b1 (3.6MB DMG)

The current stable version is 1.4.2 which came out at the end of October. It fixed several significant bugs that people reported and made a few minor improvements.

Download 1.4.2 (3.6MB DMG)

Django Support

Thursday, November 6th, 2008

Several people have now asked for this, so it’s being really seriously looked at.

Plus I’m hopeful that it will be able to support the somewhat different but quite similar Google app engine model class format too

Having been working on this for the last few days, I can say that the Django plugin is moving towards a working state, the development version is now somewhat able to create and export a suitable python file.

Although this mustn’t be taken to mean that it’s near to release, because there are still several major things that are needed before it will be complete.

I think there will probably be two releases, the first will be export only, then a later release will add the import features.

And it should be a free upgrade for SQLEditor :-)

SQLEditor releases

Thursday, October 16th, 2008

This is another quick update about SQLEditor releases in the near future.

1.4.2b1

Currently version 1.4.2b1 is in beta release, it offers a few specific improvements

  • Added support for editing MySQL character set and collation settings on fields and tables
  • Modified inspector on fields to use popup menu for selecting tabs
  • Fixed bug that prevented saving files after creating new foreign keys when referencing primary keys in tables with indexes under certain circumstances.

1.4.2b2

1.4.2b2 is due fairly soon. The following improvements should definitely appear

  • Modified MySQL exporter to use ENGINE instead of TYPE for better compatibility
  • Comments now attached to fields when exporting MySQL
    (i.e COMMENT ‘xyz’ style)
  • Connector inspector is now displayed automatically when a new connector is created
  • More padding added to line click detection to make it easier to click on connectors
  • Better parsing of comments attached to mysql field

There is also a bug relating to identifying objects in Postgresql when there is no schema when using some versions of that database system.This is currently planned to be included but hasn’t actually been finished yet. If the work on this bug gets completed this week it will appear in 1.4.2b2, otherwise it will get pushed to the next release.

I think that’s everything that’s coming in the near future, there are some other things that I’ve been working on, but they’re more long term (mainly for 1.5), so not much to say yet.

SQLEditor Progress

Monday, August 25th, 2008

It’s been a little while since I wrote about the release of SQLEditor so it’s time to write about what’s been happening with SQLEditor since then.

SQLEditor 1.4.1.b2 (available now)

There is a new bug fix release of SQLEditor available in beta right now. If the “Check for beta versions” box in the preferences window is checked then you’ll get the offer of the upgrade to 1.4.1b2.

This is a minor bug fix release that fixes a few bugs that have been reported since the 1.4 release

SQLEditor 1.4.1b3 (available soon)

This release is going to fix a stupid bug that makes the file type selection in the export as image box not work correctly. The file types got mixed up in the code so the labels don’t match the output. It missed the b2 release, but it will be corrected in beta 3

SQLEditor 1.5

This is the next big release of SQLEditor. It’s going to have an entirely new SQL parser (written in ANTLR 3) and a major rewrite of the codebase (which moves almost all of the Java code to C or Objective C)

The new parser replaces to the old Java based parser (written in Javacc) with a new one that runs entirely in C and Objective C. Although I have found JavaCC to be an excellent tool, this replacement reduces the amount of Java code in the application substantially.

Plugins

The new code will also offer a much better api for plugins. The current api, which isn’t public, is used for the Rails import and export, but it’s annoying to work with, because the architecture wasn’t really built for it. The new codebase is much better for writing plugins.

JDBC / JNI Library for Cocoa

SQLEditor 1.5 also uses a new Java JNI and JDBC library for Cocoa which I’m hoping to be able to make Open Source soon. It allows you to access a database using JDBC rather than ODBC. This may not be as efficient, but it’s much easier to install drivers. If you would like to try these new libraries in your own application please send me an email and I’ll send you some code to try out. The final libraries are probably going to be BSD licensed, but it’s still being worked out exactly how it will work.

SQLEditor 1.4 Final Released

Saturday, August 2nd, 2008

In case you missed it version 1.4 of SQLEditor was released back on July 8th.

If you’re using 1.3.9 you might like to consider upgrading.

The 1.3.9 upgrade system will be set soon to recommend this upgrade
(though 1.3.9 doesn’t use sparkle, so it can’t actually do the upgrade for you)

SQLEditor 1.4
(3.6 MB DMG File)

Lots of great new features and various bug fixes and improvements to the existing ones.

SQLEditor 1.4b26

Tuesday, June 24th, 2008

SQLEditor 1.4b26 is now available for download.

It fixes only one problem which is related to auto increment and SQLite.

This should hopefully be the final beta version for 1.4

:-)

The next version should be the 1.4 final release which will probably happen later this week or early next week (assuming no more problems are reported)

SQLEditor 1.4b26 Download [3.6MB DMG]

SQLEditor 1.5

Friday, June 20th, 2008

SQLEditor 1.5 is making good progress. The latest thing that I’m currently working on is to extract SQL Views from a database. In theory this should be just like extracting tables, but it’s looking much harder to work out than I ever expected.

The new SQL parser is mostly finished. It’s been completely rewritten using ANTLR3. This offers a number of really good improvements, the most important one being that it’s not running in Java anymore. The parser is now completely native code.

Also pretty much finished is the new document model code, the new document export code and the new JDBC handling code. I’m hopeful that it will now be possible to run JDBC drivers that use AWT (which I’m informed the IBM DB2 driver may do).

SQLEditor 1.4 is just about finished too. There is one change that needs to get beta tested and then the 1.4 final release should be available.

Watch out for a new 1.5 download soon and of course the final candidate for 1.4

10.5 support

Thursday, October 25th, 2007

At the moment I believe that both SQLEditor and HTMLValidator are compatible with Mac OS X 10.5 and should work without functional difficulty.

A minor issue that I found is that the toolbar icons don’t look very good against the 10.5 window style. These have already been redrawn and the new icons will appear in the 1.4 release.

This assumes that there weren’t any major changes between the version that I used to test and the release version of 10.5 which will be released on October 26th.

Overall it looks good though.

OneMonthApp and SQLEditor

Monday, October 22nd, 2007

OneMonthApp is using SQLEditor!

OneMonthApp is a project where they are building a complete web application in a month. It’s going to be a simple and easy to use cash flow application, apparently. And they’re going to make it free, which is great too.
I’ve signed up to be notified when it’s done, which the counter is promising for sometime in the next couple of days. (They started in September, so less than a month)
Stephen over at OneMonthApp very kindly included SQLEditor in a list of 20 tools for web application development that they’re using for the project.
Maybe I need an “I use SQLEditor” badge icon or something?

SQLEditor 1.4b2

Friday, August 17th, 2007

Another day, another beta. (Kind of)

SQLEditor 1.4b2 is now available, which is pretty much bug fixing against 1.4b1.

There were several issues with 1.4b1 including an annoying bug that would sometimes delete foreign key connectors when you deleted an unrelated table.

There are some fixes for other bugs which turned up and some improvements to undo/redo, to make it more stable when you undo or redo lots of things, one after the other.

I’ve also moved SQLEditor to Sparkle. Sparkle replaces an update system that I wrote myself and it should offer better update support as well as a nice html based ‘what’s changed’ window.

SQLEditor also now tells people that it is a beta and exactly when it will expire. It probably should always have done this, but it does it now, which is probably good.

There are also some minor fixes to the live source view, so that it changes with the document sql dialect and appears correctly when reopening existing documents.

[Download] (3.4MB DMG File, changelog)

SQLEditor 1.3.6

Saturday, February 3rd, 2007

SQLEditor 1.3.6 has now been available for about a week and so far it looks good. 1.3.6 was mainly released to fix bugs found in 1.3.x releases and to add in a few important features that had been widely requested.

MySQL auto increment was probably the main improvement, but there were also some more changes to fix the connection issues.

One slight change that probably won’t get noticed at all if it works is that the page that version updates are directed to has changed. The url is now a special page rather than simply the product page. This should make it easier to download updates. (I’ve been looking into sparkle and friends for use in some later version)

I guess the upgrade advice is that 1.3.6 is recommended for all users, but if your current version is satisfactory then no need to upgrade.

SQLEditor 1.3.4 and 1.3.5: bugs

Thursday, January 25th, 2007

SQLEditor 1.3.4 got released on Tuesday, but unfortunately there is a bug in this version. :-(

The problem is that in 1.3.4 the connection presets system in the database connection panel was modified. There were a couple of fixes made, but one of them releated to selecting presets when the window opened. Unfortunately that change caused users who hadn’t made any presets to experience an error. The problem was that the new code didn’t correctly account for the possibility that there might not be any presets, it was trying to access an array of presets that was empty, which is obviously an error.
This has now been fixed and corrected in 1.3.5. Which should work correctly with or without presets.

SQLEditor 1.3.2

Wednesday, January 17th, 2007

SQLEditor 1.3.2 received a very limited release to a few selected testers at the end of 2006. However there were some additional issues that needed a bit more work, so the current plan is for a 1.3.3 release before the end of January.

SQLEditor 1.3.1

Sunday, December 10th, 2006

SQLEditor 1.3.1 got released on Friday afternoon, this was really just a bug fix release which fixed a handful of problems that were identified. I think the only major fix was that the new UID system was slightly broken in that if you copied an object, or duplicated it in some cases, then SQLEditor would not always recreate the unique ID numbers that represent each object. This had the effect that if you copied an object, SQLEditor couldn’t distinguish between the objects when reloading and so all connectors would be attached to the original object and not the new one. An unfortunate bug. :-(

It has now been fixed, along with slight improvements to image saving and a fix for a menu shortcut not being correct. The latter was an odd problem in that a shortcut was set, but it actually conflicted with an existing shortcut and the cocoa menu system is smart enough not to display the same shortcut for more than one menu.

[Download] 2.8MB DMG

For some reason also I don’t think I posted about the 1.3 release. But the 1.3 release was posted on November 23rd and is the first non-beta release to be released since May 2006. It rolled all of the improvements that had been made during the beta testing phase into a new release and is definitely worth upgrading (especially since the upgrade is free). However the 1.3 release has been superceded by the 1.3.1 release, so download that instead.