[NEW] VStudio – Enum with localisation is supported now

Some time ago we have extend ENUM type by ability to have additional sets of enum values for specific locales. Now we introduce support of this new feature of Valentina 5.0 engine in the Valentina Studio 5.0b54.

This feature is supported in the following places:

  1. Schema Editor
    1.1 Columns: you are able create ENUM types, create/delete/change Locales in that Enums, change localised values.
    1.2 Trees: you can see ENUMs and their Locales in the tree of db schema
    1.3 Diagrams: you can design type ENUM right on diagram.
  2. Data Editor — IF table has at least one ENUM type, then you will see small menu in toolbar that allows you  switch between supported locales of that enum.
  3. SQL Editor — IF result of SQL query contains ENUM fields,  then you will see small menu in toolbar that allows you  switch between supported locales of that enum.
Below you can see few snapshots that demonstrate these features. Read More about ENUM TYPE …

 

[NEW] DEFAULT clause extended by METHOD(‘const_expr’)

We have extend Valentina SQL by non standard feature. DEFAULT clause now has form DEFAULT METHOD(‘const_expr’).

This step increases declarative power of DDL part of VSQL and, therefore, allows you do less job later working with inserts and updates.

You can use in the expression built-in Valentina functions and UDFs that not depends on other fields. The most useful examples are:

* now()
* UUID()
* nextval( sequence_name )
* current_user_name()

Compatibility:
* this is not standard syntax.
* PostgreSQL have similar syntax and behavior, but it specify expression just in the literal: DEFAULT STRING_LITERAL. This cause ambiguity.

[NEW] VKERNEL now can create journal at a specified location + Sandboxed Mac Apps with V4CC.

Frank have contact us with request add ability for V4CC (Valentina for Cocoa) developers to specify the location of journal of a database. This is important for sandboxed applications, which on default can access only their sandbox folder and a file(s) that user specify explicitly.

PROBLEM is that if a user choose somedb.vdb file in the SelectFile dialog , then Valentina engine needs yet to create a journal file near to .vdb file. But for a sandboxed application this is prohibited by OS X. This is why developer want to be able specify another location for journal file.

Btw, this problem exists more of year for SQLite database that is used e.g. in CoreData of Apple, when it is used by a sandboxed app. Strange, but the only advice from Apple is – disable journal file.

We have spend couple of days to add into C++ level  and into V4CC ADK this feature. Rest ADKs soon.

Now you can write the following in V4CC:

Continue reading [NEW] VKERNEL now can create journal at a specified location + Sandboxed Mac Apps with V4CC.

[Fix] VStudio Linux crash log from a beta tester did help recognize that …

… although Vstudio linux is installed into /opt  location, it loads /usr/local/lib/vcomponents if they present.

Today this issue was solved. Into script that start Vstudio, was added pre-load for vcomponents dlls. After this one dll have start cause problem because it contains static library that is newer than system’s one. Many hours was not successful, because of GCC 4.2 bug… Finally, a “brutal force trick” was used (the second time) to workaround this issue.

[NEW] VStudio now is able to send a crash log file to Valentina team

In a case of crash, Valentina Studio on linux and windows now is able  to create text file that contains crash log  information (stack of calls, loaded DLLs, … ). MAC OS X version of VStudio have no need to do this because OS X itself generates such crash log.

On the next start Valentina Studio will show dialog with suggestion to send this crash log to Valentina-db.com. Please note, this crash log contains totally anonymous information. This information will help to Valentina team to see that there was fact of crash, and where exactly was crash.  You can set check box to not show this dialog future and just send a crash report automatically if it is found.

On Windows and Linux, after sending of crash log file, it is deleted from disk of your computer. On OS X it is not deleted, because OS X append them  into single file per application.

[NEW] Localisable ENUM Type

Ladies and Gentlemen!  
The first time in the world!  🙂
Localizable Enum Type in DBMS!  

We already many months have working ENUM type in 5.0 branch of Valentina. Let me remind that ENUM type is not from SQL standard, so different DBs implement it in different way if at all implement. We have implemented it using CREATE TYPE command of SQL Standard. And we have implement ENUM in way similar to PostgreSQL, because it is the most correct: you just CREATE TYPE ENUM once and later using it in all places of your database.

