picoSQL is an SQL-based, multi-user, client/server RDBMS.
Version: 2.0.4apicoSQL project is the first Italian Open Source relational database management system.
Operating System: Linux
The project of picoSQL was born in 1995. It was an ODBC driver for COBOL indexed files. It consisted of a DLL written in C++ on Windows 3.1 operating system. In the beginning the main effort was made in order to obtain a good compatibity with existing front-end (mainly the MS-Access, MS-Query and VisualBasic) and in order to see COBOL files as a normalized relational DB.
The obtained success concurs to develop ulteriorly the product, refining the query optimizer and implementing an extended SQL, to exclusion of the DDL (Data Description Language). A later version, called PicoDB, were devoloped on UNIX system in client/server architecture.
PicoSql is released under GPL license; it derives from PicoDB (that remains a Picosoft proprietary product) with the addition of some SQL-DDL statement (CREATE/DROP TABLE(INDEX) and excluding COBOL files compatibility). The C/C++ library that allow the database access from C/C++ programs using the ODBC 2.5 API is released under LGPL license; this allows to link the library with programs that are not under GPL.
PicoSQL can be used from Windows applications (like MS-ACCESS, MS-Query, VB etc.) in client/server modality using the ODBC driver picoSQLNet. It can moreover be used from appropriate Java programs through the JDBC driver comprised in the distribution. Finally it can be used from programs written in C and C++ through its set of ODBC 2.5 compliant API.
PicoSQL lacks at the moment of some common characteristics to the most common RDBMS (like the schema and catalogue concepts and the management of the user permissions who can be obtained anyway using the permissions of the host operating system) but they are just these lacks to make it particularly simple to install and to use and fast in the logons and the queries.
The installation is particularly simple: if you have the binary distribution, is sufficient to extract the compressed files in one directory ( under Windows NT/2000/XP) and execute:
PicoSQL consists fundamentally in a program, picosqld, to activate through inetd (or xinetd) or picoserv. In such a way it becomes a net service binded to a port, that is to a entire number comprised between 1 and 65535; this number (as an example 6789) must always be specified on the command line of picosqld. As an example:
For the activation with inetd (or xinetd), you must see the relative documentation. picoserv is a simple program that replaces inetd, mainly for scopes of test or debugging: its usage is the following:
picoserv [-f] commandLine portNumber
In our case the activation of picosqld can be obtained with the following command line:
picoserv "picosqld 6789" 6789
To notice as the port number is specified two times, as an argument of picosqld and as an argument of picoserv.
When picosqld receive a connection request, it reads a configuration file to find the necessary informations. This file is a text file on Unix/Linux systems.
# Unix/Lunixthe file read for configuration is
or, if this file is missing
The file consists of sections and parameters. A section begins with the name of the section in square brackets and continues until the next section begins. Sections contain attributes of the form
The file is line-based - that is, each newline-terminated line represents either a comment, a section name or a parameter. Section and parameter names are not case sensitive. Only the first equals sign in a parameter is significant. Any line beginning with a semicolon (';') or a hash ('#') character is ignored, as are lines containing only whitespace. Each section corresponds to a database and comprises information like user, password and DB location. In the following example there are two database declared, the former called picoSqlTest, is accessible by anyone while the latter, called rubrica is accessible only by user pico giving the appropriate password.
; for picosql client only
What's New in This Release:
· This version fixes a problem on authentication and a bug when the connection fails.