Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Side by Side Diff: sql/connection.h

Issue 1991503002: [sql] sql::ScopedErrorIgnorer rename to sql::test::ScopedErrorExpecter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restore file rename Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SQL_CONNECTION_H_ 5 #ifndef SQL_CONNECTION_H_
6 #define SQL_CONNECTION_H_ 6 #define SQL_CONNECTION_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <map> 10 #include <map>
(...skipping 21 matching lines...) Expand all
32 32
33 namespace sql { 33 namespace sql {
34 34
35 class ConnectionMemoryDumpProvider; 35 class ConnectionMemoryDumpProvider;
36 class Recovery; 36 class Recovery;
37 class Statement; 37 class Statement;
38 38
39 // To allow some test classes to be friended. 39 // To allow some test classes to be friended.
40 namespace test { 40 namespace test {
41 class ScopedCommitHook; 41 class ScopedCommitHook;
42 class ScopedErrorExpecter;
42 class ScopedScalarFunction; 43 class ScopedScalarFunction;
43 class ScopedMockTimeSource; 44 class ScopedMockTimeSource;
44 } 45 }
45 46
46 // Uniquely identifies a statement. There are two modes of operation: 47 // Uniquely identifies a statement. There are two modes of operation:
47 // 48 //
48 // - In the most common mode, you will use the source file and line number to 49 // - In the most common mode, you will use the source file and line number to
49 // identify your statement. This is a convienient way to get uniqueness for 50 // identify your statement. This is a convienient way to get uniqueness for
50 // a statement that is only used in one place. Use the SQL_FROM_HERE macro 51 // a statement that is only used in one place. Use the SQL_FROM_HERE macro
51 // to generate a StatementID. 52 // to generate a StatementID.
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 468
468 // Returns a pointer to a statically allocated string associated with the 469 // Returns a pointer to a statically allocated string associated with the
469 // last sqlite operation. 470 // last sqlite operation.
470 const char* GetErrorMessage() const; 471 const char* GetErrorMessage() const;
471 472
472 // Return a reproducible representation of the schema equivalent to 473 // Return a reproducible representation of the schema equivalent to
473 // running the following statement at a sqlite3 command-line: 474 // running the following statement at a sqlite3 command-line:
474 // SELECT type, name, tbl_name, sql FROM sqlite_master ORDER BY 1, 2, 3, 4; 475 // SELECT type, name, tbl_name, sql FROM sqlite_master ORDER BY 1, 2, 3, 4;
475 std::string GetSchema() const; 476 std::string GetSchema() const;
476 477
477 // Clients which provide an error_callback don't see the 478 // Clients which provide an error_callback don't see the error-handling at the
478 // error-handling at the end of OnSqliteError(). Expose to allow 479 // end of OnSqliteError(). Expose to allow those clients to work for tests
479 // those clients to work appropriately with ScopedErrorIgnorer in 480 // using ScopedErrorExpecter. |true| if the error is expected.
Mark P 2016/05/23 19:53:27 I'm having trouble understanding this comment. I
Scott Hess - ex-Googler 2016/06/03 00:02:11 This is the same concern you had elsewhere about d
480 // tests. 481 static bool IsExpectedSqliteError(int error);
481 static bool ShouldIgnoreSqliteError(int error);
482 482
483 // Additionally ignores errors which are unlikely to be caused by problems 483 // Return |true| in cases where Extend IsExpectedSqliteError() returns |true|,
Mark P 2016/05/23 19:53:27 Extend? Is this an errant word? If so, delete it.
Scott Hess - ex-Googler 2016/06/03 00:02:11 Done. Errant word.
484 // with the syntax of a SQL statement, or problems with the database schema. 484 // and also in cases which are likely to be caused by the state of the
485 static bool ShouldIgnoreSqliteCompileError(int error); 485 // database, rather than the statement being compiled.
Mark P 2016/05/23 19:53:27 This comment is confusing. It's imply that this r
Scott Hess - ex-Googler 2016/06/03 00:02:11 I dug back into the history of this a bit. It loo
486 static bool IsExpectedSqliteCompileError(int error);
486 487
487 // Collect various diagnostic information and post a crash dump to aid 488 // Collect various diagnostic information and post a crash dump to aid
488 // debugging. Dump rate per database is limited to prevent overwhelming the 489 // debugging. Dump rate per database is limited to prevent overwhelming the
489 // crash server. 490 // crash server.
490 void ReportDiagnosticInfo(int extended_error, Statement* stmt); 491 void ReportDiagnosticInfo(int extended_error, Statement* stmt);
491 492
492 private: 493 private:
493 // For recovery module. 494 // For recovery module.
494 friend class Recovery; 495 friend class Recovery;
495 496
496 // Allow test-support code to set/reset error ignorer. 497 // Allow test-support code to set/reset error expecter.
497 friend class ScopedErrorIgnorer; 498 friend class test::ScopedErrorExpecter;
498 499
499 // Statement accesses StatementRef which we don't want to expose to everybody 500 // Statement accesses StatementRef which we don't want to expose to everybody
500 // (they should go through Statement). 501 // (they should go through Statement).
501 friend class Statement; 502 friend class Statement;
502 503
503 friend class test::ScopedCommitHook; 504 friend class test::ScopedCommitHook;
504 friend class test::ScopedScalarFunction; 505 friend class test::ScopedScalarFunction;
505 friend class test::ScopedMockTimeSource; 506 friend class test::ScopedMockTimeSource;
506 507
507 FRIEND_TEST_ALL_PREFIXES(SQLConnectionTest, CollectDiagnosticInfo); 508 FRIEND_TEST_ALL_PREFIXES(SQLConnectionTest, CollectDiagnosticInfo);
(...skipping 21 matching lines...) Expand all
529 // if database wasn't open in memory. Function is inlined to be a no-op in 530 // if database wasn't open in memory. Function is inlined to be a no-op in
530 // official build. 531 // official build.
531 void AssertIOAllowed() const { 532 void AssertIOAllowed() const {
532 if (!in_memory_) 533 if (!in_memory_)
533 base::ThreadRestrictions::AssertIOAllowed(); 534 base::ThreadRestrictions::AssertIOAllowed();
534 } 535 }
535 536
536 // Internal helper for DoesTableExist and DoesIndexExist. 537 // Internal helper for DoesTableExist and DoesIndexExist.
537 bool DoesTableOrIndexExist(const char* name, const char* type) const; 538 bool DoesTableOrIndexExist(const char* name, const char* type) const;
538 539
539 // Accessors for global error-ignorer, for injecting behavior during tests. 540 // Accessors for global error-expecter, for injecting behavior during tests.
540 // See test/scoped_error_ignorer.h. 541 // See test/scoped_error_expecter.h.
541 typedef base::Callback<bool(int)> ErrorIgnorerCallback; 542 typedef base::Callback<bool(int)> ErrorExpecterCallback;
542 static ErrorIgnorerCallback* current_ignorer_cb_; 543 static ErrorExpecterCallback* current_expecter_cb_;
543 static void SetErrorIgnorer(ErrorIgnorerCallback* ignorer); 544 static void SetErrorExpecter(ErrorExpecterCallback* expecter);
544 static void ResetErrorIgnorer(); 545 static void ResetErrorExpecter();
545 546
546 // A StatementRef is a refcounted wrapper around a sqlite statement pointer. 547 // A StatementRef is a refcounted wrapper around a sqlite statement pointer.
547 // Refcounting allows us to give these statements out to sql::Statement 548 // Refcounting allows us to give these statements out to sql::Statement
548 // objects while also optionally maintaining a cache of compiled statements 549 // objects while also optionally maintaining a cache of compiled statements
549 // by just keeping a refptr to these objects. 550 // by just keeping a refptr to these objects.
550 // 551 //
551 // A statement ref can be valid, in which case it can be used, or invalid to 552 // A statement ref can be valid, in which case it can be used, or invalid to
552 // indicate that the statement hasn't been created yet, has an error, or has 553 // indicate that the statement hasn't been created yet, has an error, or has
553 // been destroyed. 554 // been destroyed.
554 // 555 //
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 794
794 // Stores the dump provider object when db is open. 795 // Stores the dump provider object when db is open.
795 std::unique_ptr<ConnectionMemoryDumpProvider> memory_dump_provider_; 796 std::unique_ptr<ConnectionMemoryDumpProvider> memory_dump_provider_;
796 797
797 DISALLOW_COPY_AND_ASSIGN(Connection); 798 DISALLOW_COPY_AND_ASSIGN(Connection);
798 }; 799 };
799 800
800 } // namespace sql 801 } // namespace sql
801 802
802 #endif // SQL_CONNECTION_H_ 803 #endif // SQL_CONNECTION_H_
OLDNEW
« no previous file with comments | « sql/BUILD.gn ('k') | sql/connection.cc » ('j') | sql/test/scoped_error_expecter.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698