mySQL, in contrast, defines ENUM as part of a particular Table, right in the CREATE TABLE command. This is not good of course, because then you cannot use this type in other tables or for variables of Stored Procedures.


CREATE TABLE sizes (
name ENUM('small', 'medium', 'large')
);

It is interesting that such mature database as Oracle do not have ENUM type.

All these existed implementations have one big problem from our point of view: such enum types contains string values of only one language. Below we will describe our solution.

Continue reading [NEW] Localisable ENUM Type

[SQL][REPORTS] Improved work with FORMAT()

Work on Valentina Reports have push us to look more deeply on our FORMAT() function of Valentina SQL.

Keep in mind, that Valentina Reports DLL is tightly integrated with Valentina Kernel DLL and use its power. In particular, formatting in Valentina Reports is based on this FORMAT() function, which, in its turn, is based on IMB ICU library features.

Keep in mind, that even if Valentina Reports use as datasource e.g. mySQL or PostgreSQL server, then it still use Valentina Kernel to do many job, including this formatting.

Problem was found that if function FORMAT() is used over DATE or TIME columns then in result ICU produce “garbage” time and date values correspondently. After some research we have found way how to cut off this garbage. So now reports and SQL function itself produce expected results.

Will be available for after 5.0b41 build and newer.

Now we have v4 and v5 WIKIs

Now we have two separate wikis to keep docs of v4 and v5:

Valentina Studio v5 will to v5 section, vstudio v6 will point to v5 section, and so on.
Old url http://www.valentina-db.com/dokuwiki  will point to the docs of the current official release.

[NEW] VStudio – Check Updates

We have add into Valentina Studio feature “Check Updates”. Only Mac App Store version will not have it, because AppStore itself take care about updates.

On start Valentina Studio will send a GET query to valentina-db site. This will happens in separate thread to not delay user in the case of network trouble.

You will be able enable/disable this feature in prefs panel, also you can specify if report about beta builds of vstudio.

I want note, that in this GET query we also will send some anonymous information such as:

  • OS on which works studio
  • version of studio
  • 32 or 64 bit architecture
  • MD5 hash of MAC address of the computer.
We going to use this hash as anonymous identifier of some computer where vstudio is started. So we will be able, to see that e.g. 30% of users start vstudio  each day, 10% once per week … may be something else …
Future we going add yet automatic sending of crash log if any. Again such anonymous identifier will allow us link that crash logs together in our database.
Also we thinking about adding into Valentina Studo of integration to our Mantis bug tracker, so user can report issue or make a feature request right from vstudio.

[new] VSERVER as HTTP Server + Admin based on Valentina Reports

Few years ago we have added into Valentina Server HTTP port, so it have:

  • normal port
  • SSL port
  • HTTP port
  • SNMP port
We added this HTTP port to be able do the next step — implementing admin built-in right into VServer. So user can access from any browser this admin by HTTP. We see  the following advantages of  this:
  • it is enough install server on you mac/win/linux computer and this admin will be available immediately, without need in Apache/PHP/else.
  • this admin will allow to manage vserver from platforms where not exists VStudio or iValentina. For example Android users will be able manage VServer.
Such admin of vserver we was going implement on C++ of course.
But some time ago we have got idea to use Valentina Reports for this, which could do HTTP generation from report. We have spend some time to make couple of prototypes of this idea. And while we did them, we have already made few improvements in our Reports to support this. The most important  are:

[Imp] VReports few improvements

Thanks to Matthew Gardner, we have made few improvements in Valentina Reports engine:

  • Header section fixed to work with data from cursor.
  • Expression control that produce text, now respect FORMAT field, such as currency or date. For this engine try convert string into a number, and on success apply formatting.
  • System Color Dialog is used now for all places.

[NEW] VStudio + iValentina now sync bookmarks using iCloud

We have made first step to support iCloud technology from Apple.

Now Valentina Studio for MAC OS X (and only one, which is download from MacAppStore) will have iCloud prefs pane, that allows you to specify what to synch in the iCloud. For now this is bookmarks and resent connections to db servers.

Continue reading [NEW] VStudio + iValentina now sync bookmarks using iCloud