chore: import upstream snapshot with attribution
CI / compile_and_lint (push) Failing after 0s
CI / docker_build (linux/amd64, -linux-amd64-duckdb, duckdb) (push) Failing after 0s
CI / docker_build (linux/arm64, -linux-arm64, minimal) (push) Failing after 2s
CI / docker_build (linux/arm64, -linux-arm64-duckdb, duckdb) (push) Failing after 1s
CI / docker_build (linux/amd64, minimal) (push) Failing after 1s
CI / test (, sqlite, sqlite::memory:) (push) Has been skipped
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been skipped
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been skipped
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / playwright (push) Has been skipped
CI / docker_build (linux/arm/v7, -linux-arm-v7, minimal) (push) Failing after 0s
CI / hurl_examples (push) Failing after 8s
deploy website / deploy_official_site (push) Failing after 1s
CI / hurl (${{ matrix.example }}) (push) Has been skipped
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
CI / windows_test (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:31:57 +08:00
commit d718c5a372
986 changed files with 74597 additions and 0 deletions
@@ -0,0 +1 @@
select 'test' as expected, sqlpage.basic_auth_password() as actual;
@@ -0,0 +1 @@
select 'test' as expected, sqlpage.basic_auth_username() as actual;
@@ -0,0 +1,10 @@
-- https://github.com/sqlpage/SQLPage/issues/818
set success = 'It works !';
set failure = 'You should never see this';
select 'It works !' as expected,
case $success
when $success then $success
when $failure then $failure
end as actual;
+2
View File
@@ -0,0 +1,2 @@
select NULL as expected,
sqlpage.client_ip() as actual;
@@ -0,0 +1 @@
select 'https://example.com' as expected, sqlpage.link(coalesce($i_do_not_exist, 'https://example.com')) as actual;
@@ -0,0 +1,3 @@
select '%2F1' as expected, sqlpage.url_encode('/' || $x) as actual;
select '%2F1' as expected, sqlpage.url_encode(CONCAT('/', $x)) as actual;
select NULL as expected, sqlpage.url_encode(CONCAT('/', $thisisnull)) as actual;
+1
View File
@@ -0,0 +1 @@
select '123' as expected, sqlpage.cookie('test_cook') as actual;
@@ -0,0 +1,6 @@
drop table if exists my_tmp_store;
create table my_tmp_store(x varchar(100));
insert into my_tmp_store(x) values ('It works !');
select 'It works !' as expected, x as actual from my_tmp_store;
+2
View File
@@ -0,0 +1,2 @@
set result = CAST(0.47 AS DECIMAL(3,2));
select '0.47' as expected, $result as actual;
@@ -0,0 +1,6 @@
drop table if exists files_to_read;
create table files_to_read(filepath varchar(100));
insert into files_to_read(filepath) values ('tests/it_works.txt');
select 'It works !' as expected,
sqlpage.read_file_as_text(filepath) as actual
from files_to_read;
@@ -0,0 +1,2 @@
select NULL as expected,
sqlpage.environment_variable('I_DO_NOT_EXIST') as actual;
@@ -0,0 +1,6 @@
set res = sqlpage.fetch('{
"url": "http://localhost:' || $echo_port || '/hello_world",
"response_encoding": "base64"
}');
select 'R0VUIC9oZWxsb193b3Js' as expected_contains,
$res as actual;
+6
View File
@@ -0,0 +1,6 @@
set res = sqlpage.fetch('{
"url": "http://localhost:' || $echo_port || '/hello_world",
"response_encoding": "hex"
}');
select '474554202f68656c6c6f5f776f726c64' as expected_contains,
$res as actual;
@@ -0,0 +1,10 @@
set url = 'http://localhost:' || $echo_port || '/post';
set res = sqlpage.fetch(json_object(
'method', 'POST',
'url', $url,
'headers', json_object('x-custom', '1'),
'body', json_array('hello', 'world')
));
set expected = 'POST /post|accept-encoding: br, gzip, deflate, zstd|content-length: 17|content-type: application/json|host: localhost:' || $echo_port || '|user-agent: sqlpage|x-custom: 1|["hello","world"]';
select $expected as expected,
$res as actual;
+1
View File
@@ -0,0 +1 @@
select null as expected, sqlpage.fetch(null) as actual;
+6
View File
@@ -0,0 +1,6 @@
set url = 'http://localhost:' || $echo_port || '/post';
set fetch_request = '{"method": "POST", "url": "' || $url || '", "headers": {"x-custom": "1"}, "body": {"hello": "world"}}';
set res = sqlpage.fetch($fetch_request);
set expected = 'POST /post|accept-encoding: br, gzip, deflate, zstd|content-length: 18|content-type: application/json|host: localhost:' || $echo_port || '|user-agent: sqlpage|x-custom: 1|{"hello": "world"}';
select $expected as expected,
$res as actual;
@@ -0,0 +1,4 @@
set url = 'http://localhost:' || $echo_port || '/hello_world';
set res = sqlpage.fetch($url);
select 'GET /hello_world' as expected_contains,
$res as actual;
@@ -0,0 +1,3 @@
set res = sqlpage.fetch_with_meta('http://not-a-real-url');
select '"error":"Request failed' as expected_contains, $res as actual;
@@ -0,0 +1 @@
select null as expected, sqlpage.fetch_with_meta(null) as actual;
@@ -0,0 +1,14 @@
set url = 'http://localhost:' || $echo_port || '/hello_world';
set fetch_req = '{
"method": "PUT",
"url": "' || $url || '",
"headers": {
"user-agent": "myself"
}
}';
set res = sqlpage.fetch_with_meta($fetch_req);
select '"status":200' as expected_contains,
'"headers":{' as expected_contains,
'"body":"' as expected_contains,
$res as actual;
@@ -0,0 +1,2 @@
select '$argon2id$' as expected_contains,
coalesce(sqlpage.hash_password($x), 'NULL') as actual;
@@ -0,0 +1 @@
select NULL as expected, sqlpage.hash_password(null) as actual;
+1
View File
@@ -0,0 +1 @@
select 'test_cook=123' as expected, sqlpage.header('cookie') as actual;
+1
View File
@@ -0,0 +1 @@
select '"cookie":"test_cook=123"' as expected_contains, sqlpage.headers() as actual;
@@ -0,0 +1,2 @@
select '97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=' as expected,
sqlpage.hmac('The quick brown fox jumps over the lazy dog', 'key', 'sha256-base64') as actual;
@@ -0,0 +1,2 @@
select sqlpage.hmac('test data', 'test key', 'sha256') as expected,
sqlpage.hmac('test data', 'test key') as actual;
@@ -0,0 +1,2 @@
select 'f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8' as expected,
sqlpage.hmac('The quick brown fox jumps over the lazy dog', 'key', 'sha256') as actual;
@@ -0,0 +1,2 @@
select 'b42af09057bac1e2d41708e48a902e09b5ff7f12ab428a4fe86653c73dd248fb82f948a549f7b791a5b41915ee4d1ec3935357e4e2317250d0372afa2ebeeb3a' as expected,
sqlpage.hmac('The quick brown fox jumps over the lazy dog', 'key', 'sha512') as actual;
@@ -0,0 +1,7 @@
-- Test Shopify webhook HMAC validation with base64 output
select 'QNyObTlKbMx2qDlPF/ZOZcBqg5OgPg+2oky3zldc0Gw=' as expected,
sqlpage.hmac(
'{"id":1234567890,"email":"customer@example.com","total_price":"123.45"}',
'test-webhook-secret',
'sha256-base64'
) as actual;
@@ -0,0 +1,10 @@
set x = 'set_value';
set set_only = 'only_in_set';
select 'set_value' as expected, $x as actual;
select 'only_in_set' as expected, $set_only as actual;
select '{"x":"1"}' as expected, sqlpage.variables('get') as actual;
select '"x":"set_value"' as expected_contains, sqlpage.variables('set') as actual;
select '"set_only":"only_in_set"' as expected_contains, sqlpage.variables('set') as actual;
select '"x":"set_value"' as expected_contains, sqlpage.variables() as actual;
select '"set_only":"only_in_set"' as expected_contains, sqlpage.variables() as actual;
+1
View File
@@ -0,0 +1 @@
select 'test.sql?x=123' as expected, sqlpage.link('test.sql', json_object('x', 123)) as actual;
+1
View File
@@ -0,0 +1 @@
select 'test.sql' as expected, sqlpage.link('test.sql', json_object('x', null)) as actual;
+4
View File
@@ -0,0 +1,4 @@
-- in SQLite, we provide our own unicode-aware lower function
-- see https://github.com/sqlpage/SQLPage/issues/452
select 'It works !' as expected,
coalesce(lower(NULL), 'It works !') as actual;
@@ -0,0 +1 @@
select 'It%20works%20%21' as expected, sqlpage.url_encode(sqlpage.read_file_as_text('tests/it_works.txt')) as actual;
+2
View File
@@ -0,0 +1,2 @@
select '/tests/sql_test_files/data/path.sql' as expected,
sqlpage.path() as actual;
@@ -0,0 +1 @@
select 2 as expected, $x::decimal + 1 as actual;
+2
View File
@@ -0,0 +1,2 @@
select 'http' as expected,
sqlpage.protocol() as actual;
@@ -0,0 +1 @@
select '?x=1' as expected, sqlpage.link('', sqlpage.variables('get')) as actual;
@@ -0,0 +1 @@
select '' as expected, sqlpage.random_string(0) as actual;
@@ -0,0 +1,3 @@
set actual = sqlpage.read_file_as_data_url('tests/it_works.txt');
select 'data:text/plain;base64,SXQgd29ya3MgIQ==' as expected,
coalesce($actual, 'NULL') as actual;
@@ -0,0 +1,2 @@
select 'It works !' as expected,
sqlpage.read_file_as_text('tests/it_works.txt') as actual;
@@ -0,0 +1,8 @@
set route = sqlpage.regex_match(
'/categories/(?<category>[A-Za-z0-9_]+)/post/(?<id>[0-9]+)',
'/categories/sql/post/42'
);
select
'{"0":"/categories/sql/post/42","category":"sql","id":"42"}' as expected,
$route as actual;
@@ -0,0 +1,3 @@
set actual = sqlpage.request_method();
select 'GET' as expected,
coalesce($actual, 'NULL') as actual;
+2
View File
@@ -0,0 +1,2 @@
set msg = case when 1=1 then 'It works !' else 'It failed !' end;
select 'It works !' as expected, $msg as actual;
@@ -0,0 +1,3 @@
set what_does_it_do = 'wo' || 'rks';
select 'It works !' as expected,
'It ' || $what_does_it_do || ' !' as actual;
@@ -0,0 +1,2 @@
set result = sqlpage.set_variable('y', '2');
select '?x=1&y=2' as expected, $result as actual;
@@ -0,0 +1,2 @@
set result = sqlpage.set_variable('x', null);
select '?' as expected, $result as actual;
@@ -0,0 +1,2 @@
set result = sqlpage.set_variable('x', '2');
select '?x=2' as expected, $result as actual;
@@ -0,0 +1,2 @@
SET result = 123456789123456789123456789;
select '123456789123456789123456789' as expected, $result as actual;
@@ -0,0 +1,3 @@
set two = 2;
select '2' as expected,
$two as actual;
@@ -0,0 +1,3 @@
set i_am_null = NULL;
select NULL as expected,
$i_am_null as actual;
@@ -0,0 +1,2 @@
set x = NULL;
select NULL as expected, $x as actual;
@@ -0,0 +1,4 @@
SET x = 42;
SET y = $x;
SET z = $y;
select '42' as expected, $z as actual;
@@ -0,0 +1,3 @@
set my_var = sqlpage.url_encode(' ');
select '%20' as expected,
$my_var as actual;
@@ -0,0 +1,3 @@
set my_var = sqlpage.url_encode(UPPER('a'));
select 'A' as expected,
$my_var as actual;
@@ -0,0 +1,3 @@
-- Checks that the UPPER function is working correctly with unicode characters.
select 'É' as expected,
UPPER('é') as actual;
+2
View File
@@ -0,0 +1,2 @@
set result = sqrt(9.0);
select CAST(3.0 AS FLOAT) as expected, cast($result as FLOAT) as actual;
@@ -0,0 +1,2 @@
set actual = sqlpage.uploaded_file_path('my_file');
select null as expected, $actual as actual;
+2
View File
@@ -0,0 +1,2 @@
select '%2F' as expected,
sqlpage.url_encode('/') as actual;
@@ -0,0 +1,4 @@
-- syntax is valid in SQLite, PostgreSQL and SQLServer
-- no cast as varchar in MySQL
select 'It works !' as expected,
CAST('It works !' as varchar(100)) as actual;
@@ -0,0 +1,2 @@
select '{"x":"1"}' as expected,
sqlpage.variables('get') as actual;
@@ -0,0 +1,2 @@
select '{"x":"1"}' as expected,
sqlpage.variables() as actual;
@@ -0,0 +1,2 @@
set x = '2';
select '{"x":"2"}' as expected, sqlpage.variables() as actual;
@@ -0,0 +1 @@
select '{}' as expected, sqlpage.variables('post') as actual;