Commit Graph

12 Commits

Author SHA1 Message Date
skull132
a3ec0cf45d Better SQL prepared statements (#2474)
The system used to be of complexity O(n^2). Essentially two for loops running per every argument. Which ended up being surprisingly slow (there were instances where I saw the argument parser as using quite a lot of CPU time).

This replaces it with a more linear algorithm. It's somewhere near O(n) where n is the length of the unparsed query. Which is more stable and faaaster. This comes with two changes, however:

Parameters inside the query now have to be delimited from both sides with : (colons). The alternative to this would be to use something like $n or just assume that space marks the end of a marker. Only the former is workable, the latter would break a few queries already.
Arguments in the argument array no longer have to be prefixed by : (colons). So, while in the query you would write :thing:, you'd initialize the array of args as: list("thing" = somevar). It could be made to work without it, but eh, I think this is fine.
Argument validation is slightly weaker. What I mean by this is that with the old system, unused keys would result in an error. This is no longer a thing. Missing keys will still result in an error, however.
One more improvement: double delimiting removes an edge case where if key A partially covers key B, depending on the order, key A would mangle key B.
Updated and tested all queries that I could find. So this should be good.
2017-05-29 21:17:41 +03:00
Ron
790480c8da Removes all \red and \blue's (#2309)
Removes all \red's and \blues in favor of span classes. \red things that were bold were replaced with danger because it's warning but bold.
2017-05-21 12:07:57 +03:00
Werner
59e7377798 UDP Logging (#1997)
This implements UDP Logging with GELF.
It will allow full text search over all the logs and attributes sent over GELF to the log server.
2017-04-01 23:47:00 +03:00
skull132
c7352e45a5 Unit tests - Tag matcher (#1237)
Clears out all bad HTML tags noted by the tag matcher unit test.
2016-12-18 11:54:05 +02:00
skull132
3663ddcfed Welcome Screen (#535)
The idea is to consolidate all of the spam that you see on the lower right panel into one concrete, semi-persistent pop-up window. Utilizing bootstrap, it'll show you a neat welcome screen, the message of the day, staff memos (if accessible), and a personalized set of notifications. The system is set up for easy future expansion, as well.
2016-07-11 16:48:58 +03:00
skull132
8383f1c03b Generalizing establish_db_connection() and setup_database_connection()
Both procs are now generalized, and accept a DBConnection object as an argument. Due to this generalization, all instances of `establish_db_connection()` must be renamed to `establish_db_connection(dbcon)`.
Also added variable `failed_connections` to the definition of DBConnection.
2016-03-04 00:53:37 +02:00
skull132
c2b43989ed Warning fixes
0 is considered null, insetad of an integer. Silly.
2016-02-21 16:26:12 +02:00
skull132
be4840f920 Warnings Fixes
For editing them, and for editing them.
2016-02-16 01:28:57 +02:00
skull132
d0b8bb018a Typo
Information is spelled properly.
2016-02-10 13:29:35 +02:00
skull132
6d19ca3ad4 Fixes #52
Fixes to the ParseArguments() proc and the warnings panel.
2016-02-06 12:07:18 +02:00
skull132
5da7e3d699 Player Notes SQL
Adds the SQL based notes system. Partially refractored to use the new DB procs and look neater.
2016-01-19 14:55:01 +02:00
skull132
9310018dbd SQL Warnings
Adds the SQL based warning system.
2016-01-19 00:27:50 +02:00