fixing misc sql syntax errors

This commit is contained in:
Christian Grothoff 2015-05-14 14:28:29 +02:00
parent dcd0e00a48
commit d19b1277d1

View File

@ -62,6 +62,12 @@
PQclear (result); result = NULL; \ PQclear (result); result = NULL; \
} while (0) } while (0)
#define SQLEXEC_IGNORE_ERROR_(conn, sql, result) \
do { \
result = PQexec (conn, sql); \
PQclear (result); result = NULL; \
} while (0)
/** /**
* Handle for a database session (per-thread, for transactions). * Handle for a database session (per-thread, for transactions).
@ -172,6 +178,7 @@ postgres_create_tables (void *cls,
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }
#define SQLEXEC(sql) SQLEXEC_(conn, sql, result); #define SQLEXEC(sql) SQLEXEC_(conn, sql, result);
#define SQLEXEC_INDEX(sql) SQLEXEC_IGNORE_ERROR_(conn, sql, result);
/* Denomination table for holding the publicly available information of /* Denomination table for holding the publicly available information of
denominations keys. The denominations are to be referred to by using denominations keys. The denominations are to be referred to by using
foreign keys. The denominations are deleted by a housekeeping tool; foreign keys. The denominations are deleted by a housekeeping tool;
@ -216,15 +223,15 @@ postgres_create_tables (void *cls,
",balance_curr VARCHAR("TALER_CURRENCY_LEN_STR") NOT NULL" ",balance_curr VARCHAR("TALER_CURRENCY_LEN_STR") NOT NULL"
",details VARCHAR NOT NULL " ",details VARCHAR NOT NULL "
",expiration_date INT8 NOT NULL" ",expiration_date INT8 NOT NULL"
" CONSTRAINT unique_details PRIMARY KEY (reserve_pub,details)" ",PRIMARY KEY (reserve_pub,details)"
");"); ");");
/* Create indices on reserves_in */ /* Create indices on reserves_in */
SQLEXEC ("CREATE INDEX reserves_in_reserve_pub_index" SQLEXEC_INDEX ("CREATE INDEX IF NOT EXISTS reserves_in_reserve_pub_index"
" ON reserves_in (reserve_pub);"); " ON reserves_in (reserve_pub);");
SQLEXEC ("CREATE INDEX reserves_in_reserve_pub_details_index" SQLEXEC_INDEX ("CREATE INDEX IF NOT EXISTS reserves_in_reserve_pub_details_index"
" ON reserves_in (reserve_pub,details);"); " ON reserves_in (reserve_pub,details);");
SQLEXEC ("CREATE INDEX expiration_index" SQLEXEC_INDEX ("CREATE INDEX IF NOT EXISTS expiration_index"
" ON reserves_in (expiration_date);"); " ON reserves_in (expiration_date);");
/* Table with the withdraw operations that have been performed on a reserve. /* Table with the withdraw operations that have been performed on a reserve.
TODO: maybe rename to "reserves_out"? TODO: maybe rename to "reserves_out"?
TODO: is blind_ev really a _primary key_? Is this constraint useful? */ TODO: is blind_ev really a _primary key_? Is this constraint useful? */
@ -237,8 +244,8 @@ postgres_create_tables (void *cls,
",reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)" ",reserve_sig BYTEA NOT NULL CHECK (LENGTH(reserve_sig)=64)"
");"); ");");
/* Index blindcoins(reserve_pub) for get_reserves_blindcoins statement */ /* Index blindcoins(reserve_pub) for get_reserves_blindcoins statement */
SQLEXEC ("CREATE INDEX collectable_blindcoins_reserve_pub_index ON" SQLEXEC_INDEX ("CREATE INDEX collectable_blindcoins_reserve_pub_index ON"
" collectable_blindcoins (reserve_pub)"); " collectable_blindcoins (reserve_pub)");
/* Table with coins that have been (partially) spent, used to detect /* Table with coins that have been (partially) spent, used to detect
double-spending. double-spending.
TODO: maybe rename to "spent_coins"? TODO: maybe rename to "spent_coins"?
@ -302,7 +309,7 @@ postgres_create_tables (void *cls,
")"); ")");
SQLEXEC("CREATE TABLE IF NOT EXISTS refresh_melt" SQLEXEC("CREATE TABLE IF NOT EXISTS refresh_melt"
"(" "("
" session_hash BYTEA NOT NULL CHECK(LENGTH(session_hash=64)) REFERENCES refresh_sessions (session_hash) " " session_hash BYTEA NOT NULL CHECK(LENGTH(session_hash)=64) REFERENCES refresh_sessions (session_hash) "
",coin_pub BYTEA NOT NULL CHECK(LENGTH(coin_pub)=32) REFERENCES known_coins (coin_pub) " ",coin_pub BYTEA NOT NULL CHECK(LENGTH(coin_pub)=32) REFERENCES known_coins (coin_pub) "
",coin_sig BYTEA NOT NULL CHECK(LENGTH(coin_sig)=64)" ",coin_sig BYTEA NOT NULL CHECK(LENGTH(coin_sig)=64)"
",denom_pub BYTEA NOT NULL " ",denom_pub BYTEA NOT NULL "
@ -421,10 +428,10 @@ postgres_prepare (PGconn *db_conn)
PREPARE ("update_reserve", PREPARE ("update_reserve",
"UPDATE reserves " "UPDATE reserves "
"SET" "SET"
"expiration_date=$1 " " expiration_date=$1 "
",current_balance_val=$2 " ",current_balance_val=$2 "
",current_balance_frac=$3 " ",current_balance_frac=$3 "
"WHERE current_balance_curr=$4 AND reserve_pub=$5 ", "WHERE current_balance_curr=$4 AND reserve_pub=$5",
5, NULL); 5, NULL);
PREPARE ("create_reserves_in_transaction", PREPARE ("create_reserves_in_transaction",
"INSERT INTO reserves_in (" "INSERT INTO reserves_in ("