Thursday, October 18, 2007

General Q&A Session at 4D Summit 2007

These are notes from the general Q&A session at 4D Summit 2007.

The guys from 4D Inc and 4D SAS answer questions at 4D Summit 2007

Searching and nulls... If you have three values - bob, bill, NULL and you search for not(Bob) you'll only get bill. For now you can't search for = NULL.

Right now it doesn't analyze "automatic" indexes, but it will in the future. For now boolean fields gets Cluster and everything else gets BTree.

It may be slower to sort with clusters than with BTrees - depends on the circumstances, but most of the time clusters are as good or better than BTrees when the unique values are few.

There are special structure tables that are available via SQL that give you details about the structure.

There are no more public methods in components that can be modified.

Currently you must convert a structure to convert a data file, however v11.1 will let you convert a data file without converting a structure (needed for OEM users).

Components can have components and can use plug-ins.

List boxes will be made better in the future, but not sure when (for example locked columns).

One of the goals is to be able to use 4D Client over the Internet, but it's just a goal at this point - they can't say how well it will work because they're not done yet. It's all about latency - if you're getting 50-150ms latency things should work...

If you have a database where some of the records are one language 1, others in language 2, and others in language 3, etc. you will have problems converting, but there are strategies to handle the situation like putting the data into a BLOB and then converting it back once you're in unicode mode.

The process of indexing is much faster for cases where all of the values don't fit into memory (often the case with alpha keys), except when there isn't sufficient disk space - then it drops back to the old way it indexes.

v11 is not currently LDAP aware, but they're looking into it.

While you can't use 4D Open to connect to 4D v11 Server, you can use the 4D Open plug-in in a v11 database to connect to a pre-v11 database. However, it's not Universal Binary, so you'll need to run under Rosetta on MacIntel.

If you use SAVE SET / LOAD SET - v11 can read v2004 sets, but v2004 can't read v11 sets.

Laurent recommends using triggers minimally since they create a hit on performance.

In terms of multi-processors... Caching and indexing are pre-emptive and can run on separate processors, likewise with SQL connections, but all 4D code runs in the same process becauase of the limitations of the 4D language.

The database engine has the ability to support custom data types and much more, but the language doesn't have that support - so in the future (v12?) we may see these types of features.

4D Write and 4D View are now Universal Binary and they're working on improving 4D Write.

You cannot control who has access to what tables via SQL. When they implement views they may bring in support for that.

4D Draw will not be upgraded. There will be something completely different that is not at all compatible with current 4D Draw commands. It has to do with how Draw is integrated into 4D. This may not happen until the new object-oriented language comes out. However 4D Draw 2004 does work in v11.

4D Developer (mono) can act as 4D Client to 4D Server v11 SQL.

There are plans to have 4D Server run on Linux and other platforms, but not for v11 - possibly v12.

If you have a field on a project form and delete the table with the field the form will not blow up - the value will just be blank.

There are no plans to have the ISAPI plug-in support SOAP calls.

Field numbers for deleted fields are reused for new fields. (This was the subject of considerable discussion and people weren't quite sure whether it functioned that way - but it should.)

Most 4D Pack commands have been deprecated.

Index files cannot yet be put on a different volume, but you will be able to do that in a future. Supporting that in the first release would have delayed the release date for v11.

There is no locked set equivalent in SQL (the 4D language is superior to SQL!). The only way to handle this issue is with transactions, or deleting records one by one.

Triggers no longer lock the entire database when they're executing.

Preemptive multithreading is also working in single user. The 4D language won't feature preemptive multithreading until the new language comes out. This is actually why Laurent said to avoid triggers when possible - using triggers forces things into a single process and slows the actions considerably.

Even though there's no user mode, when compiled you get user mode like functionality in the design mode.

Where you get in trouble with replicated pictures is if the original image is large. Otherwise, you'll be fine.

The user/password scheme has not changed.

Labels: , ,

Digg It!  Add to  Add to StumbleUpon  Add to Reddit  Add to Technorati  Add to Furl  Add to Netscape


Post a Comment

Links to this post:

Create a Link

<< Home