@@ -135,6 +135,48 @@ namespace async_postgres::lua {
135
135
return 0 ;
136
136
}
137
137
138
+ lua_protected_fn (describePrepared) {
139
+ lua->CheckType (1 , async_postgres::connection_meta);
140
+ lua->CheckType (2 , GLua::Type::String);
141
+ lua->CheckType (3 , GLua::Type::Function);
142
+
143
+ auto state = lua_connection_state ();
144
+ if (state->query ) {
145
+ throw std::runtime_error (" query already in progress" );
146
+ }
147
+
148
+ async_postgres::DescribePreparedCommand command = {lua->GetString (2 )};
149
+ async_postgres::Query query = {std::move (command)};
150
+
151
+ if (lua->IsType (3 , GLua::Type::Function)) {
152
+ query.callback = GLua::AutoReference (lua, 3 );
153
+ }
154
+
155
+ state->query = std::move (query);
156
+ return 0 ;
157
+ }
158
+
159
+ lua_protected_fn (describePortal) {
160
+ lua->CheckType (1 , async_postgres::connection_meta);
161
+ lua->CheckType (2 , GLua::Type::String);
162
+ lua->CheckType (3 , GLua::Type::Function);
163
+
164
+ auto state = lua_connection_state ();
165
+ if (state->query ) {
166
+ throw std::runtime_error (" query already in progress" );
167
+ }
168
+
169
+ async_postgres::DescribePortalCommand command = {lua->GetString (2 )};
170
+ async_postgres::Query query = {std::move (command)};
171
+
172
+ if (lua->IsType (3 , GLua::Type::Function)) {
173
+ query.callback = GLua::AutoReference (lua, 3 );
174
+ }
175
+
176
+ state->query = std::move (query);
177
+ return 0 ;
178
+ }
179
+
138
180
lua_protected_fn (reset) {
139
181
lua->CheckType (1 , async_postgres::connection_meta);
140
182
@@ -175,6 +217,8 @@ void register_connection_mt(GLua::ILuaInterface* lua) {
175
217
register_lua_fn (queryParams);
176
218
register_lua_fn (prepare);
177
219
register_lua_fn (queryPrepared);
220
+ register_lua_fn (describePrepared);
221
+ register_lua_fn (describePortal);
178
222
register_lua_fn (reset);
179
223
register_lua_fn (setNotifyCallback);
180
224
0 commit comments