SQL-SimpleOps v2023.362.1 Perl 5 v5.16.3 darwin-thread-multi-2level

Status
Pass
From
David Cantrell (DCANTRELL)
Dist
SQL-SimpleOps v2023.362.1
Platform
Perl 5 v5.16.3 darwin-thread-multi-2level
Date
2023-12-29 23:03:50
ID
87b5680c-a69e-11ee-817f-687fa35cf7fe
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Carlos Celso de Almeida,

This is a computer-generated report for SQL-SimpleOps-2023.362.1
on perl 5.16.3, created by CPAN-Reporter-1.2019.

Thank you for uploading your work to CPAN.  Congratulations!
All tests were successful.

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/Users/cpantesting/cpantesting/perl-5.16.3/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# No type of test found
# See text README before doing any test
t/testDB.t ..... ok
t/testFirst.t .. ok
# STAGE1 - STAGE1 - STAGE1
# ################################################################
# test-S0700-1: Delete( table => "tab_noalias", force => 1 )
# returns.: DELETE FROM tab_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S0701-1: Delete( table => "tab_alias1", force => 1 )
# returns.: DELETE FROM tab_real1
# status..: SUCCESSFUL
# ################################################################
# test-S0702-1: Delete( table => "tab_real1", force => 1 )
# returns.: DELETE FROM tab_real1
# status..: SUCCESSFUL
# ################################################################
# test-S0710-1: Delete( table => "tab_alias1", force => 1 )
# returns.: DELETE FROM tab_noalias1
# status..: SUCCESSFUL
# ################################################################
# test-S0711-1: Delete( table => "tab_alias1", force => 1 )
# returns.: DELETE FROM tab_real1
# status..: SUCCESSFUL
# ################################################################
# test-S0600-1: Insert( table => "tab_noalias", fields => { "fld_alias1" => "value1" } )
# returns.: INSERT INTO tab_noalias (fld_alias1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0601-1: Insert( table => "tab_noalias", fields => [ "fld_alias1" ], values => [ "value1" ]
# returns.: INSERT INTO tab_noalias (fld_alias1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0602-1: Insert( table => "tab_noalias", fields => { "fld_alias1" => "value1", "fld_alias2" => "value2" } )
# returns.: INSERT INTO tab_noalias (fld_alias1,fld_alias2) VALUES ('value1','value2')
# status..: SUCCESSFUL
# ################################################################
# test-S0603-1: Insert( table => "tab_noalias", fields => [ "fld_alias1","fld_alias2" ], values => [ "value1","value2" ] )
# returns.: INSERT INTO tab_noalias (fld_alias1,fld_alias2) VALUES ('value1','value2')
# status..: SUCCESSFUL
# ################################################################
# test-S0604-1: Insert( table => "tab_noalias", fields => [ "fld_alias1" ], values => [ "value1","value2" ] )
# returns.: INSERT INTO tab_noalias (fld_alias1) VALUES ('value1'),('value2')
# status..: SUCCESSFUL
# ################################################################
# test-S0605-1: Insert( table => "tab_noalias", fields => [ "tab_noalias.fld_alias1" ], values => [ "value1" ] )
# returns.: INSERT INTO tab_noalias (fld_alias1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0607-1: Insert( table => "tab_noalias", fields => [ "bad_table.fld_alias1" ], values => [ "value1" ] )
# returns.: INSERT INTO tab_noalias (bad_table.fld_alias1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0608-1: Insert( table => "tab_alias1", fields => { "fld_alias1" => "value1" } )
# returns.: INSERT INTO tab_real1 (fld_real1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0609-1: Insert( table => "tab_real1", fields => { "fld_alias1" => "value1" } )
# returns.: INSERT INTO tab_real1 (fld_real1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0610-1: Insert( table => "tab_alias1", fields => { "tab_alias1.fld_alias1" => "value1" } )
# returns.: INSERT INTO tab_real1 (fld_real1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0611-1: Insert( table => "tab_real1", fields => { "tab_real1.fld_alias1" => "value1" } )
# returns.: INSERT INTO tab_real1 (fld_real1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0612-1: Insert( table => "tab_alias1", fields => { "tab_alias1.fld_real1" => "value1" } )
# returns.: INSERT INTO tab_real1 (fld_real1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0613-1: Insert( table => "tab_real1", fields => { "tab_real1.fld_alias1" => "value1" } )
# returns.: INSERT INTO tab_real1 (fld_real1) VALUES ('value1')
# status..: SUCCESSFUL
# ################################################################
# test-S0800-1: Update( table => "tab_noalias", fields => { "fld_alias1" => "value1" }, force => 1
# returns.: UPDATE tab_noalias SET fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0802-1: Update( table => "tab_noalias", fields => { "fld_alias1" => "value1", "fld_alias2" => "value2" }, force => 1 )
# returns.: UPDATE tab_noalias SET fld_alias1 = 'value1', fld_alias2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0803-1: Update( table => "tab_alias1", fields => { "fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0804-1: Update( table => "tab_real1", fields => { "fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0805-1: Update( table => "tab_alias1", fields => { "fld_alias1" => "value1", "fld_alias2" => "value2", }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value1', fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0806-1: Update( table => "tab_real1", fields => { "fld_alias1" => "value1", "fld_alias2" => "value2", }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value1', fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0810-1: Update( table => "tab_alias1", fields => { "fld_noalias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_noalias = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0811-1: Update( table => "tab_real1", fields => { "fld_noalias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_noalias = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0812-1: Update( table => "tab_noalias", fields => { "tab_noalias.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_noalias SET fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0813-1: Update( table => "tab_noalias", fields => { "tab_noalias.fld_alias1" => "value1", "tab_noalias.fld_alias2" => "value2" }, force => 1 )
# returns.: UPDATE tab_noalias SET fld_alias1 = 'value1', fld_alias2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0814-1: Update( table => "tab_alias1", fields => { "tab_alias1.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0815-1: Update( table => "tab_real1", fields => { "tab_real1.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0816-1: Update( table => "tab_alias1", fields => { "tab_alias1.fld_noalias" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_noalias = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0817-1: Update( table => "tab_real1", fields => { "tab_real1.fld_noalias" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 SET fld_noalias = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0818-1: Update( table => "tab_alias1", fields => { "bad_alias1.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1 SET bad_alias1.fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0819-1: Update( table => "tab_real1", fields => { "bad_alias1.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1 SET bad_alias1.fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0820-1: Update( table => ["tab_noalias1","tab_noalias2"], fields => { "tab_noalias1.fld_alias1" => "value1", "tab_noalias2.fld_alias2" => "value2", }, force => 1 )
# returns.: UPDATE tab_noalias1, tab_noalias2 SET tab_noalias1.fld_alias1 = 'value1', tab_noalias2.fld_alias2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0821-1: Update( table => ["tab_alias1","tab_noalias2"], fields => { "bad_alias1.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_noalias2 SET bad_alias1.fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0822-1: Update( table => ["tab_alias1","tab_alias2"], fields => { "tab_alias1.fld_alias1" => "value1", "tab_real2.fld_alias2" => "value2" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET tab_alias1.fld_real1 = 'value1', tab_alias2.fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0823-1: Update( table => ["tab_alias1","tab_real2"], fields => { "tab_alias1.fld_alias1" => "value1", "tab_alias2.fld_alias2" => "value2" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET tab_alias1.fld_real1 = 'value1', tab_alias2.fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0824-1: Update( table => ["tab_alias1","tab_alias2"], fields => { "tab_alias1.fld_alias1" => "value1", "tab_real2.fld_alias2" => "value2" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET tab_alias1.fld_real1 = 'value1', tab_alias2.fld_noalias = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0825-1: Update( table => ["tab_alias1","tab_real2"], fields => { "tab_alias1.fld_alias1" => "value1", "tab_alias2.fld_alias2" => "value2" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET tab_alias1.fld_real1 = 'value1', tab_alias2.fld_noalias = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0826-1: Update( table => ["tab_alias1","tab_real2"], fields => { "bad_alias.fld_alias1" => "value1" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET bad_alias.fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S0827-1: Update( table => ["tab_alias1","tab_real2"], fields => { "bad_alias.fld_alias1" => "value1", "tab_alias1.fld_alias1" => "value2" }, force => 1 )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET bad_alias.fld_alias1 = 'value1', tab_alias1.fld_real1 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S0900-1: Select( table => "tab_noalias", fields => "fld_alias1" )
# returns.: SELECT fld_alias1 FROM tab_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S0901-1: Select( table => "tab_noalias", fields => [ "fld_alias1" ] )
# returns.: SELECT fld_alias1 FROM tab_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S0902-1: Select( table => "tab_alias1", fields => "fld_alias1" )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0903-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0904-1: Select( table => "tab_alias1", fields => "fld_alias1" )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0905-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0906-1: Select( table => "tab_alias1", fields => [ "fld_real1" ] )
# returns.: SELECT fld_real1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0907-1: Select( table => "tab_real1", fields => [ "fld_real1" ] )
# returns.: SELECT fld_real1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0908-1: Select( table => "tab_alias1", fields => [ "fld_noalias" ] )
# returns.: SELECT fld_noalias FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0909-1: Select( table => "tab_real1", fields => [ "fld_noalias" ] )
# returns.: SELECT fld_noalias FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0910-1: Select( table => "tab_noalias", fields => "tab_noalias.fld_alias1" )
# returns.: SELECT tab_noalias.fld_alias1 FROM tab_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S0911-1: Select( table => "tab_alias1", fields => [ "tab_alias1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0912-1: Select( table => "tab_alias1", fields => [ "tab_real1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0913-1: Select( table => "tab_real1", fields => [ "tab_alias1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0914-1: Select( table => "tab_real1", fields => [ "tab_real1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S0915-1: Select( table => "tab_real1", fields => [ "bad_alias1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0916-1: Select( table => "tab_real1", fields => [ "bad_real1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0917-1: Select( table => "tab_noalias", fields => [ "bad_alias1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0918-1: Select( table => "tab_noalias", fields => [ "bad_real1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0919-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => "fld_alias1"
# returns.: SELECT fld_alias1 FROM tab_noalias1, tab_noalias2
# status..: SUCCESSFUL
# ################################################################
# test-S0920-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ "fld_alias1" ] )
# returns.: SELECT fld_alias1 FROM tab_noalias1, tab_noalias2
# status..: SUCCESSFUL
# ################################################################
# test-S0921-1: Select( table => ["tab_alias1","tab_alias2"], fields => "fld_alias1" )
# note....: The fld_alias1 defined in both tables, cannot translate, use: [table].[field]
# returns.: SELECT fld_alias1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0922-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "fld_real1" ] )
# returns.: SELECT fld_real1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0923-1: Select( table => ["tab_real1","tab_real2"], fields => "fld_alias1" )
# note....: The fld_alias1 defined in both tables, cannot translate, use: [table].[field]
# returns.: SELECT fld_alias1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0924-1: Select( table => ["tab_real1","tab_real2"], fields => [ "fld_real1" ] )
# returns.: SELECT fld_real1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0925-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "fld_noalias" ] )
# returns.: SELECT fld_noalias FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0926-1: Select( table => "tab_real1", fields => [ "fld_noalias" ] )
# returns.: SELECT fld_noalias FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0927-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => "tab_noalias.fld_alias1 )
# msg.....: 010E [select] Field 'tab_noalias.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0928-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0929-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_real1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0930-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0931-1: Select( table => ["tab_real1","tab_real2"], fields => [ "tab_real1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S0932-1: Select( table => ["tab_real1","tab_real2"], fields => [ "bad_alias1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0933-1: Select( table => ["tab_real1","tab_real2"], fields => [ "bad_real1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0934-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ "bad_alias1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S0935-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ "bad_real1.fld_alias1" ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1000-1: Select( table => "tab_noalias", fields => [ {"fld_alias1"=>"my1"} ] )
# returns.: SELECT fld_alias1 my1 FROM tab_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S1001-1: Select( table => "tab_alias1", fields => [ {"fld_alias1"=>"my1"} ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1002-1: Select( table => "tab_real1", fields => [ {"fld_alias1"=>"my1"} ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1003-1: Select( table => "tab_alias1", fields => [ {"fld_real1"=>"my1"} ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1004-1: Select( table => "tab_real1", fields => [ {"fld_real1"=>"my1"} ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1005-1: Select( table => "tab_alias1", fields => [ {"fld_noalias"=>"my1} ] )
# returns.: SELECT fld_noalias my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1006-1: Select( table => "tab_real1", fields => [ {"fld_noalias"=>"my1"} ] )
# returns.: SELECT fld_noalias my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1007-1: Select( table => "tab_alias1", fields => [ {"tab_alias1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1008-1: Select( table => "tab_alias1", fields => [ {"tab_real1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1009-1: Select( table => "tab_real1", fields => [ {"tab_alias1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1010-1: Select( table => "tab_real1", fields => [ {"tab_real1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1011-1: Select( table => "tab_real1", fields => [ {"bad_alias1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1012-1: Select( table => "tab_real1", fields => [ {"bad_real1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1013-1: Select( table => "tab_noalias", fields => [ {"bad_alias1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1014-1: Select( table => "tab_noalias", fields => [ {"bad_real1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1015-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ {"fld_alias1"=>"my1"} ] )
# returns.: SELECT fld_alias1 my1 FROM tab_noalias1, tab_noalias2
# status..: SUCCESSFUL
# ################################################################
# test-S1016-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"fld_real1"=>"my1"} ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1017-1: Select( table => ["tab_real1","tab_real2"], fields => [ {"fld_real1"=>"my1"} ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1018-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"fld_noalias"=>"my1"} ] )
# returns.: SELECT fld_noalias my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1019-1: Select( table => "tab_real1", fields => [ {"fld_noalias"=>"my1"} ] )
# returns.: SELECT fld_noalias my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1020-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1021-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_real1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1022-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1023-1: Select( table => ["tab_real1","tab_real2"], fields => [ {"tab_real1.fld_alias1"=>"my1"} ] )
# returns.: SELECT tab_alias1.fld_real1 my1 FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1024-1: Select( table => ["tab_real1","tab_real2"], fields => [ {"bad_alias1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1025-1: Select( table => ["tab_real1","tab_real2"], fields => [ {"bad_real1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1026-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ {"bad_alias1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_alias1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1027-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ {"bad_real1.fld_alias1"=>"my1"} ] )
# msg.....: 010E [select] Field 'bad_real1.fld_alias1' not mapped in table list
# note....: *** no SQL command returns -- invalid arguments ***
# status..: SUCCESSFUL
# ################################################################
# test-S1028-1: Select( table => "tab_noalias1" )
# returns.: SELECT * FROM tab_noalias1
# status..: SUCCESSFUL
# ################################################################
# test-S1029-1: Select( table => "tab_alias1" )
# returns.: SELECT fld_real1 fld_alias1, fld_real2 fld_alias2, fld_realX fld_aliasX FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1030-1: Select( table => "tab_real1" )
# returns.: SELECT fld_real1 fld_alias1, fld_real2 fld_alias2, fld_realX fld_aliasX FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1031-1: Select( table => "tab_alias1", fields => "*" )
# returns.: SELECT * FROM tab_real1 tab_alias1
# status..: SUCCESSFUL
# ################################################################
# test-S1032-1: Select( table => ["tab_alias1","tab_alias2"], fields => "*" )
# returns.: SELECT * FROM tab_real1 tab_alias1, tab_real2 tab_alias2
# status..: SUCCESSFUL
# ################################################################
# test-S1032-1: Select( table => ["tab_alias1","tab_noalias"], fields => "*" )
# returns.: SELECT * FROM tab_real1 tab_alias1, tab_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S1033-1: Select( table => ["tab_noalias1","tab_noalias2"] )
# returns.: SELECT * FROM tab_noalias1, tab_noalias2
# status..: SUCCESSFUL
# ################################################################
# test-S1400-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "fld_alias1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1401-1: Select( table => "tab_alias1", fields => [ "fld_real1" ], group_by => [ "fld_real1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1402-1: Select( table => "tab_alias1", fields => [ "fld_real1" ], group_by => [ "fld_noalias" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY fld_noalias
# status..: SUCCESSFUL
# ################################################################
# test-S1403-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "fld_alias1","fld_alias2" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY fld_real1, fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1404-1: Select( table => "tab_alias1", fields => [ "fld_real1" ], group_by => [ "fld_real1","fld_real2" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY fld_real1, fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1405-1: Select( table => "tab_alias1", fields => [ "fld_real1" ], group_by => [ "fld_noalias1","fld_noalias2" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY fld_noalias1, fld_noalias2
# status..: SUCCESSFUL
# ################################################################
# test-S1406-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "tab_alias1.fld_alias1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY tab_alias1.fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1407-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "tab_alias1.fld_real1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY tab_alias1.fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1408-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "tab_real1.fld_alias1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY tab_alias1.fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1409-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "tab_real1.fld_real1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY tab_alias1.fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1410-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], group_by => [ "tab_real1.fld_noalias1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 GROUP BY tab_alias1.fld_noalias1
# status..: SUCCESSFUL
# ################################################################
# test-S1411-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "fld_alias1","fld_alias2" ], group_by => [ "tab_real1.fld_alias1","tab_real2.fld_alias2" ] )
# note....: The fld_alias1 & fld_alias2 defined in both tables, cannot translate, use: [table].[field]
# returns.: SELECT fld_alias1, fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 GROUP BY tab_alias1.fld_real1, tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1412-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "fld_alias1","fld_alias2" ], group_by => [ "tab_real1.fld_real1","tab_real2.fld_real2" ] )
# note....: The fld_alias1 & fld_alias2 defined in both tables, cannot translate, use: [table].[field]
# returns.: SELECT fld_alias1, fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 GROUP BY tab_alias1.fld_real1, tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1413-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "fld_alias1","fld_alias2" ], group_by => [ "tab_real1.fld_noalias1","tab_real2.fld_noalias2" ] )
# note....: The fld_alias1 & fld_alias2 defined in both tables, cannot translate, use: [table].[field]
# returns.: SELECT fld_alias1, fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 GROUP BY tab_alias1.fld_noalias1, tab_alias2.fld_noalias2
# status..: SUCCESSFUL
# ################################################################
# test-S1414-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"fld_alias1"=>"my1"},{"fld_alias2"->"my2"} ], group_by => [ "tab_alias1.my1","tab_alias1.my2" ] )
# warning.: translate the table name 'tab_real1' but 'my2' is not assigned in same table -- DOT NOT USE
# returns.: SELECT fld_alias1 my1, fld_alias2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 GROUP BY tab_alias1.my1, tab_alias1.my2
# status..: SUCCESSFUL
# ################################################################
# test-S1500-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"fld_alias1"=>"asc"} ] )
# note....: lower case is supported
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY fld_real1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1501-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"fld_alias1"=>"ASC"} ] )
# note....: upper case is supported
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY fld_real1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1502-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"fld_alias1"=>"AsC"} ] )
# note....: mixed case is supported
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY fld_real1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1503-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"fld_real1"=>"asc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY fld_real1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1504-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"fld_noalias1"=>"asc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY fld_noalias1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1505-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"fld_alias1"=>"desc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY fld_real1 DESC
# status..: SUCCESSFUL
# ################################################################
# test-S1506-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_alias1.fld_real1"=>"asc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_alias1.fld_real1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1507-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_real1.fld_real1"=>"desc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_alias1.fld_real1 DESC
# status..: SUCCESSFUL
# ################################################################
# test-S1508-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_alias1.fld_real1"=>"desc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_alias1.fld_real1 DESC
# status..: SUCCESSFUL
# ################################################################
# test-S1509-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_real1.fld_alias1"=>"desc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_alias1.fld_real1 DESC
# status..: SUCCESSFUL
# ################################################################
# test-S1510-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_noalias.fld_noalias1"=>"asc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_noalias.fld_noalias1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1511-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_noalias.fld_alias1"=>"asc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_noalias.fld_alias1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1512-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], order_by => [ {"tab_noalias.fld_real1"=>"asc"} ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 ORDER BY tab_noalias.fld_real1 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1513-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1","tab_alias2.fld_alias2" ], order_by => [ {"tab_alias1.fld_alias1"=>"asc"},{"tab_alias2.fld_alias2"=>"asc"} ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 ORDER BY tab_alias1.fld_real1 ASC, tab_alias2.fld_real2 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1514-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1","tab_alias2.fld_alias2" ], order_by => [ {"tab_real1.fld_alias1"=>"asc"},{"tab_real2.fld_alias2"=>"asc"} ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 ORDER BY tab_alias1.fld_real1 ASC, tab_alias2.fld_real2 ASC
# status..: SUCCESSFUL
# ################################################################
# test-S1515-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1","tab_alias2.fld_alias2" ], order_by => [ "tab_real1.fld_alias1","tab_real2.fld_alias2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 ORDER BY tab_alias1.fld_real1, tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1516-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1","tab_alias2.fld_alias2" ], order_by => "tab_real1.fld_alias1" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 ORDER BY tab_alias1.fld_real1
# status..: SUCCESSFUL
# ################################################################
# test-S1517-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1","tab_alias2.fld_alias2" ], order_by => {"tab_real1.fld_alias1"=>"desc"} )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 ORDER BY tab_alias1.fld_real1 DESC
# status..: SUCCESSFUL
# ################################################################
# test-S0270-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_NEXT, limit=>100 )
# note....: Command=NEXT, Cursor is first(1) and last(100)
# returns.: SELECT a, b, c FROM t1 WHERE a > '100' ORDER BY a ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0280-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_BACK, limit=>100 )
# note....: Command=BACK, Cursor is first(101) and last(200)
# returns.: SELECT a, b, c FROM t1 WHERE a < '101' ORDER BY a DESC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0290-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_RELOAD, limit=>100 )
# note....: Command=RELOAD, Cursor is first(1) and last(100)
# returns.: SELECT a, b, c FROM t1 WHERE a >= '1' ORDER BY a ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0300-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_LAST, limit=>100 )
# note....: Command=LAST, Cursor is first(1) and last(100)
# returns.: SELECT a, b, c FROM t1 ORDER BY a DESC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0310-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_TOP, limit=>0 )
# note....: Command=TOP, Limit is ZERO
# returns.: SELECT a, b, c FROM t1 ORDER BY a ASC
# status..: SUCCESSFUL
# ################################################################
# test-S0311-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100 )
# note....: Option cursor_command is omited, curso_info was ignored
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 ORDER BY t1.a ASC, t2.c ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0312-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100, cursor_command=>SQL_SIMPLE_CURSOR_TOP )
# note....: The cursor_info was ignored
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 ORDER BY t1.a ASC, t2.c ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0313-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100, cursor_command=>SQL_SIMPLE_CURSOR_NEXT )
# note....: 
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 WHERE (t1.a > 'a' OR (t1.a = 'a' AND t2.c > '100')) ORDER BY t1.a ASC, t2.c ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0314-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100, cursor_command=>SQL_SIMPLE_CURSOR_BACK 
# note....: 
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 WHERE (t1.a < 'a' OR (t1.a = 'a' AND t2.c < '1')) ORDER BY t1.a DESC, t2.c DESC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0315-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100, cursor_command=>SQL_SIMPLE_CURSOR_LAST )
# note....: 
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 ORDER BY t1.a DESC, t2.c DESC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0316-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100, cursor_command=>SQL_SIMPLE_CURSOR_RELOAD
# note....: 
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 WHERE (t1.a >= 'a' OR (t1.a = 'a' AND t2.c >= '1')) ORDER BY t1.a ASC, t2.c ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0317-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], where => ["t1.a" => "\t2.a"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], limit=>100 )
# note....: Cursor command is omitted, cursor_info was ignored
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 WHERE t1.a = t2.a ORDER BY t1.a ASC, t2.c ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0318-1: SelectCursor( table=>["t1","t2"], fields => [ "t1.a","t1.b","t2.c"], where => ["t1.a" => "\t2.a"], cursor_info => \%cursor, cursor_key=>["t1.a","t2.c"], cursor_command=>SQL_SIMPLE_CURSOR_RELOAD, limit=>100 )
# note....: 
# returns.: SELECT t1.a, t1.b, t2.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.a >= 'a' OR (t1.a = 'a' AND t2.c >= '1')) ORDER BY t1.a ASC, t2.c ASC LIMIT 100
# status..: SUCCESSFUL
Reference found where even-sized list expected at t/testSQL.t line 2453.
# ################################################################
# test-S0330-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_TOP, limit=>100 )
# note....: Command=TOP, Cursor is empty
# returns.: SELECT a, b, c FROM t1 ORDER BY a ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0331-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", limit=>100 )
# note....: Command=TOP, Cursor is empty
# returns.: SELECT a, b, c FROM t1 ORDER BY a ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0332-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_NEXT, limit=>100 )
# note....: Command=NEXT, Cursor is empty
# returns.: SELECT a, b, c FROM t1 ORDER BY a ASC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S0333-1: SelectCursor( table=>"t1", fields => [ "a","b","c"], cursor_info => \%cursor , cursor_key=>"a", cursor_command=>SQL_SIMPLE_CURSOR_BACK, limit=>100 )
# note....: Command=BACK, Cursor is empty
# returns.: SELECT a, b, c FROM t1 ORDER BY a DESC LIMIT 100
# status..: SUCCESSFUL
# ################################################################
# test-S1600-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => \$mymod->SelectSubQuery( table => "ta_alias2", fields => [ "fld_alias2" ], where => [ "fld_alias2" => "value2" ] ) } )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 IN (SELECT fld_real2 fld_alias2 FROM tab_real2 tab_alias2 WHERE fld_real2 = 'value2')
# status..: SUCCESSFUL
# ################################################################
# test-S1601-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => [ "!", \$mymod->SelectSubQuery( table => "ta_alias2", fields => [ "fld_alias2" ], where => [ "fld_alias2" => "value2" ] ) ] } )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 NOT IN (SELECT fld_real2 fld_alias2 FROM tab_real2 tab_alias2 WHERE fld_real2 = 'value2')
# status..: SUCCESSFUL
# ################################################################
# test-S1603-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => \$mymod->Select( table => "ta_alias2", fields => [ "fld_alias2" ], where => [ "fld_alias2" => "value2" ], subquery => 1 ) } )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 IN (SELECT fld_real2 fld_alias2 FROM tab_real2 tab_alias2 WHERE fld_real2 = 'value2')
# status..: SUCCESSFUL
# ################################################################
# test-S1604-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => [ "!", \$mymod->SelectSubQuery( table => "ta_alias2", fields => [ "fld_alias2" ], where => [ "fld_alias2" => "value2" ] ) ] } )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 NOT IN (SELECT fld_real2 fld_alias2 FROM tab_real2 tab_alias2 WHERE fld_real2 = 'value2')
# status..: SUCCESSFUL
# ################################################################
# test-S1605-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => [ \$mymod->Select( table => "tab_alias2", fields => [ "fld_alias2" ], where => [ "fld_alias2" => "value2" ], subquery => 1 ), "..", \$mymod->Select( table => "tab_alias2", fields => [ "fld_alias2" ], where => [ "fld_alias2" => "value3" ], subquery => 1,), ], "fld_noalias1" => "value1" ] )
# note....: The option 'subquery=1' is mandatory for Select option, the SQL command results is string as return
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 BETWEEN ((SELECT fld_real2 fld_alias2 FROM tab_real2 tab_alias2 WHERE fld_real2 = 'value2'),(SELECT fld_real2 fld_alias2 FROM tab_real2 tab_alias2 WHERE fld_real2 = 'value3')) AND fld_noalias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1100-1: Delete( table => "tab_noalias", where => [ "fld_alias1" => 1 ], make_only=>1 )
# returns.: DELETE FROM tab_noalias WHERE fld_alias1 = '1'
# status..: SUCCESSFUL
# ################################################################
# test-S1101-1: Delete( table => "tab_alias1", where => [ "fld_alias1" => "value1" ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1102-1: Delete( table => "tab_real1", where => [ "fld_alias1" => "value1" ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1103-1: Delete( table => "tab_alias1", where => [ "fld_noalias1" => 1 ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_noalias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1104-1: Delete( table => "tab_alias1", where => [ "fld_real1" => 1 ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1105-1: Delete( table => "tab_noalias", where => [ "tab_noalias.fld_alias1" => "value1" ], make_only=>1 )
# returns.: DELETE FROM tab_noalias WHERE fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1106-1: Delete( table => "tab_alias1", where => [ "tab_alias1.fld_alias1" => "value1" ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1107-1: Delete( table => "tab_real1", where => [ "tab_alias1.fld_alias1" => "value1" ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1108-1: Delete( table => "tab_real1", where => [ "tab_alias1.fld_alias1" => "xx'xx" ], make_only=>1 )
# returns.: DELETE FROM tab_real1 WHERE fld_real1 = 'xx\'xx'
# status..: SUCCESSFUL
# ################################################################
# test-S1200-1: Update( table => "tab_noalias", fields => { "fld_alias1" => "value2" }, where => [ "fld_alias1" => "value1" ], make_only=>1 )
# returns.: UPDATE tab_noalias SET fld_alias1 = 'value2' WHERE fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1201-1: Update( table => "tab_alias1", fields => { "fld_alias1" => "value2" }, where => [ "fld_alias1" => "value1" ] )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value2' WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1202-1: Update( table => "tab_real1", fields => { "fld_alias1" => "value2" }, where => [ "fld_alias1" => "value1" ] )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value2' WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1203-1: Update( table => "tab_alias1", fields => { "fld_alias1" => "value2" }, where => [ "fld_noalias1" => "value1" ] )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value2' WHERE fld_noalias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1204-1: Update( table => "tab_alias1", fields => { "fld_alias1" => "value2" }, where => [ "fld_real1" => 1 ], make_only=>1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value2' WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1205-1: Update( table => "tab_noalias", fields => { "fld_alias1" => "value2" }, where => [ "tab_noalias.fld_alias1" => "value1" ], make_only=>1 )
# returns.: UPDATE tab_noalias SET fld_alias1 = 'value2' WHERE fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1206-1: Update( table => "tab_alias1", fields => { "fld_alias1" => "value2" }, where => [ "tab_alias1.fld_alias1" => "value1" ], make_only=>1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value2' WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1207-1: Update( table => "tab_real1", fields => { "fld_alias1" => "value2" }, where => [ "tab_alias1.fld_alias1" => "value1" ], make_only=>1 )
# returns.: UPDATE tab_real1 SET fld_real1 = 'value2' WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1210-1: Update( table => ["tab_noalias1","tab_noalias2"], fields => { "tab_noalias1.fld_alias1" => "value2", "tab_noalias2.fld_alias2" => "value1" }, where => [ "tab_noalias1.fld_alias1" => "value1", "tab_noalias2.fld_alias2" => "value2" ] )
# returns.: UPDATE tab_noalias1, tab_noalias2 SET tab_noalias1.fld_alias1 = 'value2', tab_noalias2.fld_alias2 = 'value1' WHERE tab_noalias1.fld_alias1 = 'value1' AND tab_noalias2.fld_alias2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S1211-1: Update( table => ["tab_alias1","tab_alias2"], fields => { "tab_alias1.fld_alias1" => "value2", "tab_alias2.fld_alias2" => "value1" }, where => [ "tab_alias1.fld_alias1" => "value1", "tab_alias2.fld_alias2" => "value2" ] )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET tab_alias1.fld_real1 = 'value2', tab_alias2.fld_real2 = 'value1' WHERE tab_alias1.fld_real1 = 'value1' AND tab_alias2.fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S1212-1: Update( table => ["tab_real1","tab_real2"], fields => { "tab_real1.fld_alias1" => "value2", "tab_real2.fld_alias2" => "value1" }, where => [ "tab_real1.fld_alias1" => "value1", "tab_real2.fld_alias2" => "value2" ] )
# returns.: UPDATE tab_real1 tab_alias1, tab_real2 tab_alias2 SET tab_alias1.fld_real1 = 'value2', tab_alias2.fld_real2 = 'value1' WHERE tab_alias1.fld_real1 = 'value1' AND tab_alias2.fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S1213-1: Update( table => "tab_real1", fields => { "tab_real1.fld_alias1" => undef }, where => [ "tab_real1.fld_alias1" => undef ]
# returns.: UPDATE tab_real1 SET fld_real1 = NULL WHERE fld_real1 IS NULL
# status..: SUCCESSFUL
# ################################################################
# test-S1214-1: Update( table => "tab_real1", fields => { "tab_real1.fld_alias1" => undef }, where => [ "tab_real1.fld_alias1" => [ "!", undef ] ]
# returns.: UPDATE tab_real1 SET fld_real1 = NULL WHERE fld_real1 NOT NULL
# status..: SUCCESSFUL
# ################################################################
# test-S1215-1: Update( table => "tab_real1", fields => { "tab_real1.fld_alias1" => 'xx\'xx' }, where => [ "tab_real1.fld_alias1" => 'yy\'yy' ]
# returns.: UPDATE tab_real1 SET fld_real1 = 'xx\'xx' WHERE fld_real1 = 'yy\'yy'
# status..: SUCCESSFUL
# ################################################################
# test-S1300-1: Select( table => "tab_noalias", where => [ "fld_alias1" => 1 ], make_only=>1 )
# returns.: SELECT * FROM tab_noalias WHERE fld_alias1 = '1'
# status..: SUCCESSFUL
# ################################################################
# test-S1301-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1302-1: Select( table => "tab_real1", fields => [ "fld_alias1" ], where => [ "fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1303-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_noalias1" => "value1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_noalias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1304-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "fld_real1" => "value1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1305-1: Select( table => "tab_noalias", fields => [ "fld_alias1" ], where => [ "tab_noalias.fld_alias1" => "value1" ] )
# returns.: SELECT fld_alias1 FROM tab_noalias WHERE fld_alias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1306-1: Select( table => "tab_alias1", fields => [ "fld_alias1" ], where => [ "tab_alias1.fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1307-1: Select( table => "tab_real1", fields => [ "fld_alias1" ], where => [ "tab_alias1.fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 fld_alias1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1310-1: Select( table => ["tab_noalias1","tab_noalias2"], fields => [ "tab_noalias1.fld_alias1", "tab_noalias2.fld_alias2" ], where => [ "tab_noalias1.fld_alias1" => "value1", "tab_noalias2.fld_alias2" => "value2" ] )
# returns.: SELECT tab_noalias1.fld_alias1, tab_noalias2.fld_alias2 FROM tab_noalias1, tab_noalias2 WHERE tab_noalias1.fld_alias1 = 'value1' AND tab_noalias2.fld_alias2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S1311-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ "tab_alias1.fld_alias1", "tab_alias2.fld_alias2" ], where => [ "tab_alias1.fld_alias1" => "value1", "tab_alias2.fld_alias2" => "value2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = 'value1' AND tab_alias2.fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S1312-1: Select( table => ["tab_real1","tab_real2"], fields => [ "tab_real1.fld_alias1", "tab_real2.fld_alias2" ], where => [ "tab_real1.fld_alias1" => "value1", "tab_real2.fld_alias2" => "value2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = 'value1' AND tab_alias2.fld_real2 = 'value2'
# status..: SUCCESSFUL
# ################################################################
# test-S1313-1: Select( table => ["tab_alias1","tab_alias1"], fields => [ "tab_real1.fld_alias1", "tab_real2.fld_alias2" ], where => [ "tab_alias1.fld_alias1" => "\tab_alias2.fld_alias2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1314-1: Select( table => ["tab_alias1","tab_alias1"], fields => [ "tab_real1.fld_alias1", "tab_real2.fld_alias2" ], where => [ "tab_alias1.fld_alias1" => "\tab_alias2.fld_alias2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1315-1: Select( table => ["tab_alias1","tab_alias1"], fields => [ "tab_alias1.fld_alias1", "tab_alias2.fld_alias2" ], where => [ "tab_real1.fld_alias1" => "tab_real1.fld_alias2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1316-1: Select( table => ["tab_alias1","tab_alias1"], fields => [ "tab_alias1.fld_alias1", "tab_alias2.fld_alias2" ], where => [ "tab_real1.fld_real1" => "\tab_real1.fld_real2" ] )
# returns.: SELECT tab_alias1.fld_real1 fld_alias1, tab_alias2.fld_real2 fld_alias2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1320-1: Select( table => "tab_alias1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1321-1: Select( table => "tab_real1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1321-1: Select( table => "tab_alias1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "fld_noalias1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_noalias1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1322-1: Select( table => "tab_alias1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "tab_alias1.fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1323-1: Select( table => "tab_real1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "tab_alias1.fld_alias1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1324-1: Select( table => "tab_alias1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "tab_alias1.fld_real1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1325-1: Select( table => "tab_alias1", fields => [ {"fld_alias1"=>"my1"} ], where => [ "tab_real1.fld_real1" => "value1" ] )
# returns.: SELECT fld_real1 my1 FROM tab_real1 tab_alias1 WHERE fld_real1 = 'value1'
# status..: SUCCESSFUL
# ################################################################
# test-S1326-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_alias1.fld_alias1" => "tab_alias2.fld_alias2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1327-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_alias1.fld_real1" => "tab_alias2.fld_real2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1328-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_real1.fld_alias1" => "tab_real2.fld_alias2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1329-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_real1.fld_real1" => "tab_real2.fld_real2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1330-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "my1" => "\my2" ] )
# warning.: SQL command error --  matched [table].[field] is required -- DOT NOT USE
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1331-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_alias1.my1" => "\tab_alias2.my2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1332-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_real1.my1" => "\tab_real2.my2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1333-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_noalias1.my1" => "\tab_alias2.my2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_noalias1.my1 = tab_alias2.fld_real2
# status..: SUCCESSFUL
# ################################################################
# test-S1334-1: Select( table => ["tab_alias1","tab_alias2"], fields => [ {"tab_alias1.fld_alias1"=>"my1"}, {"tab_alias2.fld_alias2"=>"my2"} ], where => [ "tab_alas1.my1" => "\tab_noalias2.my2" ] )
# returns.: SELECT tab_alias1.fld_real1 my1, tab_alias2.fld_real2 my2 FROM tab_real1 tab_alias1, tab_real2 tab_alias2 WHERE tab_alias1.fld_real1 = tab_noalias2.my2
# status..: SUCCESSFUL
# STAGE2 - STAGE2 - STAGE2
# ################################################################
# test-S0110-2: Delete( table=>"t1", where => [ fld => 123 ] )
# returns.: DELETE FROM t1 WHERE fld = '123'
# status..: SUCCESSFUL
# ################################################################
# test-S0120-2: Insert( table=>"t1", fields => { a => 1, b => 2, c => 3 } )
# returns.: INSERT INTO t1 (a,b,c) VALUES ('1','2','3')
# status..: SUCCESSFUL
# ################################################################
# test-S0121-2: Insert( table=>"t1", fields => { a => undef, b => undef, c => undef } )
# returns.: INSERT INTO t1 (a,b,c) VALUES (NULL,NULL,NULL)
# status..: SUCCESSFUL
# ################################################################
# test-S0122-2: Insert( table=>"t1", fields => [ "a","b","c" ], values => [ 1,2,3 ] )
# returns.: INSERT INTO t1 (a,b,c) VALUES ('1','2','3')
# status..: SUCCESSFUL
# ################################################################
# test-S0123-2: Insert( table=>"t1", fields => [ "a","b","c" ], values => [ undef,undef,undef ] )
# returns.: INSERT INTO t1 (a,b,c) VALUES (NULL,NULL,NULL)
# status..: SUCCESSFUL
# ################################################################
# test-S0124-2: Insert( table=>"t1", fields => [ "a","b","c" ], values => [ 1,2,3 ] )
# returns.: INSERT INTO t1 (a) VALUES ('1'),('2'),('3')
# status..: SUCCESSFUL
# ################################################################
# test-S0125-2: Insert( table=>"t1", fields => [ "a","b","c" ], values => [ undef,undef,undef ] )
# returns.: INSERT INTO t1 (a) VALUES (NULL),(NULL),(NULL)
# status..: SUCCESSFUL
# ################################################################
# test-S0126-2: Insert( table=>"t1", fields => { a => "xx'xx" )
# returns.: INSERT INTO t1 (a) VALUES ('xx\'xx')
# status..: SUCCESSFUL
# ################################################################
# test-S0127-2: Insert( table=>"t1", fields => [ "a" ], values => [ "xx'xx" ] )
# returns.: INSERT INTO t1 (a) VALUES ('xx\'xx')
# status..: SUCCESSFUL
# ################################################################
# test-S0128-2: Insert( table=>"t1", fields => [ "a" ], values => [ "xx'xx","yy'yy" ] )
# returns.: INSERT INTO t1 (a) VALUES ('xx\'xx'),('yy\'yy')
# status..: SUCCESSFUL
# ################################################################
# test-S0130-2: Update( table=>"t1", fields => { a => 1, b => 2 }, where => [ c => [ "!", 3 ] ] )
# returns.: UPDATE t1 SET a = '1', b = '2' WHERE c != '3'
# status..: SUCCESSFUL
# ################################################################
# test-S0140-2: Update( table=>"t1", fields => { a => '\concat(a,"xxxx")' }, force => 1 )
# returns.: UPDATE t1 SET a = concat(a,"xxxx")
# status..: SUCCESSFUL
# ################################################################
# test-S0150-2: Select( table=>"t1", fields => [ "a","b","c"] )
# returns.: SELECT a, b, c FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0160-2: Select( table=>"t1", fields => [ "a","b","c"], where => [ d=>4 ] )
# returns.: SELECT a, b, c FROM t1 WHERE d = '4'
# status..: SUCCESSFUL
# ################################################################
# test-S0170-2: Select( table=>"t1", fields => [ "a","b","c"], where => [ d=>4, e=>5 ] )
# returns.: SELECT a, b, c FROM t1 WHERE d = '4' AND e = '5'
# status..: SUCCESSFUL
# ################################################################
# test-S0180-2: Select( table=>"t1", fields => [ "a","b","c"], where => [ d=>'\substr(e,1,8)' ] )
# returns.: SELECT a, b, c FROM t1 WHERE d = substr(e,1,8)
# status..: SUCCESSFUL
# ################################################################
# test-S0190-2: Select( table=>["t1","t2"], fields => [ "t1.a","t2.b" ], where => [ "t1.a" => "\t2.b" ] )
# returns.: SELECT t1.a, t2.b FROM t1, t2 WHERE t1.a = t2.b
# status..: SUCCESSFUL
# ################################################################
# test-S0200-2: Select( table=>"t1", fields => [ {"a"=>"aa"} ], where => [ 'a' => '0' ] )
# returns.: SELECT a aa FROM t1 WHERE a = '0'
# status..: SUCCESSFUL
# ################################################################
# test-S0210-2: Select( table=>"t1", fields => [ {"t1.a"=>"aa"} ], where => [ 't1.a' => '0' ] )
# returns.: SELECT t1.a aa FROM t1 WHERE a = '0'
# status..: SUCCESSFUL
# ################################################################
# test-S0220-2: Select( table=>["t1","t2"], fields => [ {"t1.a"=>"aa"}, {"t2.b"=>"bb"} ], where => [ "t1.a" => "\t2.b" ] )
# returns.: SELECT t1.a aa, t2.b bb FROM t1, t2 WHERE t1.a = t2.b
# status..: SUCCESSFUL
# ################################################################
# test-S0230-2: Select( table=>"t1", fields => [ {"sum(a)"=>"a1"}, {"sum(t1.a)"=>"a2"}, {"\sum(a)"=>"a3"} ], where => [ 'a' => '0' ] )
# returns.: SELECT sum(a) a1, sum(t1.a) a2, sum(a) a3 FROM t1 WHERE a = '0'
# status..: SUCCESSFUL
# ################################################################
# test-S0320-2: Select( table=>"t1", fields => [ "distinct", "a" ] )
# note....: Select with DISTINCT array sequence
# returns.: SELECT DISTINCT a FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0330-2: Select( table=>"t1", fields => [ "distinct" => "a" ] )
# note....: Select with DISTINCT based hash
# returns.: SELECT DISTINCT a FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0340-2: Select( table=>"t1", fields => [ "count(*)" ] )
# returns.: SELECT count(*) FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0350-2: Select( table=>"t1", fields => [ "max(t1.a)" ] )
# returns.: SELECT max(t1.a) FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0360-2: Select( table=>"t1", fields => [ "max(a)" ] )
# returns.: SELECT max(a) FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0370-2: Select( table=>"t1", fields => [ "substr(a,1,8)" ] )
# returns.: SELECT substr(a,1,8) FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0380-2: Select( table=>"t1", fields => [ "\aaa.bbb.ccc" ] )
# returns.: SELECT aaa.bbb.ccc FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0390-2: Select( table=>"t1", fields => [ "distinct","\aaa.bbb.ccc" ] )
# returns.: SELECT DISTINCT aaa.bbb.ccc FROM t1
# status..: SUCCESSFUL
# ################################################################
# test-S0400-2: Select( table=>["t1","t2"], fields => [ "t1.a","t2.b" ], where => [ 't1.a' => 't2.b' ], sql_save=>1 )
# note....: SQL_SAVE enabled
# returns.: SELECT t1.a, t2.b FROM t1, t2 WHERE t1.a = 't2.b'
# savefile: /tmp/2023/202312/20231229/sql.teste.20231229.7358.1
# savefile: removed
# status: SUCCESSFUL
# ################################################################
# test-S0410-2: Select( table=>"t1", order_by => "t1.a" )
# returns.: SELECT * FROM t1 ORDER BY t1.a
# status..: SUCCESSFUL
# ################################################################
# test-S0420-2: Select( table=>"t1", order_by => [ {"t1.a" => "asc"} ] )
# returns.: SELECT * FROM t1 ORDER BY t1.a ASC
# status..: SUCCESSFUL
# ################################################################
# test-S0430-2: Select( table=>"t1", order_by => [ {"t1.a" => "desc"} ] )
# returns.: SELECT * FROM t1 ORDER BY t1.a DESC
# status..: SUCCESSFUL
# ################################################################
# test-S0440-2: Select( table=>"t1", order_by => [ "t1.a", "t1.b" ] )
# returns.: SELECT * FROM t1 ORDER BY t1.a, t1.b
# status..: SUCCESSFUL
# ################################################################
# test-S0450-2: Select( table=>"t1", order_by => [ {"t1.a" => "asc"}, "t1.b" ] )
# returns.: SELECT * FROM t1 ORDER BY t1.a ASC, t1.b
# status..: SUCCESSFUL
# ################################################################
# test-S0460-2: Select( table=>"t1", order_by => [ "t1.a", {"t1.b"=>"desc"} ] )
# returns.: SELECT * FROM t1 ORDER BY t1.a, t1.b DESC
# status..: SUCCESSFUL
# ################################################################
# test-S0470-2: Select( table=>"t1", order_by => {"t1.b"=>"desc"} )
# returns.: SELECT * FROM t1 ORDER BY t1.b DESC
# status..: SUCCESSFUL
# ################################################################
# test-S0480-2: Select( table=>"t1", fields => [{"t1.abc"=>"_abc"},"t1.cde",{"t1.fgh"=>"_fgh"}], where => [ "_abc" => 123 ] )
# returns.: SELECT t1.abc _abc, t1.cde, t1.fgh _fgh FROM t1 WHERE abc = '123'
# status..: SUCCESSFUL
# ################################################################
# test-S0481-2: Select( table=>"t1", fields => [{"t1.abc"=>"_abc"},"t1.cde",{"t1.fgh"=>"_fgh"}], where => [ "_abc" => 123, "cde" => 234, "t1.abc" => 345] )
# returns.: SELECT t1.abc _abc, t1.cde, t1.fgh _fgh FROM t1 WHERE abc = '123' AND cde = '234' AND abc = '345'
# status..: SUCCESSFUL
# ################################################################
# test-S0490-2: Select( table=>["t1","t2"], fields => [{"t1.abc"=>"_abc"},"t1.cde",{"t2.fgh"=>"_fgh"},"t2.ijk"], where => [ "_abc" => 123, "cde" => 234, "t1.abc" => 345, "ijk" => 456] )
# returns.: SELECT t1.abc _abc, t1.cde, t2.fgh _fgh, t2.ijk FROM t1, t2 WHERE t1.abc = '123' AND cde = '234' AND t1.abc = '345' AND ijk = '456'
# status..: SUCCESSFUL
# ################################################################
# test-S0500-2: Select( table=>"t1", fields => [{"t1.abc"=>"_a"}], where => [ "substr(_a,1,4)" => 1234 ] )
# returns.: SELECT t1.abc _a FROM t1 WHERE substr(abc,1,4) = '1234'
# status..: SUCCESSFUL
# ################################################################
# test-S0510-2: Select( table=>"t1", fields => [{"t1.abc"=>"_a"}], where => [ "concat(substr(_a,1,3),1)" => 1231 ] )
# returns.: SELECT t1.abc _a FROM t1 WHERE concat(substr(abc,1,4),1) = '1231'
# status..: SUCCESSFUL
# ################################################################
# test-S0520-2: Select( table=>"t1", fields => [{"t1.abc"=>"_a"}], where => [ "func1(func2(_a))" => 1231 ] )
# returns.: SELECT t1.abc _a FROM t1 WHERE func1(func2(abc)) = '1231'
# status..: SUCCESSFUL
# ################################################################
# test-S0530-2: Select( table=>"t1", fields => [{"t1.abc"=>"_a"}], where => [ "func1(_a)" => 123, "func1(t1.abc)" => 456 ] )
# returns.: SELECT t1.abc _a FROM t1 WHERE func1(abc) = '123' AND func1(t1.abc) = '456'
# status..: SUCCESSFUL
# ################################################################
# 
# To see the input options used to create the 'where' clause, rerun the test with:
# 
# export SQL_SIMPLE_SQL_SHOW_OK=1
# 
t/testSQL.t .... ok
# 
# ################################################################
# test-W0101: where => [ 'id', 'info']
# returns.: id = 'info'
# status..: SUCCESSFUL
# ################################################################
# test-W0102: where => [ 'id', [ '=', 'info' ]]
# returns.: id = 'info'
# status..: SUCCESSFUL
# ################################################################
# test-W0103: where => [ 'id', [ '!', 'info' ]]
# returns.: id != 'info'
# status..: SUCCESSFUL
# ################################################################
# test-W0104: where => [ 'id', [ '<', 'info' ]]
# returns.: id < 'info'
# status..: SUCCESSFUL
# ################################################################
# test-W0105: where => [ 'id', [ '>', 'info' ]]
# returns.: id > 'info'
# status..: SUCCESSFUL
# ################################################################
# test-W0106: where => [ 'id', [ '^%', 'info' ]]
# returns.: id LIKE 'info%'
# status..: SUCCESSFUL
# ################################################################
# test-W0107: where => [ 'id', [ '%%', 'info' ]]
# returns.: id LIKE '%info%'
# status..: SUCCESSFUL
# ################################################################
# test-W0108: where => [ 'id', [ '%^', 'info' ]]
# returns.: id LIKE '%info'
# status..: SUCCESSFUL
# ################################################################
# test-W0109: where => [ 'id', [ '^^', 'info' ]]
# returns.: id LIKE 'info'
# status..: SUCCESSFUL
# ################################################################
# test-W0110: where => [ 'id', undef]
# returns.: id IS NULL
# status..: SUCCESSFUL
# ################################################################
# test-W0111: where => [ 'id', [ '!', undef ]]
# returns.: id NOT NULL
# status..: SUCCESSFUL
# ################################################################
# test-W0112: where => [ 'id', [ 'info1', 'info2' ]]
# returns.: id IN ('info1','info2')
# status..: SUCCESSFUL
# ################################################################
# test-W0113: where => [ 'id', [ '!', 'info1', 'info2' ]]
# returns.: id NOT IN ('info1','info2')
# status..: SUCCESSFUL
# ################################################################
# test-W0114: where => [ 'id', [ 'info1', '..', 'info2' ]]
# returns.: id BETWEEN ('info1','info2')
# status..: SUCCESSFUL
# ################################################################
# test-W0115: where => [ 'id', [ '!', 'info1', '..', 'info2' ]]
# returns.: id NOT BETWEEN ('info1','info2')
# status..: SUCCESSFUL
# ################################################################
# test-W0120: where => [ 'id', 'info', 'id', 'info2', 'no', 'no1', 'no', 'no2']
# returns.: id = 'info' AND id = 'info2' AND no = 'no1' AND no = 'no2'
# status..: SUCCESSFUL
# ################################################################
# test-W0121: where => [ 'id', 'info', 'id', 'info2', 'or', 'no', 'no1', 'no', 'no2']
# returns.: id = 'info' AND id = 'info2' OR no = 'no1' AND no = 'no2'
# status..: SUCCESSFUL
# ################################################################
# test-W0200: where => [ 't1.id', '\\t2.id']
# returns.: t1.id = t2.id
# status..: SUCCESSFUL
# ################################################################
# test-W0201: where => [ 't1.id', [ '=', '\\t2.id' ]]
# returns.: t1.id = t2.id
# status..: SUCCESSFUL
# ################################################################
# test-W0202: where => [ 't1.id', [ '!', '\\t2.id' ]]
# returns.: t1.id != t2.id
# status..: SUCCESSFUL
# ################################################################
# test-W0210: where => [ 't1.id', '\\t2.id', 't1.id', '\\t3.id']
# returns.: t1.id = t2.id AND t1.id = t3.id
# status..: SUCCESSFUL
# ################################################################
# test-W0211: where => [ 't1.id', [ '=', '\\t2.id' ], 't1.id', [ '=', '\\t3.id' ]]
# returns.: t1.id = t2.id AND t1.id = t3.id
# status..: SUCCESSFUL
# ################################################################
# test-W0212: where => [ 't1.id', [ '!', '\\t2.id' ], 't1.id', [ '!', '\\t3.id' ]]
# returns.: t1.id != t2.id AND t1.id != t3.id
# status..: SUCCESSFUL
# ################################################################
# test-W0213: where => [ 't1.id', '\\t2.id', 'or', 't1.id', '\\t3.id']
# returns.: t1.id = t2.id OR t1.id = t3.id
# status..: SUCCESSFUL
# ################################################################
# test-W0214: where => [ 't1.id', '\\t2.id', 't1.id', [ '1234', '..', '5678' ], [ 't1.id', [ '!', 0 ], 'or', 't2.id', [ '!', 0 ] ]]
# returns.: t1.id = t2.id AND t1.id BETWEEN ('1234','5678') AND (t1.id != '0' OR t2.id != '0')
# status..: SUCCESSFUL
# ################################################################
# test-W0220: where => [ [ 'id', 1, 'id', 2 ], [ 'no', 3, 'no', 4 ]]
# returns.: (id = '1' AND id = '2') AND (no = '3' AND no = '4')
# status..: SUCCESSFUL
# ################################################################
# test-W0221: where => [ 'id', [ '^%', 1, 2 ], 'no', [ '%^', 3, 4 ]]
# returns.: (id LIKE '1%' OR id LIKE '2%') AND (no LIKE '%3' OR no LIKE '%4')
# status..: SUCCESSFUL
# ################################################################
# test-W0222: where => [ 'id', [ '!^%', 1, 2 ], 'no', [ '!%^', 3, 4 ]]
# returns.: (id NOT LIKE '1%' AND id NOT LIKE '2%') AND (no NOT LIKE '%3' AND no NOT LIKE '%4')
# status..: SUCCESSFUL
# ################################################################
# test-W0223: where => [ 'id', [ '!^%', 1, 2 ], 'or', 'no', [ '!%^', 3, 4 ]]
# returns.: (id NOT LIKE '1%' AND id NOT LIKE '2%') OR (no NOT LIKE '%3' AND no NOT LIKE '%4')
# status..: SUCCESSFUL
# ################################################################
# test-W0224: where => [ 'id', [ '!', undef ], 'or', 'no', undef]
# returns.: id NOT NULL OR no IS NULL
# status..: SUCCESSFUL
# ################################################################
# test-W0225: where => [ [ [ 'a', 1, 'b', 2 ], 'or', [ 'c', 3, 'd', 4 ] ], 'e', 5]
# returns.: ((a = '1' AND b = '2') OR (c = '3' AND d = '4')) AND e = '5'
# status..: SUCCESSFUL
# ################################################################
# test-W0230: where => [ 'a', '\\concat(a,\'abc\')']
# returns.: a = concat(a,'abc')
# status..: SUCCESSFUL
# ################################################################
# test-W0231: where => [ 'a', [ '!', '\\concat(a,\'abc\')' ]]
# returns.: a != concat(a,'abc')
# status..: SUCCESSFUL
# ################################################################
# test-W0232: where => [ 'a', 'xx\'xx']
# returns.: a = 'xx\'xx'
# status..: SUCCESSFUL
# ################################################################
# test-W0233: where => [ 'a', [ '!', 'xx\'xx' ]]
# returns.: a != 'xx\'xx'
# status..: SUCCESSFUL
# ################################################################
# test-W0234: where => [ 'a', [ 'xx\'xx', 'yy\'yy' ]]
# returns.: a IN ('xx\'xx','yy\'yy')
# status..: SUCCESSFUL
# ################################################################
# test-W0235: where => [ 'a', [ 'xx\'xx', '..', 'yy\'yy' ]]
# returns.: a BETWEEN ('xx\'xx','yy\'yy')
# status..: SUCCESSFUL
# ################################################################
# test-W0240: where => [ 'a', 1, [ [ 'b', [], 'or', 'c', 2 ] ]]
# returns.: a = '1' AND c = '2'
# status..: SUCCESSFUL
# ################################################################
# test-W0241: where => [ 'a', 1, [ [ 'b', [] ], 'or', [ 'c', 2 ] ]]
# returns.: a = '1' AND c = '2'
# status..: SUCCESSFUL
# ################################################################
# 
# To see the input options used to create the 'where' clause, rerun the test with:
# 
# export SQL_SIMPLE_WHERE_SHOW_OK=1
# 
t/testWhere.t .. ok
All tests successful.
Files=4, Tests=6,  2 wallclock secs ( 0.06 usr  0.03 sys +  1.06 cusr  0.13 csys =  1.28 CPU)
Result: PASS

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need Have    
    ------------------- ---- --------
    Date::Calc          0    6.4     
    DBI                 0    1.643   
    File::Path          0    2.08_01 
    File::Spec          0    3.39_02 
    IO::File            0    1.16    
    JSON                0    4.10    
    Sys::Syslog         0    0.29    

