From 765c2605cd0abf2b4431051142f09e2676584222 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 16 Apr 2017 15:11:00 +0200 Subject: qlite: cleanup, fix nullity issues --- qlite/src/insert_builder.vala | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) (limited to 'qlite/src/insert_builder.vala') diff --git a/qlite/src/insert_builder.vala b/qlite/src/insert_builder.vala index 51030294..91388f69 100644 --- a/qlite/src/insert_builder.vala +++ b/qlite/src/insert_builder.vala @@ -6,14 +6,14 @@ public class InsertBuilder : StatementBuilder { // INSERT [OR ...] private bool replace_val; - private string or_val; + private string? or_val; // INTO [...] private Table table; private string table_name; // VALUES [...] - private StatementBuilder.Field[] fields; + private StatementBuilder.AbstractField[] fields = {}; internal InsertBuilder(Database db) { base(db); @@ -41,31 +41,13 @@ public class InsertBuilder : StatementBuilder { } public InsertBuilder value(Column column, T value) { - if (fields == null) { - fields = { new StatementBuilder.Field(column, value) }; - } else { - StatementBuilder.Field[] fields_new = new StatementBuilder.Field[fields.length+1]; - for (int i = 0; i < fields.length; i++) { - fields_new[i] = fields[i]; - } - fields_new[fields.length] = new Field(column, value); - fields = fields_new; - } + fields += new Field(column, value); return this; } public InsertBuilder value_null(Column column) throws DatabaseError { if (column.not_null) throw new DatabaseError.ILLEGAL_QUERY(@"Can't set non-null column $(column.name) to null"); - if (fields == null) { - fields = { new NullField(column) }; - } else { - StatementBuilder.Field[] fields_new = new StatementBuilder.Field[fields.length+1]; - for (int i = 0; i < fields.length; i++) { - fields_new[i] = fields[i]; - } - fields_new[fields.length] = new NullField(column); - fields = fields_new; - } + fields += new NullField(column); return this; } @@ -77,11 +59,11 @@ public class InsertBuilder : StatementBuilder { value_qs += ", "; fields_text += ", "; } - fields_text += fields[i].column.name; + fields_text += ((!)fields[i].column).name; value_qs += "?"; } string sql = replace_val ? "REPLACE" : "INSERT"; - if (!replace_val && or_val != null) sql += @" OR $or_val"; + if (!replace_val && or_val != null) sql += @" OR $((!)or_val)"; sql += @" INTO $table_name ( $fields_text ) VALUES ($value_qs)"; Statement stmt = db.prepare(sql); for (int i = 0; i < fields.length; i++) { -- cgit v1.2.3-54-g00ecf