Changeset View
Changeset View
Standalone View
Standalone View
src/parser/KDbParser.cpp
Show All 21 Lines | |||||
22 | #include "KDbParser_p.h" | 22 | #include "KDbParser_p.h" | ||
23 | #include "generated/sqlparser.h" | 23 | #include "generated/sqlparser.h" | ||
24 | 24 | | |||
25 | #include "KDbConnection.h" | 25 | #include "KDbConnection.h" | ||
26 | #include "KDbTableSchema.h" | 26 | #include "KDbTableSchema.h" | ||
27 | 27 | | |||
28 | #include <vector> | 28 | #include <vector> | ||
29 | 29 | | |||
30 | bool parseData(KDbParser *p, const KDbEscapedString &sql); | 30 | bool parseData(); | ||
31 | 31 | | |||
32 | //! Cache | 32 | //! Cache | ||
33 | class ParserStatic | 33 | class ParserStatic | ||
34 | { | 34 | { | ||
35 | public: | 35 | public: | ||
36 | ParserStatic() | 36 | ParserStatic() | ||
37 | : statementTypeStrings({ | 37 | : statementTypeStrings({ | ||
38 | QLatin1String("None"), | 38 | QLatin1String("None"), | ||
Show All 36 Lines | |||||
75 | 75 | | |||
76 | KDbTableSchema *KDbParser::table() | 76 | KDbTableSchema *KDbParser::table() | ||
77 | { | 77 | { | ||
78 | KDbTableSchema *t = d->table; | 78 | KDbTableSchema *t = d->table; | ||
79 | d->table = nullptr; | 79 | d->table = nullptr; | ||
80 | return t; | 80 | return t; | ||
81 | } | 81 | } | ||
82 | 82 | | |||
83 | const KDbTableSchema *KDbParser::table() const | ||||
84 | { | ||||
85 | return const_cast<KDbParser*>(this)->table(); | ||||
86 | } | ||||
87 | | ||||
83 | KDbQuerySchema *KDbParser::query() | 88 | KDbQuerySchema *KDbParser::query() | ||
84 | { | 89 | { | ||
85 | KDbQuerySchema *s = d->query; | 90 | KDbQuerySchema *s = d->query; | ||
86 | d->query = nullptr; | 91 | d->query = nullptr; | ||
87 | return s; | 92 | return s; | ||
88 | } | 93 | } | ||
89 | 94 | | |||
90 | KDbConnection *KDbParser::connection() const | 95 | const KDbQuerySchema *KDbParser::query() const | ||
96 | { | ||||
97 | return const_cast<KDbParser*>(this)->query(); | ||||
98 | } | ||||
99 | | ||||
100 | KDbConnection *KDbParser::connection() | ||||
101 | { | ||||
102 | return d->connection; | ||||
103 | } | ||||
104 | | ||||
105 | const KDbConnection *KDbParser::connection() const | ||||
91 | { | 106 | { | ||
92 | return d->connection; | 107 | return d->connection; | ||
93 | } | 108 | } | ||
94 | 109 | | |||
95 | KDbParserError KDbParser::error() const | 110 | KDbParserError KDbParser::error() const | ||
96 | { | 111 | { | ||
97 | return d->error; | 112 | return d->error; | ||
98 | } | 113 | } | ||
Show All 15 Lines | |||||
114 | { | 129 | { | ||
115 | init(); | 130 | init(); | ||
116 | reset(); | 131 | reset(); | ||
117 | d->sql = sql; | 132 | d->sql = sql; | ||
118 | d->query = query; | 133 | d->query = query; | ||
119 | 134 | | |||
120 | KDbParser *oldParser = globalParser; | 135 | KDbParser *oldParser = globalParser; | ||
121 | KDbField *oldField = globalField; | 136 | KDbField *oldField = globalField; | ||
122 | bool res = parseData(this, sql); | 137 | globalParser = this; | ||
138 | globalField = nullptr; | ||||
139 | bool res = parseData(); | ||||
123 | globalParser = oldParser; | 140 | globalParser = oldParser; | ||
124 | globalField = oldField; | 141 | globalField = oldField; | ||
142 | if (query) { // if existing query was supplied to parse() nullptr should be returned by query() | ||||
143 | d->query = nullptr; | ||||
144 | } | ||||
125 | return res; | 145 | return res; | ||
126 | } | 146 | } | ||
127 | 147 | | |||
128 | void KDbParser::reset() | 148 | void KDbParser::reset() | ||
129 | { | 149 | { | ||
130 | d->reset(); | 150 | d->reset(); | ||
131 | } | 151 | } | ||
132 | 152 | | |||
▲ Show 20 Lines • Show All 84 Lines • Show Last 20 Lines |