1+ /* *********************************************************************************
2+ * MIT License
3+ *
4+ * Copyright (c) 2025-2026 Evgenii Sopov <mrseakg@gmail.com>
5+ *
6+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7+ * of this software and associated documentation files (the "Software"), to deal
8+ * in the Software without restriction, including without limitation the rights
9+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+ * copies of the Software, and to permit persons to whom the Software is
11+ * furnished to do so, subject to the following conditions:
12+ *
13+ * The above copyright notice and this permission notice shall be included in
14+ *all copies or substantial portions of the Software.
15+ *
16+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+ * SOFTWARE.
23+ *
24+ * Official Source Code: https://github.com/wsjcpp/wsjcpp-sql-builder
25+ *
26+ ***********************************************************************************/
27+
28+ #include < iostream>
29+ #include < wsjcpp_sql_builder.h>
30+
31+ int main () {
32+ WsjcppSqlBuilder builder;
33+ builder.deleteFrom (" table4" )
34+ .where ()
35+ .equal (" col1" , " 1" )
36+ .or_ ()
37+ .notEqual (" col2" , " 2" )
38+ .or_ ()
39+ .subCondition ()
40+ .equal (" c3" , " 4" )
41+ // .and_() // be default must be added and
42+ .equal (" col2" , " 5" )
43+ .finishSubCondition ()
44+ .or_ ()
45+ .lessThen (" col4" , 111 )
46+ ;
47+
48+ if (builder.hasErrors ()) {
49+ std::cerr << " Select builder has some errors" << std::endl;
50+ return -1 ;
51+ }
52+ std::string sqlQuery = builder.sql ();
53+ std::string sqlQueryExpected = " DELETE FROM table4 WHERE col1 = '1' OR col2 <> '2' OR (c3 = '4' AND col2 = '5') OR col4 < 111" ;
54+ if (sqlQuery != sqlQueryExpected) {
55+ std::cerr
56+ << " Expected:" << std::endl
57+ << " {" << sqlQueryExpected << " }" << std::endl
58+ << " , but got:" << std::endl
59+ << " {" << sqlQuery << " }" << std::endl
60+ ;
61+ return -1 ;
62+ }
63+
64+ return 0 ;
65+ }
0 commit comments