build_requires:

    Module              Need Have    
    ------------------- ---- --------
    DBD::SQLite         0    1.74    
    Test::More          0    1.302183

configure_requires:

    Module              Need Have    
    ------------------- ---- --------
    ExtUtils::MakeMaker 0    7.58    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    NONINTERACTIVE_TESTING = 1
    PATH = /Users/cpantesting/perl5/perlbrew/bin:/Users/cpantesting/perl5/perlbrew/perls/perl-5.32.0/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/cpantesting/.cargo/bin
    PERL = 5.16.3
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 86172
    PERL5_CPAN_IS_RUNNING = 86172
    PERLBREW_HOME = /Users/cpantesting/.perlbrew
    PERLBREW_MANPATH = /Users/cpantesting/perl5/perlbrew/perls/perl-5.32.0/man
    PERLBREW_PATH = /Users/cpantesting/perl5/perlbrew/bin:/Users/cpantesting/perl5/perlbrew/perls/perl-5.32.0/bin
    PERLBREW_PERL = perl-5.32.0
    PERLBREW_ROOT = /Users/cpantesting/perl5/perlbrew
    PERLBREW_SHELLRC_VERSION = 0.94
    PERLBREW_VERSION = 0.94
    PERLVER = 5.16.3
    PERL_INLINE_DIRECTORY = /Users/cpantesting/.Inline-5.16.3
    PERL_MM_USE_DEFAULT = 1
    PERL_USE_UNSAFE_INC = 0
    SHELL = /bin/bash
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /Users/cpantesting/cpantesting/perl-5.16.3/bin/perl
    $UID/$EUID = 503 / 503
    $GID = 20 20 12 61 703 702 701 100
    $EGID = 20 20 12 61 703 702 701 100

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                1.9800  
    CPAN::Meta          2.143240
    Cwd                 3.39_02 
    ExtUtils::CBuilder  0.280235
    ExtUtils::Command   7.58    
    ExtUtils::Install   2.06    
    ExtUtils::MakeMaker 7.58    
    ExtUtils::Manifest  1.70    
    ExtUtils::ParseXS   3.16    
    File::Spec          3.39_02 
    JSON                4.10    
    JSON::PP            4.05    
    Module::Build       0.39_01 
    Module::Signature   n/a     
    Parse::CPAN::Meta   1.4414  
    Test2               1.302183
    Test::Harness       3.23    
    Test::More          1.302183
    YAML                n/a     
    YAML::Syck          n/a     
    version             0.99    


