SQL
SQL provides database access to import from and export to Csv files.
To use SQL in greycat, you need to add the sql library and use a specific database module, such as postgres, as follows:
@library("sql");
use postgres;
Postgres
Connect to the database with password authentication:
var db = Postgres::open("127.0.0.1", "5432", "mydb", "username", "password");
The export to Csv, and import, require a CsvFormat object. The CsvFormat object must describe the columns of the table. Using the example from the Postgresq manual:
mydb=> select * from weather ;
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
Hayward | 37 | 54 | | 1994-11-29
(2 rows)
@library("sql");
use postgres;
// for CsvFormat
use io;
// ...
var fmt = CsvFormat {
separator: ',',
columns: [
CsvColumnString {name: "city",},
CsvColumnInteger {name: "temp_lo",},
CsvColumnInteger {name: "temp_hi",},
CsvColumnFloat {name: "prcp", },
CsvColumnDate {name: "date", }, ]
};
db.exportCSV("weather.csv", "weather", fmt);
// ...
The importCSV and exportQueryCSV work in the same way:
@library("sql");
use postgres;
use io;
// ...
var fmt = CsvFormat {
separator: ',',
string_delimiter: '"',
columns: [
CsvColumnString {name: "city",},
]
};
db.exportQueryCSV("cities.csv", "select city from weather", fmt);
// ...