Changeset: e31d01af0f42 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e31d01af0f42
Added Files:
        sql/test/mapi/Tests/php_dec38.SQL.bat
        sql/test/mapi/Tests/php_dec38.SQL.sh
        sql/test/mapi/Tests/php_dec38.php
        sql/test/mapi/Tests/php_dec38.stable.err
        sql/test/mapi/Tests/php_dec38.stable.out
        sql/test/mapi/Tests/php_int128.SQL.bat
        sql/test/mapi/Tests/php_int128.SQL.sh
        sql/test/mapi/Tests/php_int128.php
        sql/test/mapi/Tests/php_int128.stable.err
        sql/test/mapi/Tests/php_int128.stable.out
        sql/test/mapi/Tests/php_int64_dec18.SQL.bat
        sql/test/mapi/Tests/php_int64_dec18.SQL.sh
        sql/test/mapi/Tests/php_int64_dec18.php
        sql/test/mapi/Tests/php_int64_dec18.stable.err
        sql/test/mapi/Tests/php_int64_dec18.stable.out
Modified Files:
        sql/test/mapi/Tests/All
Branch: int128
Log Message:

added BIGINT & HUGEINT tests for php client

seems to work nicely,
except that inserting an hugeint literal
does not (yet) work at all in SQL;

see e.g.,

sql>explain select 123456789012345678909876543210987654321;
+-------------------------------------------------------------------------------------+
| mal                                                                           
      |
+=====================================================================================+
| function user.s4_1{autoCommit=true}(A0:hge):void;                             
      |
|     sql.exportValue(1,".L","single_value","hugeint",128,0,6,A0,"");           
      |
| end s4_1;                                                                     
      |
| # querylog.define("select 
123456789012345678909876543210987654321;","default_pipe") |
| # optimizer.mitosis()                                                         
      |
| # optimizer.dataflow()                                                        
      |
+-------------------------------------------------------------------------------------+
6 tuples (0.610ms)
sql>trace select 123456789012345678909876543210987654321;
+-----------------------------------------+
| single_value                            |
+=========================================+
| 123456789012345678909876543210987654321 |
+-----------------------------------------+
1 tuple (23.335ms)
+-------+-------------------------------------------------------------------------------------------------------------+
| ticks | stmt                                                                  
                                      |
+=======+=============================================================================================================+
|    11 | 
sql.exportValue(1,".L","single_value","hugeint",128,0,6,A0=123000000001037407171000000000020122801:hge,"");
 |
|     2 | end s4_1;                                                             
                                      |
|   559 | function user.s4_1(A0=123000000001037407171000000000020122801:hge);   
                                      |
|   623 | X_5:void  := user.s4_1(123000000001037407171000000000020122801:hge);  
                                      |
+-------+-------------------------------------------------------------------------------------------------------------+
4 tuples (23.384ms)

and

sql>create table x (h hugeint);
operation successful (5.780ms)
sql>explain insert into x values (123456789012345678909876543210987654321);
+-------------------------------------------------------------------------------------------------------------+
| mal                                                                           
                              |
+=============================================================================================================+
| function user.s5_1{autoCommit=true}(A0:hge):void;                             
                              |
|     X_3 := sql.mvc();                                                         
                              |
|     X_4 := sql.append(X_3,"sys","x","h",A0);                                  
                              |
|     sql.affectedRows(X_4,1:wrd,"");                                           
                              |
| end s5_1;                                                                     
                              |
| # querylog.define("explain insert into x values 
(123456789012345678909876543210987654321);","default_pipe") |
+-------------------------------------------------------------------------------------------------------------+
6 tuples (0.650ms)
sql>trace insert into x values (123456789012345678909876543210987654321);
1 affected row (4.519ms)
+-------+----------------------------------------------------------------------------------------+
| ticks | stmt                                                                  
                 |
+=======+========================================================================================+
|     2 | X_3 := sql.mvc();                                                     
                 |
