VStudio now can show warnings from operation

Valentina Engine far ago produce warnings in the ‘Warning.log’ for Import of Text operation. For example, record is not added if the primary key is not unique.

This warning.log is created near to application. And if this is a remote Valentina Server then user of Valentina Studio cannot easy see that warnings. Now this is improved. In Valentina engine, in Valentina Server and in Valentina Studio. Snapshot below demonstrate this.

VStudio – QueryBuilder make up and improvements

In 5.0b30 we have return back QueryBulder after few months.

* new – it works now for all supported engines: Valentina, PostgreSQL, mySQL, SQLite.

* new – we have simplify interface removing few visible areas, replacing them on TAB panels. Note that you can switch by main panels using such shortcuts as cmd+1 and cmd+2.

* new – you can specify expressions to be used in the SELECT clause.

* note that you can specify inner and left/right/full outer joins using right-click on a link on the diagram.

* note that if you will click SQL panel and then continue develop diagramm then you will see live changes in the generated SQL.

[NEW] VServer + VStudio now can show NOT registered dbs

We have extend SHOW DATABASES command to show also not registered databases located in the VServer/databases folder. To implement this VServer now is able iterate this folder to see files with .vdb extension.

Valentina Studio now take this in attention and show such not registered databases with a special icon. Also you get contextual menu with command “Register database”.

Refresh button of VStudio is able issue SHOW DATABASE command to check folder for new files if needed.

Join speed improved

After some benches we have discover that loop on small joins (when only one record on the left and few on the right) is not fast enough.

We have two major algorithms internally and we have discover that the first takes only 50 seconds on 10000 loops, while the second takes hundreds of seconds…So problem presents in the second algorithm.

Improved.

Now the second algorithm takes 120 second. And we can add yet choice condition to choose the first for such case of small joins…

I think we will be able to improve the second alg yet to 70-80 sec. And may be with more complex changes it is possible to speed both after that …

VClient and VServer now can analyze network

After some benches we have discover that it is not a good idea to use ZIP compression of data if VServer is on localhost or on fast LAN.

To resolve this we have specify 3 possible steps and made the first one without changes in API. As result, now VClient and VServer automatically can do raw analyze of network and define if to use ZIP.

Future we will add even special VClient function VConnection.Tune(), which your app can call on start, and later each 30 min for example to measure and analyze network state more accurately.

Couple of Movies about Diagrams and Links

Here we show couple of few-seconds movies that demonstrate how you can establish links between tables using new diagrams of Valentina Studio Pro.

For Valentina database you can establish Foreign Key, ObjectPtr and Binary Link. For SQLite and Postgre only Foreign Key.

  1. Establish Link
  2. Shows how you get access to “Add Link” button and then to panel, which allows you to choose link type for the left and right table.

  3. Establish MM link
  4. Shows how you can establish by few mouse clicks MM link between two tables, and how this automatically creates third MM table and FK fields in original table(s).

[Imp] LINK/UNLINK commands now have optional suffix to suppress errors

Thorsten have point us that for his task it is not comfortable when command

LINK RECORD (1) OF T1 TO RECORDS(3, 7, 9) OF T2

throws error and stops, if link 1-7 already exists.

We have agree and improve these commands adding suffix

LINK … [IF NOT EXISTS]
UNLINK … [IF EXISTS]

This suffix is similar to CREATE/DROP commands. If it is specified, then error is not fired and command continue work for other pairs of links.

[Imp] CREATE BINARY LINK now does not accept SET NULL, SET DEFAULT by grammar. NO CASCADE added

Thorsten have point us that WIKI page about this command looks strange, because uses

Referential_action
: NO ACTION  (alias to RESTRICT)
| RESTRICT
| SET NULL
| SET DEFAULT
| CASCADE

Now SQL grammar have one more rule vext_referential_action_for_link without “SET NULL”, “SET DEFAULT” and added “NO CADCADE” for Binary Links.

Continue reading [Imp] CREATE BINARY LINK now does not accept SET NULL, SET DEFAULT by grammar. NO CASCADE added

[IMP] Recursive query now can use RDB-link defined on the fly

While Valentina have very cool syntax for recursive queries, one Valentina developer have point us that it cannot be used in his task, because he do not have predefined link with name. Taking this into account, for v5.0 we have extend syntax of recursive query

from    USING link_name
to        USING (link_name | search_condtiion)

Continue reading [IMP] Recursive query now can use RDB-link defined on the fly