Skip to content

Commit

Permalink
New parsers prefixes
Browse files Browse the repository at this point in the history
"PER:" - something wrong (should never be displayed in real parsers)
"P01:" - sphinxql
"P02:" - sphinxql secondary
"P03:" - ddl
"P04:" - sphinxql debug
"P05:" - sphinxql extra
"P06:" - percolate filters
"P07:" - select parsers (i.e. select lists in api)
"P08:" - query
"P09:" - expression
"P10:" - json

That fixes #3487

CHANGELOG: different internal parsers now provide their internal
mnemonic code in case of different errors. That helps to locate which
exactly parser caused an error, and also hide non-important internal
details.
  • Loading branch information
klirichek committed May 8, 2023
1 parent 6932c3a commit f3d248a
Show file tree
Hide file tree
Showing 24 changed files with 58 additions and 55 deletions.
1 change: 1 addition & 0 deletions src/searchdddl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ DdlParser_c::DdlParser_c ( CSphVector<SqlStmt_t> & dStmt, const char* szQuery, C
else
m_pStmt = &m_dStmt.Last();
assert ( m_dStmt.GetLength()==1 );
m_sErrorHeader = "P03:";
}


Expand Down
6 changes: 4 additions & 2 deletions src/searchdsql.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ CSphString SqlParserTraits_c::ToStringUnescape ( const SqlNode_t & tNode ) const
void SqlParserTraits_c::ProcessParsingError ( const char* szMessage )
{
// 'wrong parser' is quite empiric - we fire it when from very beginning parser sees syntax error
// notice: szMessage here is NOT prefixed with "PXX:"
if ( ( m_pBuf == m_pLastTokenStart ) && ( strncmp ( szMessage, "syntax error", 12 ) == 0 ) )
m_bWrongParserSyntaxError = true;

Expand Down Expand Up @@ -384,6 +385,7 @@ SqlParser_c::SqlParser_c ( CSphVector<SqlStmt_t> & dStmt, ESphCollation eCollati
{
assert ( m_dStmt.IsEmpty() );
PushQuery ();
m_sErrorHeader = "P01:";
}

void SqlParser_c::PushQuery ()
Expand Down Expand Up @@ -1873,7 +1875,7 @@ bool PercolateParseFilters ( const char * sFilters, ESphCollation eCollation, co

CSphVector<SqlStmt_t> dStmt;
SqlParser_c tParser ( dStmt, eCollation, sBuf.cstr(), &sError );
tParser.m_sErrorHeader = "percolate filters:";
tParser.m_sErrorHeader = "P06:";

char * sEnd = const_cast<char *>( sBuf.cstr() ) + iLen;
sEnd[0] = 0; // prepare for yy_scan_buffer
Expand Down Expand Up @@ -1957,7 +1959,7 @@ bool PercolateParseFilters ( const char * sFilters, ESphCollation eCollation, co

// TODO: change way of filter -> expression create: produce single error, share parser code
// try expression
if ( iRes!=0 && !dFilters.GetLength() && sError.Begins ( "percolate filters: syntax error" ) )
if ( iRes!=0 && !dFilters.GetLength() && sError.Begins ( "P06: syntax error" ) )
{
ESphAttr eAttrType = SPH_ATTR_NONE;
ExprParseArgs_t tExprArgs;
Expand Down
2 changes: 1 addition & 1 deletion src/searchdsql.h
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ class SqlParserTraits_c : ISphNoncopyable
const char * m_pLastTokenStart = nullptr;
CSphQuery * m_pQuery = nullptr;
SqlStmt_t * m_pStmt = nullptr;
CSphString m_sErrorHeader = "sphinxql:";
CSphString m_sErrorHeader = "PER:";

void PushQuery();
CSphString & ToString ( CSphString & sRes, const SqlNode_t & tNode ) const;
Expand Down
2 changes: 1 addition & 1 deletion src/sphinx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1649,7 +1649,7 @@ static int yylex ( YYSTYPE * lvalp, SelectParser_t * pParser )

static void yyerror ( SelectParser_t * pParser, const char * sMessage )
{
pParser->m_sParserError.SetSprintf ( "%s near '%s'", sMessage, pParser->m_pLastTokenStart );
pParser->m_sParserError.SetSprintf ( "P07: %s near '%s'", sMessage, pParser->m_pLastTokenStart );
}

#include "bissphinxselect.c"
Expand Down
2 changes: 1 addition & 1 deletion src/sphinxexpr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9012,7 +9012,7 @@ void yyerror ( ExprParser_t * pParser, const char * sMessage )
{
// flex put a zero at last token boundary; make it undo that
const auto* szToken = yy1lex_unhold ( pParser->m_pScanner );
pParser->m_sParserError.SetSprintf ( "Sphinx expr: %s near '%s'", sMessage, szToken );
pParser->m_sParserError.SetSprintf ( "P09: %s near '%s'", sMessage, szToken );
}

#include "bissphinxexpr.c"
Expand Down
2 changes: 1 addition & 1 deletion src/sphinxjson.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,7 @@ class JsonParser_c : public BsonHelper
static void yyerror ( JsonParser_c * pParser, const char * sMessage )
{
yy2lex_unhold ( pParser->m_pScanner );
pParser->m_sError.Sprintf ( "%s near '%s'", sMessage, pParser->m_pLastToken );
pParser->m_sError.Sprintf ( "P10: %s near '%s'", sMessage, pParser->m_pLastToken );
}

#ifndef NDEBUG
Expand Down
2 changes: 1 addition & 1 deletion src/sphinxql_debug.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class SqlDebugParser_c : public SqlParserTraits_c
: SqlParserTraits_c ( dStmt, sQuery.first, &sError )
, m_tCmd ( tCmd )
{
m_sErrorHeader = "sphinxql-debug:";
m_sErrorHeader = "P04:";
}

CSphString StrFromBlob ( BlobLocator_t tStr ) const
Expand Down
4 changes: 2 additions & 2 deletions src/sphinxql_extra.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class SqlExtraParser_c : public SqlParserTraits_c
PushQuery();
else
m_pStmt = &m_dStmt.Last();
m_sErrorHeader = "sphinxql-extra:";
m_sErrorHeader = "P05:";
}

CSphString StrFromBlob ( BlobLocator_t tStr ) const
Expand Down Expand Up @@ -133,7 +133,7 @@ ParseResult_e ParseExtra ( Str_t sQuery, CSphVector<SqlStmt_t>& dStmt, CSphStrin
yy6lex_destroy ( tParser.m_pScanner );

// special case - processing single comment directive
if ( sQuery.second > 1 && sQuery.first[0] == '/' && sQuery.first[1] == '*' && sError == "sphinxql-extra: syntax error, unexpected $end near '(null)'" )
if ( sQuery.second > 1 && sQuery.first[0] == '/' && sQuery.first[1] == '*' && sError == "P05: syntax error, unexpected $end near '(null)'" )
{
tParser.DefaultOk();
iRes = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/sphinxql_second.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class SqlSecondParser_c : public SqlParserTraits_c
PushQuery();
else
m_pStmt = &m_dStmt.Last();
m_sErrorHeader = "sphinxql-second:";
m_sErrorHeader = "P02:";
}

CSphString StrFromBlob ( BlobLocator_t tStr ) const
Expand Down
2 changes: 1 addition & 1 deletion src/sphinxquery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ static int yylex ( YYSTYPE * lvalp, XQParser_t * pParser )
void yyerror ( XQParser_t * pParser, const char * sMessage )
{
if ( pParser->m_pParsed->m_sParseError.IsEmpty() )
pParser->m_pParsed->m_sParseError.SetSprintf ( "%s near '%s'", sMessage, pParser->m_pErrorAt );
pParser->m_pParsed->m_sParseError.SetSprintf ( "P08: %s near '%s'", sMessage, pParser->m_pErrorAt );
}

#include "bissphinxquery.c"
Expand Down
2 changes: 1 addition & 1 deletion test/test_019/model.bin

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions test/test_022/model.bin

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion test/test_063/model.bin

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion test/test_069/model.bin
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a:1:{i:0;a:35:{i:0;a:2:{s:8:"sphinxql";s:76:"CREATE TABLE test (title text, `123abc` integer, a22 integer, `a23` integer)";s:14:"total_affected";i:0;}i:1;a:3:{s:8:"sphinxql";s:9:"desc test";s:10:"total_rows";i:5;s:4:"rows";a:5:{i:0;a:3:{s:5:"Field";s:2:"id";s:4:"Type";s:6:"bigint";s:10:"Properties";s:0:"";}i:1;a:3:{s:5:"Field";s:5:"title";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}i:2;a:3:{s:5:"Field";s:6:"123abc";s:4:"Type";s:4:"uint";s:10:"Properties";s:0:"";}i:3;a:3:{s:5:"Field";s:3:"a22";s:4:"Type";s:4:"uint";s:10:"Properties";s:0:"";}i:4;a:3:{s:5:"Field";s:3:"a23";s:4:"Type";s:4:"uint";s:10:"Properties";s:0:"";}}}i:2;a:2:{s:8:"sphinxql";s:70:"insert into test (id,title,`123abc`,a22,a23) values (1,'bla',10,11,12)";s:14:"total_affected";i:1;}i:3;a:2:{s:8:"sphinxql";s:72:"insert into test (id,title,`123abc`,`a22`,a23) values (2,'bla',20,21,22)";s:14:"total_affected";i:1;}i:4;a:3:{s:8:"sphinxql";s:18:"select * from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";s:5:"title";s:3:"bla";}i:1;a:5:{s:2:"id";s:1:"1";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";s:5:"title";s:3:"bla";}}}i:5;a:3:{s:8:"sphinxql";s:25:"select `123abc` from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:8:"`123abc`";s:2:"20";}i:1;a:1:{s:8:"`123abc`";s:2:"10";}}}i:6;a:3:{s:8:"sphinxql";s:23:"select 123abc from test";s:5:"errno";i:1064;s:5:"error";s:70:"sphinxql: syntax error, unexpected BAD_NUMERIC near '123abc from test'";}i:7;a:3:{s:8:"sphinxql";s:34:"select * from test where 123abc>10";s:5:"errno";i:1064;s:5:"error";s:63:"sphinxql: syntax error, unexpected BAD_NUMERIC near '123abc>10'";}i:8;a:3:{s:8:"sphinxql";s:36:"select * from test where `123abc`>10";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:5:{s:2:"id";s:1:"2";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";s:5:"title";s:3:"bla";}}}i:9;a:3:{s:8:"sphinxql";s:22:"select `a22` from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a22";s:2:"21";}i:1;a:1:{s:3:"a22";s:2:"11";}}}i:10;a:3:{s:8:"sphinxql";s:20:"select a22 from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a22";s:2:"21";}i:1;a:1:{s:3:"a22";s:2:"11";}}}i:11;a:3:{s:8:"sphinxql";s:31:"select * from test where a22>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";s:5:"title";s:3:"bla";}i:1;a:5:{s:2:"id";s:1:"1";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";s:5:"title";s:3:"bla";}}}i:12;a:3:{s:8:"sphinxql";s:33:"select * from test where `a22`>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";s:5:"title";s:3:"bla";}i:1;a:5:{s:2:"id";s:1:"1";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";s:5:"title";s:3:"bla";}}}i:13;a:3:{s:8:"sphinxql";s:22:"select `a23` from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a23";s:2:"22";}i:1;a:1:{s:3:"a23";s:2:"12";}}}i:14;a:3:{s:8:"sphinxql";s:20:"select a23 from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a23";s:2:"22";}i:1;a:1:{s:3:"a23";s:2:"12";}}}i:15;a:3:{s:8:"sphinxql";s:31:"select * from test where a23>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";s:5:"title";s:3:"bla";}i:1;a:5:{s:2:"id";s:1:"1";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";s:5:"title";s:3:"bla";}}}i:16;a:3:{s:8:"sphinxql";s:33:"select * from test where `a23`>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";s:5:"title";s:3:"bla";}i:1;a:5:{s:2:"id";s:1:"1";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";s:5:"title";s:3:"bla";}}}i:17;a:2:{s:8:"sphinxql";s:15:"drop table test";s:14:"total_affected";i:0;}i:18;a:2:{s:8:"sphinxql";s:47:"CREATE TABLE `1a2b3c`(field1 text, field2 text)";s:14:"total_affected";i:0;}i:19;a:3:{s:8:"sphinxql";s:11:"show tables";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:2:{s:5:"Index";s:6:"1a2b3c";s:4:"Type";s:2:"rt";}}}i:20;a:3:{s:8:"sphinxql";s:13:"desc `1a2b3c`";s:10:"total_rows";i:3;s:4:"rows";a:3:{i:0;a:3:{s:5:"Field";s:2:"id";s:4:"Type";s:6:"bigint";s:10:"Properties";s:0:"";}i:1;a:3:{s:5:"Field";s:6:"field1";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}i:2;a:3:{s:5:"Field";s:6:"field2";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}}}i:21;a:2:{s:8:"sphinxql";s:45:"insert into `1a2b3c` values (1, 'bla', 'bla')";s:14:"total_affected";i:1;}i:22;a:3:{s:8:"sphinxql";s:22:"select * from `1a2b3c`";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:3:{s:2:"id";s:1:"1";s:6:"field1";s:3:"bla";s:6:"field2";s:3:"bla";}}}i:23;a:2:{s:8:"sphinxql";s:19:"drop table `1a2b3c`";s:14:"total_affected";i:0;}i:24;a:2:{s:8:"sphinxql";s:46:"CREATE TABLE `a2b3c`(field1 text, field2 text)";s:14:"total_affected";i:0;}i:25;a:3:{s:8:"sphinxql";s:11:"show tables";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:2:{s:5:"Index";s:5:"a2b3c";s:4:"Type";s:2:"rt";}}}i:26;a:3:{s:8:"sphinxql";s:12:"desc `a2b3c`";s:10:"total_rows";i:3;s:4:"rows";a:3:{i:0;a:3:{s:5:"Field";s:2:"id";s:4:"Type";s:6:"bigint";s:10:"Properties";s:0:"";}i:1;a:3:{s:5:"Field";s:6:"field1";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}i:2;a:3:{s:5:"Field";s:6:"field2";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}}}i:27;a:2:{s:8:"sphinxql";s:44:"insert into `a2b3c` values (1, 'bla', 'bla')";s:14:"total_affected";i:1;}i:28;a:3:{s:8:"sphinxql";s:21:"select * from `a2b3c`";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:3:{s:2:"id";s:1:"1";s:6:"field1";s:3:"bla";s:6:"field2";s:3:"bla";}}}i:29;a:2:{s:8:"sphinxql";s:18:"drop table `a2b3c`";s:14:"total_affected";i:0;}i:30;a:2:{s:8:"sphinxql";s:39:"create table pq (`json` json) type='pq'";s:14:"total_affected";i:0;}i:31;a:2:{s:8:"sphinxql";s:62:"INSERT INTO pq (query, filters) VALUES ('', 'json.target==10')";s:14:"total_affected";i:1;}i:32;a:3:{s:8:"sphinxql";s:56:"call pq ('pq', '{"json":{"target":10}}', 1 as docs_json)";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:1:{s:2:"id";s:13:"1677721600001";}}}i:33;a:2:{s:8:"sphinxql";s:56:"call pq ('pq', '{"json":{"target":20}}', 1 as docs_json)";s:10:"total_rows";i:0;}i:34;a:2:{s:8:"sphinxql";s:13:"drop table pq";s:14:"total_affected";i:0;}}}
a:1:{i:0;a:35:{i:0;a:2:{s:8:"sphinxql";s:76:"CREATE TABLE test (title text, `123abc` integer, a22 integer, `a23` integer)";s:14:"total_affected";i:0;}i:1;a:3:{s:8:"sphinxql";s:9:"desc test";s:10:"total_rows";i:5;s:4:"rows";a:5:{i:0;a:3:{s:5:"Field";s:2:"id";s:4:"Type";s:6:"bigint";s:10:"Properties";s:0:"";}i:1;a:3:{s:5:"Field";s:5:"title";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}i:2;a:3:{s:5:"Field";s:6:"123abc";s:4:"Type";s:4:"uint";s:10:"Properties";s:0:"";}i:3;a:3:{s:5:"Field";s:3:"a22";s:4:"Type";s:4:"uint";s:10:"Properties";s:0:"";}i:4;a:3:{s:5:"Field";s:3:"a23";s:4:"Type";s:4:"uint";s:10:"Properties";s:0:"";}}}i:2;a:2:{s:8:"sphinxql";s:70:"insert into test (id,title,`123abc`,a22,a23) values (1,'bla',10,11,12)";s:14:"total_affected";i:1;}i:3;a:2:{s:8:"sphinxql";s:72:"insert into test (id,title,`123abc`,`a22`,a23) values (2,'bla',20,21,22)";s:14:"total_affected";i:1;}i:4;a:3:{s:8:"sphinxql";s:18:"select * from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";}i:1;a:5:{s:2:"id";s:1:"1";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";}}}i:5;a:3:{s:8:"sphinxql";s:25:"select `123abc` from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:8:"`123abc`";s:2:"20";}i:1;a:1:{s:8:"`123abc`";s:2:"10";}}}i:6;a:3:{s:8:"sphinxql";s:23:"select 123abc from test";s:5:"errno";i:1064;s:5:"error";s:65:"P01: syntax error, unexpected BAD_NUMERIC near '123abc from test'";}i:7;a:3:{s:8:"sphinxql";s:34:"select * from test where 123abc>10";s:5:"errno";i:1064;s:5:"error";s:58:"P01: syntax error, unexpected BAD_NUMERIC near '123abc>10'";}i:8;a:3:{s:8:"sphinxql";s:36:"select * from test where `123abc`>10";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:5:{s:2:"id";s:1:"2";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";}}}i:9;a:3:{s:8:"sphinxql";s:22:"select `a22` from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a22";s:2:"21";}i:1;a:1:{s:3:"a22";s:2:"11";}}}i:10;a:3:{s:8:"sphinxql";s:20:"select a22 from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a22";s:2:"21";}i:1;a:1:{s:3:"a22";s:2:"11";}}}i:11;a:3:{s:8:"sphinxql";s:31:"select * from test where a22>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";}i:1;a:5:{s:2:"id";s:1:"1";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";}}}i:12;a:3:{s:8:"sphinxql";s:33:"select * from test where `a22`>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";}i:1;a:5:{s:2:"id";s:1:"1";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";}}}i:13;a:3:{s:8:"sphinxql";s:22:"select `a23` from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a23";s:2:"22";}i:1;a:1:{s:3:"a23";s:2:"12";}}}i:14;a:3:{s:8:"sphinxql";s:20:"select a23 from test";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:1:{s:3:"a23";s:2:"22";}i:1;a:1:{s:3:"a23";s:2:"12";}}}i:15;a:3:{s:8:"sphinxql";s:31:"select * from test where a23>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";}i:1;a:5:{s:2:"id";s:1:"1";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";}}}i:16;a:3:{s:8:"sphinxql";s:33:"select * from test where `a23`>10";s:10:"total_rows";i:2;s:4:"rows";a:2:{i:0;a:5:{s:2:"id";s:1:"2";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"20";s:3:"a22";s:2:"21";s:3:"a23";s:2:"22";}i:1;a:5:{s:2:"id";s:1:"1";s:5:"title";s:3:"bla";s:6:"123abc";s:2:"10";s:3:"a22";s:2:"11";s:3:"a23";s:2:"12";}}}i:17;a:2:{s:8:"sphinxql";s:15:"drop table test";s:14:"total_affected";i:0;}i:18;a:2:{s:8:"sphinxql";s:47:"CREATE TABLE `1a2b3c`(field1 text, field2 text)";s:14:"total_affected";i:0;}i:19;a:3:{s:8:"sphinxql";s:11:"show tables";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:2:{s:5:"Index";s:6:"1a2b3c";s:4:"Type";s:2:"rt";}}}i:20;a:3:{s:8:"sphinxql";s:13:"desc `1a2b3c`";s:10:"total_rows";i:3;s:4:"rows";a:3:{i:0;a:3:{s:5:"Field";s:2:"id";s:4:"Type";s:6:"bigint";s:10:"Properties";s:0:"";}i:1;a:3:{s:5:"Field";s:6:"field1";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}i:2;a:3:{s:5:"Field";s:6:"field2";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}}}i:21;a:2:{s:8:"sphinxql";s:45:"insert into `1a2b3c` values (1, 'bla', 'bla')";s:14:"total_affected";i:1;}i:22;a:3:{s:8:"sphinxql";s:22:"select * from `1a2b3c`";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:3:{s:2:"id";s:1:"1";s:6:"field1";s:3:"bla";s:6:"field2";s:3:"bla";}}}i:23;a:2:{s:8:"sphinxql";s:19:"drop table `1a2b3c`";s:14:"total_affected";i:0;}i:24;a:2:{s:8:"sphinxql";s:46:"CREATE TABLE `a2b3c`(field1 text, field2 text)";s:14:"total_affected";i:0;}i:25;a:3:{s:8:"sphinxql";s:11:"show tables";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:2:{s:5:"Index";s:5:"a2b3c";s:4:"Type";s:2:"rt";}}}i:26;a:3:{s:8:"sphinxql";s:12:"desc `a2b3c`";s:10:"total_rows";i:3;s:4:"rows";a:3:{i:0;a:3:{s:5:"Field";s:2:"id";s:4:"Type";s:6:"bigint";s:10:"Properties";s:0:"";}i:1;a:3:{s:5:"Field";s:6:"field1";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}i:2;a:3:{s:5:"Field";s:6:"field2";s:4:"Type";s:4:"text";s:10:"Properties";s:14:"indexed stored";}}}i:27;a:2:{s:8:"sphinxql";s:44:"insert into `a2b3c` values (1, 'bla', 'bla')";s:14:"total_affected";i:1;}i:28;a:3:{s:8:"sphinxql";s:21:"select * from `a2b3c`";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:3:{s:2:"id";s:1:"1";s:6:"field1";s:3:"bla";s:6:"field2";s:3:"bla";}}}i:29;a:2:{s:8:"sphinxql";s:18:"drop table `a2b3c`";s:14:"total_affected";i:0;}i:30;a:2:{s:8:"sphinxql";s:39:"create table pq (`json` json) type='pq'";s:14:"total_affected";i:0;}i:31;a:2:{s:8:"sphinxql";s:62:"INSERT INTO pq (query, filters) VALUES ('', 'json.target==10')";s:14:"total_affected";i:1;}i:32;a:3:{s:8:"sphinxql";s:56:"call pq ('pq', '{"json":{"target":10}}', 1 as docs_json)";s:10:"total_rows";i:1;s:4:"rows";a:1:{i:0;a:1:{s:2:"id";s:13:"1677721600001";}}}i:33;a:2:{s:8:"sphinxql";s:56:"call pq ('pq', '{"json":{"target":20}}', 1 as docs_json)";s:10:"total_rows";i:0;}i:34;a:2:{s:8:"sphinxql";s:13:"drop table pq";s:14:"total_affected";i:0;}}}
2 changes: 1 addition & 1 deletion test/test_125/model.bin

Large diffs are not rendered by default.

Loading

0 comments on commit f3d248a

Please sign in to comment.