Files
Yogstation/code/modules/bsql/core/query.dm
Jordan Brown c4c057989e Adds BSQL (#38323)
* Add BSQL library v1.1.1.0

* Modify dbcore to use BSQL

* Add missing QDEL_NULL for connectOperation

* Moves BSQL_Shutdown() call to dbcore shutdown

* Fix passing the wrong argument to DBQuery/New()

* Darn it @Jordie0608. Fixes db calls without Connect check

No seriously please make sure I'm not breaking anything

* Queries with a null connection won't runtime

* Fix quoting

* Fix mistake

* Update BSQL to v1.1.2.0

* Update BSQL DMAPI to v1.0.1.0

* Fix connection instatiation

* Does the smart thing in regards to quoting

* Fix braces

* Update BSQL to 1.2.0.0. DMAPI to 1.1.0.0

* Execute/NextRow/MassInsert now have async parameter

* Build BSQL for tests

* Add missing apt source

* Def still need gcc-multilib

* Wut

* Revert "Wut"

This reverts commit d7c98a9a6b27f6db03e9f5cc534650d59d018048.

* Try this then

* Could it really be that simple?

* Literally running out of ideas here

* Update BSQL to v1.2.1.0 DMAPI to v1.1.1.0

* Update BSQL travis version

* Nothing about this makes sense tbqhwyfam

* Whoo boy

* No idea why this isn't working tbh

* Absolute madness

* Ahhhhhhhhhhhhh

* *deep breath*

* "though yet again i was frustrated by failure"

* Add BSQL to Dockerfile

* Pass through MassInsert async param

* BSQL to v1.3.0.0 DMAPI to 1.2.0.0

* Add timeout support

* Wait, something's fucky

* Wtf is this meme?

* Just get good lmao

* Just stop being shit lol

* Stupid verbose logging

* Remove verbosity

* Good god

* BSQL to v1.3.0.1 DMAPI to v1.2.0.1

* BSQL to v1.3.0.2

* Update BSQL travis version

* Update BSQL docker version

* Didn't mean to change that

* Strip connection information from debug logs and make it configgable

* Move this to where CONFIG_GET is defined
2018-07-16 19:24:54 +02:00

36 lines
867 B
Plaintext

/datum/BSQL_Operation/Query
var/last_result_json
var/list/last_result
BSQL_PROTECT_DATUM(/datum/BSQL_Operation/Query)
/datum/BSQL_Operation/Query/CurrentRow()
return last_result
/datum/BSQL_Operation/Query/IsComplete()
//whole different ballgame here
if(BSQL_IS_DELETED(connection))
return TRUE
var/result = world._BSQL_Internal_Call("ReadyRow", connection.id, id)
switch(result)
if("DONE")
//load the data
LoadQueryResult()
return TRUE
if("NOTDONE")
return FALSE
else
BSQL_ERROR(result)
/datum/BSQL_Operation/Query/WaitForCompletion()
. = ..()
if(.)
LoadQueryResult()
/datum/BSQL_Operation/Query/proc/LoadQueryResult()
last_result_json = world._BSQL_Internal_Call("GetRow", connection.id, id)
if(last_result_json)
last_result = json_decode(last_result_json)
else
last_result = null