--

Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
   
  Platform:
    osname=darwin, osvers=19.6.0, archname=darwin-thread-multi-2level
    uname='darwin harrow.local 19.6.0 darwin kernel version 19.6.0: thu oct 29 22:56:45 pdt 2020; root:xnu-6153.141.2.2~1release_x86_64 x86_64 '
    config_args='-de -Dusethreads -Dprefix=/Users/cpantesting/cpantesting/perl-5.16.3'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    optimize='-O3',
    cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='Apple LLVM 12.0.0 (clang-1200.0.32.27)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-lgdbm -ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API
  Built under darwin
  Compiled at Dec 29 2020 22:52:51
  %ENV:
    PERL="5.16.3"
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="86172"
    PERL5_CPAN_IS_RUNNING="86172"
    PERLBREW_HOME="/Users/cpantesting/.perlbrew"
    PERLBREW_MANPATH="/Users/cpantesting/perl5/perlbrew/perls/perl-5.32.0/man"
    PERLBREW_PATH="/Users/cpantesting/perl5/perlbrew/bin:/Users/cpantesting/perl5/perlbrew/perls/perl-5.32.0/bin"
    PERLBREW_PERL="perl-5.32.0"
    PERLBREW_ROOT="/Users/cpantesting/perl5/perlbrew"
    PERLBREW_SHELLRC_VERSION="0.94"
    PERLBREW_VERSION="0.94"
    PERLVER="5.16.3"
    PERL_INLINE_DIRECTORY="/Users/cpantesting/.Inline-5.16.3"
    PERL_MM_USE_DEFAULT="1"
    PERL_USE_UNSAFE_INC="0"
  @INC:
    /Users/cpantesting/cpantesting/perl-5.16.3/lib/site_perl/5.16.3/darwin-thread-multi-2level
    /Users/cpantesting/cpantesting/perl-5.16.3/lib/site_perl/5.16.3
    /Users/cpantesting/cpantesting/perl-5.16.3/lib/5.16.3/darwin-thread-multi-2level
    /Users/cpantesting/cpantesting/perl-5.16.3/lib/5.16.3
    .