public void Clear() { statements.Clear(); statementsAboutSubject.Clear(); statementsAboutObject.Clear(); distinct = true; }
public void RunAddBuffer() { if (addStatementBuffer.Count == 0) { return; } // TODO: We compute the hash of each resource 2 times. bool insertCombined = sql.connection.SupportsInsertCombined; StringBuilder valueInsertions = new StringBuilder(); StringBuilder statementInsertions = new StringBuilder(); if (insertCombined) { valueInsertions.Append("INSERT " + sql.connection.ValueInsertKeywords + " INTO " + sql.prefix + "_values "); } if (insertCombined) { statementInsertions.Append("INSERT " + sql.connection.StatementInsertKeywords + " INTO " + sql.prefix + "_statements "); } bool firstValueInsert = true; // only used if insertCombined is true StatementList statements = addStatementBuffer; for (int i = 0; i < statements.Count; i++) { Statement statement = (Statement)statements[i]; sql.AddValue(statement.Subject, valueInsertions, insertCombined, ref firstValueInsert); sql.AddValue(statement.Predicate, valueInsertions, insertCombined, ref firstValueInsert); sql.AddValue(statement.Object, valueInsertions, insertCombined, ref firstValueInsert); sql.AddValue(statement.Meta, valueInsertions, insertCombined, ref firstValueInsert); if (!insertCombined) { statementInsertions.Append("INSERT " + sql.connection.StatementInsertKeywords + " INTO " + sql.prefix + "_statements "); } if (i > 0) { statementInsertions.Append('('); } statementInsertions.Append('('); statementInsertions.Append('\''); statementInsertions.Append(sql.GetHash(statement.Subject)); statementInsertions.Append('\''); statementInsertions.Append(','); statementInsertions.Append('\''); statementInsertions.Append(sql.GetHash(statement.Predicate)); statementInsertions.Append('\''); statementInsertions.Append(','); statementInsertions.Append('\''); statementInsertions.Append(sql.GetHash(statement.Object)); statementInsertions.Append('\''); statementInsertions.Append(','); statementInsertions.Append('\''); statementInsertions.Append(sql.GetHash(statement.Meta)); statementInsertions.Append('\''); if (i == statements.Count - 1 || !insertCombined) { statementInsertions.Append(");"); } else { statementInsertions.Append(")"); } } addStatementBuffer.Clear(); if (insertCombined) { valueInsertions.Append(';'); } if (Debug) { Console.Error.WriteLine(valueInsertions.ToString()); } sql.connection.RunCommand(valueInsertions.ToString()); if (Debug) { Console.Error.WriteLine(statementInsertions.ToString()); } sql.connection.RunCommand(statementInsertions.ToString()); }