|    46 | X_4 := 
sql.append(X_3=0,"sys","x","h",A0=123000000001037407171000000000020122801:hge); 
|
|     5 | sql.affectedRows(X_4=0,1:wrd,"");                                     
                 |
|     2 | end s5_1;                                                             
                 |
|   381 | function user.s5_1(A0=123000000001037407171000000000020122801:hge);   
                 |
|   456 | X_5:void  := user.s5_1(123000000001037407171000000000020122801:hge);  
                 |
+-------+----------------------------------------------------------------------------------------+
6 tuples (4.531ms)


diffs (truncated from 538 to 300 lines):

diff --git a/sql/test/mapi/Tests/All b/sql/test/mapi/Tests/All
--- a/sql/test/mapi/Tests/All
+++ b/sql/test/mapi/Tests/All
@@ -12,3 +12,6 @@ HAVE_PHP?php_monetdb
 utf8test
 HAVE_PYTHON2?python2_test_monetdb_sql
 HAVE_PYTHON3?python3_test_monetdb_sql
+HAVE_PHP?php_int64_dec18
+HAVE_PHP&HAVE_HGE?php_int128
+HAVE_PHP&HAVE_HGE?php_dec38
diff --git a/sql/test/mapi/Tests/php_dec38.SQL.bat 
b/sql/test/mapi/Tests/php_dec38.SQL.bat
new file mode 100755
--- /dev/null
+++ b/sql/test/mapi/Tests/php_dec38.SQL.bat
@@ -0,0 +1,6 @@
+@echo off
+
+prompt # $t $g  
+echo on
+
+php -n -d "include_path=%PHP_INCPATH%" -f "%TSTSRCDIR%\php_dec38.php" 
%MAPIPORT% %TSTDB%
diff --git a/sql/test/mapi/Tests/php_dec38.SQL.sh 
b/sql/test/mapi/Tests/php_dec38.SQL.sh
new file mode 100755
--- /dev/null
+++ b/sql/test/mapi/Tests/php_dec38.SQL.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+Mlog -x "php -d include_path=$PHP_INCPATH -f $TSTSRCDIR/php_dec38.php 
$MAPIPORT $TSTDB"
diff --git a/sql/test/mapi/Tests/php_dec38.php 
b/sql/test/mapi/Tests/php_dec38.php
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/php_dec38.php
@@ -0,0 +1,30 @@
+<?php
+require 'monetdb/php_monetdb.php';
+
+$db = monetdb_connect("sql", "localhost", $argv[1], "monetdb", "monetdb", 
$argv[2]) or die(monetdb_last_error());
+
+$res = monetdb_query('START TRANSACTION;') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('CREATE TABLE php_dec38 (d0 DECIMAL(38,0), d19 
DECIMAL(38,19));') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('INSERT INTO php_dec38 VALUES 
(12345678901234567899876543210987654321, 
1234567890123456789.9876543210987654321);') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('SELECT * FROM php_dec38;') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('SELECT * FROM php_dec38;') or die(monetdb_last_error());
+$cols = monetdb_num_fields($res);
+for ($i = 0; $i < $cols; $i++) {
+       print(monetdb_field_name($res, $i)."\t");
+}
+print("\n");
+while ($row = @monetdb_fetch_row($res)) {
+       for ($i = 0; $i < $cols; $i++) {
+               print($row[$i]."\t");
+       }
+       print("\n");
+}
+?>
diff --git a/sql/test/mapi/Tests/php_dec38.stable.err 
b/sql/test/mapi/Tests/php_dec38.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/php_dec38.stable.err
@@ -0,0 +1,40 @@
+stderr of test 'php_dec38` in directory 'sql/test/mapi` itself:
+
+
+# 16:20:35 >  
+# 16:20:35 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=35659" "--set" 
"mapi_usock=/var/tmp/mtest-26651/.s.monetdb.35659" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_test_mapi"
 "--set" "mal_listing=0"
+# 16:20:35 >  
+
+# builtin opt  gdk_dbpath = 
/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# builtin opt  monet_prompt = >
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 50000
+# builtin opt  mapi_open = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 35659
+# cmdline opt  mapi_usock = /var/tmp/mtest-26651/.s.monetdb.35659
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbpath = 
/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_test_mapi
+# cmdline opt  mal_listing = 0
+
+# 16:20:35 >  
+# 16:20:35 >  "./php_dec38.SQL.sh" "php_dec38"
+# 16:20:35 >  
+
+
+# 16:20:35 >  
+# 16:20:35 >  php -d 
include_path=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/share/php
 -f 
/net/rome.ins.cwi.nl/export/scratch2/manegold/.rig./scratch0/Monet/HG/int128/source/MonetDB/sql/test/mapi/Tests/php_dec38.php
 35659 mTests_sql_test_mapi
+# 16:20:35 >  
+
+
+# 16:20:35 >  
+# 16:20:35 >  "Done."
+# 16:20:35 >  
+
diff --git a/sql/test/mapi/Tests/php_dec38.stable.out 
b/sql/test/mapi/Tests/php_dec38.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/php_dec38.stable.out
@@ -0,0 +1,72 @@
+stdout of test 'php_dec38` in directory 'sql/test/mapi` itself:
+
+
+# 16:20:35 >  
+# 16:20:35 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=35659" "--set" 
"mapi_usock=/var/tmp/mtest-26651/.s.monetdb.35659" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_test_mapi"
 "--set" "mal_listing=0"
