SQLPage built-in functions

In addition to normal SQL functions supported by your database, SQLPage provides a few special functions to help you extract data from user requests.

These functions are special, because they are not executed inside your database, but by SQLPage itself before sending the query to your database. Thus, they require all the parameters to be known at the time the query is sent to your database. Function parameters cannot reference columns from the rest of your query. The only case when you can call a SQLPage function with a parameter that is not a constant is when it appears at the top level of a SELECT statement. For example, SELECT sqlpage.url_encode(url) FROM t is allowed because SQLPage can execute SELECT url FROM t and then apply the url_encode function to each value.

The sqlpage.read_file_as_data_url function

Introduced in SQLPage 0.17.0.

Returns a data URL containing the contents of the given file.

The file path is relative to the web root directory, which is the directory from which your website is served (not necessarily the directory SQLPage is launched from).

If the given argument is null, the function will return null.

As with other functions, if an error occurs during execution (because the file does not exist, for instance), the function will display an error message and the database query will not be executed.

If you are using a sqlpage_files table to store files directly in the database (serverless mode), the function will attempt to read the file from the database filesystem if it is not found on the local disk, using the same logic as for serving files in response to HTTP requests.

MIME type

Data URLs contain the MIME type of the file they represent. If the first argument to this function is the result of a call to the sqlpage.uploaded_file_path function, the declared MIME type of the uploaded file transmitted by the browser will be used.

Otherwise, the MIME type will be guessed from the file extension, without looking at the file contents.

Example: inlining a picture

select 'card' as component;
select 'Picture' as title, sqlpage.read_file_as_data_url('/path/to/picture.jpg') as top_image;

Note: Data URLs are larger than the original file they represent, so they should only be used for small files (under a few hundred kilobytes). Otherwise, the page will take a long time to load.

Parameters

name

Path to the file to read.