+# 16:20:35 >  
+
+# MonetDB 5 server v11.17.17 "Jan2014-SP2"
+# Serving database 'mTests_sql_test_mapi', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit 
integers dynamically linked
+# Found 15.591 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://rome.ins.cwi.nl:35659/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-26651/.s.monetdb.35659
+# MonetDB/GIS module loaded
+# MonetDB/JAQL module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 11_times.sql
+# loading sql script: 12_url.sql
+# loading sql script: 13_date.sql
+# loading sql script: 14_inet.sql
+# loading sql script: 15_querylog.sql
+# loading sql script: 16_tracelog.sql
+# loading sql script: 17_compress.sql
+# loading sql script: 18_dictionary.sql
+# loading sql script: 19_cluster.sql
+# loading sql script: 20_vacuum.sql
+# loading sql script: 21_dependency_functions.sql
+# loading sql script: 22_clients.sql
+# loading sql script: 23_skyserver.sql
+# loading sql script: 24_zorder.sql
+# loading sql script: 25_debug.sql
+# loading sql script: 26_sysmon.sql
+# loading sql script: 39_analytics.sql
+# loading sql script: 39_analytics_hge.sql
+# loading sql script: 40_geom.sql
+# loading sql script: 46_gsl.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 80_udf_hge.sql
+# loading sql script: 99_system.sql
+
+# 16:20:35 >  
+# 16:20:35 >  "./php_dec38.SQL.sh" "php_dec38"
+# 16:20:35 >  
+
+
+# 16:20:35 >  
+# 16:20:35 >  php -d 
include_path=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/share/php
 -f 
/net/rome.ins.cwi.nl/export/scratch2/manegold/.rig./scratch0/Monet/HG/int128/source/MonetDB/sql/test/mapi/Tests/php_dec38.php
 35659 mTests_sql_test_mapi
+# 16:20:35 >  
+
+
+Array
+(
+    [d0] => 12345678901234567899876543210987654321
+    [d19] => 1234567890123456789.9876543210987654321
+)
+d0     d19     
+12345678901234567899876543210987654321 1234567890123456789.9876543210987654321 
+
+# 16:20:35 >  
+# 16:20:35 >  "Done."
+# 16:20:35 >  
+
diff --git a/sql/test/mapi/Tests/php_int128.SQL.bat 
b/sql/test/mapi/Tests/php_int128.SQL.bat
new file mode 100755
--- /dev/null
+++ b/sql/test/mapi/Tests/php_int128.SQL.bat
@@ -0,0 +1,6 @@
+@echo off
+
+prompt # $t $g  
+echo on
+
+php -n -d "include_path=%PHP_INCPATH%" -f "%TSTSRCDIR%\php_int128.php" 
%MAPIPORT% %TSTDB%
diff --git a/sql/test/mapi/Tests/php_int128.SQL.sh 
b/sql/test/mapi/Tests/php_int128.SQL.sh
new file mode 100755
--- /dev/null
+++ b/sql/test/mapi/Tests/php_int128.SQL.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+Mlog -x "php -d include_path=$PHP_INCPATH -f $TSTSRCDIR/php_int128.php 
$MAPIPORT $TSTDB"
diff --git a/sql/test/mapi/Tests/php_int128.php 
b/sql/test/mapi/Tests/php_int128.php
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/php_int128.php
@@ -0,0 +1,30 @@
+<?php
+require 'monetdb/php_monetdb.php';
+
+$db = monetdb_connect("sql", "localhost", $argv[1], "monetdb", "monetdb", 
$argv[2]) or die(monetdb_last_error());
+
+$res = monetdb_query('START TRANSACTION;') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('CREATE TABLE php_int128 (i HUGEINT);') or 
die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('INSERT INTO php_int128 VALUES 
(123456789012345678909876543210987654321);') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('SELECT * FROM php_int128;') or die(monetdb_last_error());
+while ( $row = monetdb_fetch_assoc($res) ) { print_r($row); }
+
+$res = monetdb_query('SELECT * FROM php_int128;') or die(monetdb_last_error());
+$cols = monetdb_num_fields($res);
+for ($i = 0; $i < $cols; $i++) {
+       print(monetdb_field_name($res, $i)."\t");
+}
+print("\n");
+while ($row = @monetdb_fetch_row($res)) {
+       for ($i = 0; $i < $cols; $i++) {
+               print($row[$i]."\t");
+       }
+       print("\n");
+}
+?>
diff --git a/sql/test/mapi/Tests/php_int128.stable.err 
b/sql/test/mapi/Tests/php_int128.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/php_int128.stable.err
@@ -0,0 +1,40 @@
+stderr of test 'php_int128` in directory 'sql/test/mapi` itself:
+
+
+# 16:20:35 >  
+# 16:20:35 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=35659" "--set" 
"mapi_usock=/var/tmp/mtest-26651/.s.monetdb.35659" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_test_mapi"
 "--set" "mal_listing=0"
+# 16:20:35 >  
+
+# builtin opt  gdk_dbpath = 
/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# builtin opt  monet_prompt = >
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 50000
+# builtin opt  mapi_open = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 35659
+# cmdline opt  mapi_usock = /var/tmp/mtest-26651/.s.monetdb.35659
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbpath = 
/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_test_mapi
+# cmdline opt  mal_listing = 0
+
+# 16:20:35 >  
+# 16:20:35 >  "./php_int128.SQL.sh" "php_int128"
+# 16:20:35 >  
+
+
+# 16:20:35 >  
+# 16:20:35 >  php -d 
include_path=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/share/php
 -f 
/net/rome.ins.cwi.nl/export/scratch2/manegold/.rig./scratch0/Monet/HG/int128/source/MonetDB/sql/test/mapi/Tests/php_int128.php
 35659 mTests_sql_test_mapi
+# 16:20:35 >  
+
+
+# 16:20:35 >  
+# 16:20:35 >  "Done."
+# 16:20:35 >  
+
diff --git a/sql/test/mapi/Tests/php_int128.stable.out 
b/sql/test/mapi/Tests/php_int128.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/php_int128.stable.out
@@ -0,0 +1,71 @@
+stdout of test 'php_int128` in directory 'sql/test/mapi` itself:
+
+
+# 16:20:35 >  
+# 16:20:35 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=35659" "--set" 
"mapi_usock=/var/tmp/mtest-26651/.s.monetdb.35659" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/ufs/manegold/_/Monet/HG/int128/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_test_mapi"
 "--set" "mal_listing=0"
+# 16:20:35 >  
+
+# MonetDB 5 server v11.17.17 "Jan2014-SP2"
+# Serving database 'mTests_sql_test_mapi', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit 
integers dynamically linked
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to