wunderbread-ar-extensions 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +131 -0
- data/README +156 -0
- data/Rakefile +99 -0
- data/config/database.yml +7 -0
- data/config/database.yml.template +7 -0
- data/config/mysql.schema +72 -0
- data/config/postgresql.schema +39 -0
- data/db/migrate/generic_schema.rb +87 -0
- data/db/migrate/mysql_schema.rb +31 -0
- data/db/migrate/oracle_schema.rb +5 -0
- data/db/migrate/version.rb +4 -0
- data/init.rb +29 -0
- data/lib/ar-extensions.rb +5 -0
- data/lib/ar-extensions/adapters/abstract_adapter.rb +146 -0
- data/lib/ar-extensions/adapters/jdbcmysql.rb +10 -0
- data/lib/ar-extensions/adapters/mysql.rb +10 -0
- data/lib/ar-extensions/adapters/oracle.rb +14 -0
- data/lib/ar-extensions/adapters/postgresql.rb +9 -0
- data/lib/ar-extensions/adapters/sqlite.rb +7 -0
- data/lib/ar-extensions/csv.rb +309 -0
- data/lib/ar-extensions/extensions.rb +506 -0
- data/lib/ar-extensions/finder_options.rb +208 -0
- data/lib/ar-extensions/finder_options/mysql.rb +6 -0
- data/lib/ar-extensions/finders.rb +95 -0
- data/lib/ar-extensions/foreign_keys.rb +70 -0
- data/lib/ar-extensions/fulltext.rb +62 -0
- data/lib/ar-extensions/fulltext/mysql.rb +44 -0
- data/lib/ar-extensions/import.rb +348 -0
- data/lib/ar-extensions/import/jdbcmysql.rb +5 -0
- data/lib/ar-extensions/import/mysql.rb +5 -0
- data/lib/ar-extensions/import/mysql_generic.rb +41 -0
- data/lib/ar-extensions/import/postgresql.rb +0 -0
- data/lib/ar-extensions/import/sqlite.rb +22 -0
- data/lib/ar-extensions/insert_select.rb +184 -0
- data/lib/ar-extensions/insert_select/mysql.rb +6 -0
- data/lib/ar-extensions/synchronize.rb +30 -0
- data/lib/ar-extensions/temporary_table.rb +124 -0
- data/lib/ar-extensions/temporary_table/mysql.rb +3 -0
- data/lib/ar-extensions/util/sql_generation.rb +27 -0
- data/lib/ar-extensions/util/support_methods.rb +43 -0
- data/lib/ar-extensions/version.rb +9 -0
- metadata +107 -0
data/ChangeLog
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
2009-03-16 zdennis <zach.dennis@gmail.com>
|
2
|
+
|
3
|
+
* fixed Rails 2.3.1 and 2.3.2 compatibility issue (Stephen Heuer)
|
4
|
+
|
5
|
+
2009-02-09 zdennis <zach.dennis@gmail.com>
|
6
|
+
|
7
|
+
* fixed issue in http://zdennis.lighthouseapp.com/projects/14379/tickets/14-join-table-conditions-broken
|
8
|
+
* Updated usage of Inflector to point to ActiveSupport::Inflector
|
9
|
+
* Fixed bug where finder conditions which use arext-suffixed keys and normal field keys would fail when using a conditions hash. (Gabe da Silveira)
|
10
|
+
* added timestamps options to not automatically add timestamps even if record timestamps is disabled in ActiveRecord::Base (Thibaud Guillaume-Gentil)
|
11
|
+
* Updated to use alias_method_chain so that multiple aliased finders remain intact (Marcus Crafter)
|
12
|
+
|
13
|
+
2007-07-20 zdennis <zdennis@dhcp-22.atomicobject.localnet>
|
14
|
+
|
15
|
+
* Added patch from Michael Flester to fix bug with created_at/updated_at fields to use proper timezone.
|
16
|
+
|
17
|
+
2007-07-18 zdennis <zdennis@dhcp-22.atomicobject.localnet>
|
18
|
+
|
19
|
+
* Added patch for Oracle support from Michael Flester.
|
20
|
+
|
21
|
+
2007-05-05 zdennis <zdennis@elijah.local>
|
22
|
+
|
23
|
+
* Added ActiveRecord::Base::AbstractAdapter#synchronize method which allows a mass re-synchronization of ActiveRecord instances. This is similar to ActiveRecord::Base#reload except that it works on multiple instances at a time rather then one. This sends one query for all instances rather then 1 per instance reloaded.
|
24
|
+
|
25
|
+
* Fixed bug with URI encoded strings with a workaround in the Comparison extension. ActiveRecord needs to be fixed to not use the String#% method so strings that do contains percentage signs will not fail
|
26
|
+
|
27
|
+
* Applied patch from Grant Goodale to allow the Like extension to support arrays when using the '_contains' suffix
|
28
|
+
|
29
|
+
2007-03-14 zdennis <zdennis@elijah.xrite.com>
|
30
|
+
|
31
|
+
* Fixed a bug by renaming the alias for the ActiveRecord::Base#quote method in finders.rb. See rubyforge bug #8996
|
32
|
+
|
33
|
+
* Made a .gemspec for ar-extensions
|
34
|
+
|
35
|
+
2007-03-13 zdennis <zdennis@elijah>
|
36
|
+
|
37
|
+
* Added :datetime searching support for better finder support.
|
38
|
+
|
39
|
+
2007-02-11 zdennis <zdennis@admin.aries>
|
40
|
+
|
41
|
+
* Updated to_csv and import functionality to work with Sqlite, Sqlite3, PostgreSQL and MySQL
|
42
|
+
|
43
|
+
* Updated RDOC for import, to_csv, better finders, temporary tables and foreign key support
|
44
|
+
|
45
|
+
2007-01-29 zdennis <zdennis@mktec.com>
|
46
|
+
|
47
|
+
* Added initial support for temporary tables and permanent like tables.
|
48
|
+
|
49
|
+
2007-01-24 zdennis <zdennis@mktec.com>
|
50
|
+
|
51
|
+
* Added dependency for Mocha 0.4.0 or higher for testing
|
52
|
+
|
53
|
+
* Fixed bug for import functionality where it was never actually splitting up values correctly (thx to Mark Van Holstyn!!)
|
54
|
+
|
55
|
+
2007-01-09 zdennis <zdennis@aries>
|
56
|
+
|
57
|
+
* Added support for embedded to_csv includes
|
58
|
+
|
59
|
+
2007-01-07 zdennis <zdennis@aries>
|
60
|
+
|
61
|
+
* Added fix to init.rb to only load CSV functionality if FasterCSV
|
62
|
+
is available, otherwise print a message to STDERR and continue.
|
63
|
+
|
64
|
+
* Added fix to tests/boot.rb which solves fixture_path issues in
|
65
|
+
ActiveRecord 1.14.4 and earlier. The fix is included Rails trunk
|
66
|
+
and will be available in Rails 1.2.
|
67
|
+
|
68
|
+
2007-01-05 zdennis <zdennis@aries>
|
69
|
+
|
70
|
+
* Added ActiveRecord::Extensions::VERSION module which has the following constants: MAJOR, MINOR, REVISION
|
71
|
+
|
72
|
+
* Running rake tests are now smart enough to rebuild the database if they are required based on schema_info table.
|
73
|
+
|
74
|
+
* Added schema_info table for test database schemas.
|
75
|
+
|
76
|
+
2006-12-29 zdennis <zdennis@aries>
|
77
|
+
|
78
|
+
* Updated the Rakefile to run an external ruby process when running test files rather then in the same ruby process that runs the Rakefile
|
79
|
+
|
80
|
+
* Updated the directory structure of lib/ to solve namespace issues.
|
81
|
+
|
82
|
+
2006-12-22 Zach Dennis <zdennis@silver.dennis.network>
|
83
|
+
|
84
|
+
* Added rake tasks for sqlite and sqlite3 databases
|
85
|
+
|
86
|
+
* Added "does_not_match" as a suffix to better finders when working with Regular Expressions
|
87
|
+
|
88
|
+
* Added "not_between" suffix to better finders when working with Ranges
|
89
|
+
|
90
|
+
2006-12-17 zdennis <zdennis@aries>
|
91
|
+
|
92
|
+
* Added :only and :except options to to_csv method. Forcing
|
93
|
+
compatibility with http://blog.integralimpressions.com/articles/2006/09/01/tocsv-plugin
|
94
|
+
|
95
|
+
* Changed to_csv option :headers take a boolean rather then an
|
96
|
+
array of column names.
|
97
|
+
|
98
|
+
* Added rake task db:prepare_<adapter_name> to build test
|
99
|
+
database.
|
100
|
+
|
101
|
+
2006-12-16 Zach Dennis <zdennis@silver.dennis.network>
|
102
|
+
|
103
|
+
* Added more tests for better finder support
|
104
|
+
|
105
|
+
* Added to_csv support for Arrays returned by ActiveRecord::Base.find
|
106
|
+
|
107
|
+
* Refactored ActiveRecord::Extensions::Registry to use an Array instead of hash
|
108
|
+
|
109
|
+
2006-12-06 Zach Dennis <zdennis@silver.dennis.network>
|
110
|
+
|
111
|
+
* PostgreSQL has tested support for everything MySQL has except for Full Text Searching. This is not implemented.
|
112
|
+
|
113
|
+
* Refactored how import and full text searching implementation is handled, this is largely handled by duck typing certain method calls.
|
114
|
+
|
115
|
+
* Added generic import support for any adapter that doesn't support multi-value insert statements. This provides generic support which is guaranteed to be no slower then ActiveRecord#create.
|
116
|
+
|
117
|
+
2006-11-23 Zach Dennis <zdennis@silver.dennis.network>
|
118
|
+
|
119
|
+
* Added finder support for PostgreSQL including Regexp Searching. (No full text searching though)
|
120
|
+
|
121
|
+
* Fixed bug in finders.rb where NULL searches were not correctly being translated into IS NULL when doing { :column => nil }
|
122
|
+
|
123
|
+
2006-11-20 Zach Dennis <zach.dennis@gmail.com>
|
124
|
+
|
125
|
+
* Refactored core finder components out into ActiveRecord extensions
|
126
|
+
|
127
|
+
* Duck typing support for any object that is passed in to a conditions hash. ie: MyModel.find( :all, :conditions=>{ :name=>NameSearchObject.new } )
|
128
|
+
|
129
|
+
* Duck typing support for any object that is passed in as a condition. ie: MyModel.find( :all, :conditions=>SearchObject.new )
|
130
|
+
|
131
|
+
|
data/README
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
LICENSE
|
2
|
+
----------
|
3
|
+
This is licensed under the ruby license.
|
4
|
+
|
5
|
+
Author: Zach Dennis
|
6
|
+
Web Site: http://www.continuousthinking.com/tags/arext
|
7
|
+
Email: zach.dennis@gmail.com
|
8
|
+
|
9
|
+
- For How-To information see http://www.continuousthinking.com/tags/arext
|
10
|
+
- For project information and feedback please consult http://rubyforge.org/projects/arext/
|
11
|
+
- For release information please see below
|
12
|
+
|
13
|
+
ActiveRecord::Extensions 0.8.2
|
14
|
+
------------------------------
|
15
|
+
March 16th, 2009
|
16
|
+
- Rails 2.3.1 and 2.3.2 compatibility added
|
17
|
+
- Rails 2.1.2 and 2.2.2 compatibility preserved
|
18
|
+
|
19
|
+
AciveRecord::Extensions 0.7.0
|
20
|
+
-----------------------------
|
21
|
+
July 20th, 2007
|
22
|
+
- Fixes timezone issue (thanks Michael Flester)
|
23
|
+
- Adds better finder and import support for Oracle (thanks Michael Flester)
|
24
|
+
- Committed patch to fix MySQL query padding, thanks to Gabe da Silveira
|
25
|
+
- Added functionality for MySQL to work with created_on, created_at, updated_on or updated_at fields
|
26
|
+
- Added more test coverage for import functionality
|
27
|
+
|
28
|
+
ActiveRecord::Extensions 0.6.0
|
29
|
+
------------------------------
|
30
|
+
May 5th, 2007
|
31
|
+
- Fixed bug with URI escaped strings and the Comparison better finder extension
|
32
|
+
- Added support for arrays with the Like better finder extension when using the '_contains' suffix
|
33
|
+
- Added 'synchronize' support for ActiveRecord::Base instances when using Import functionality
|
34
|
+
|
35
|
+
ActiveRecord::Extensions 0.5.2
|
36
|
+
------------------------------
|
37
|
+
March 14th, 2007
|
38
|
+
- Fixed Rubyforge bug #8996 by renaming alias in finders.rb to the ActiveRecord::Base#quote method
|
39
|
+
|
40
|
+
ActiveRecord::Extensions 0.5.1
|
41
|
+
------------------------------
|
42
|
+
March 14th, 2007
|
43
|
+
- Released as a rubygem
|
44
|
+
- Added a .gemspec file
|
45
|
+
|
46
|
+
ActiveRecord::Extensions 0.5.0
|
47
|
+
------------------------------
|
48
|
+
March 13th, 2007
|
49
|
+
- Added Time based query support which works on ActiveRecord columns which match a type supported by :datetime
|
50
|
+
|
51
|
+
ActiveRecord::Extensions 0.4.0
|
52
|
+
------------------------------
|
53
|
+
February 11th, 2007
|
54
|
+
- Added to_csv functionality
|
55
|
+
- Added temporary table support (MySQL)
|
56
|
+
- Added foreign key support (MySQL)
|
57
|
+
- Updated tests to keep schema information. Test database will automatically rebuild themselves if they are out of sync
|
58
|
+
- Added dependency for Mocha 0.4.0 or higher for tests
|
59
|
+
|
60
|
+
ActiveRecord::Extensions 0.3.0
|
61
|
+
------------------------------
|
62
|
+
December 29th, 2006
|
63
|
+
- Updates to the lib/ directory structure to avoid namespace issues.
|
64
|
+
- Updates to the Rakefile to run an external ruby process for tests rather then the same
|
65
|
+
ruby process that runs the rake tasks
|
66
|
+
|
67
|
+
ActiveRecord::Extensions 0.2.0
|
68
|
+
------------------------------
|
69
|
+
December 22nd, 2006
|
70
|
+
- Updates to_csv method for arrays returned by ActiveRecord::Base.find
|
71
|
+
- Adds does_not_match suffix for regular expression based conditions, ie: :field_does_not_match => /regex/
|
72
|
+
- Adds not_between suffix for ange based conditions, ie: :id_not_between => ( 0 .. 1 )
|
73
|
+
- Adds SQLite and SQLite3 support for better finders.
|
74
|
+
- Updates rake tasks for sqlite and sqlite3.
|
75
|
+
- Added rake tasks to use database migrations rather then raw SQL schema files.
|
76
|
+
|
77
|
+
ActiveRecord::Extensions 0.1.0
|
78
|
+
-------------------------------
|
79
|
+
December 16th, 2006
|
80
|
+
- Adds to_csv method to arrays returned by ActiveRecord::Base.find.
|
81
|
+
- Fixes bug in ActiveRecord::Extensions::Registry when processing key/value pairs where
|
82
|
+
the order of certain Extensions was not handled correctly due to Hash usage.
|
83
|
+
- Refactoring of ActiveRecord::Extensions::Registry
|
84
|
+
- Added more tests for better finder support
|
85
|
+
|
86
|
+
ActiveRecord::Extensions 0.0.6
|
87
|
+
------------------------------
|
88
|
+
December 5th, 2006
|
89
|
+
- Added generic support for import functionality for all adapters
|
90
|
+
- Includes rake testing tasks for postgresql
|
91
|
+
- Includes postgresql support for all extensions except for full text searching (which is only mysql)
|
92
|
+
- Refactored directory structure of tests, import functionality and fulltext functionality
|
93
|
+
|
94
|
+
|
95
|
+
ActiveRecord::Extensions 0.0.5
|
96
|
+
------------------------------
|
97
|
+
October 20th, 2006.
|
98
|
+
- Fixes two bugs which broke normal ActiveRecord behavior
|
99
|
+
- Fully complaint with Rails 1.1.0 thru 1.1.6 (and all ActiveRecord versions released with those)
|
100
|
+
- Inlcudes new Rakefile
|
101
|
+
- Includes rake task "test:mysql" which allows ActiveRecord::Extensions to be tested with mysql
|
102
|
+
- Includes rake test "test:activerecord:mysql" which allows ActiveRecord's tests to be tested with the
|
103
|
+
ActiveRecord::Extensions library
|
104
|
+
|
105
|
+
|
106
|
+
ActiveRecord::Extensions 0.0.4
|
107
|
+
-------------------------------
|
108
|
+
August 26th, 2006. Released at RubyConf*MI.
|
109
|
+
September 24th, 2006, Rubyforge release.
|
110
|
+
- Inlcudes "Better Finder" support for ActiveRecord
|
111
|
+
http://blogs.mktec.com/zdennis/pages/ARE_finders
|
112
|
+
|
113
|
+
|
114
|
+
ActiveRecord::Extensions 0.0.3
|
115
|
+
-------------------------------
|
116
|
+
Released.... ????
|
117
|
+
- the project has been named ActiveRecord::Extensions.
|
118
|
+
|
119
|
+
|
120
|
+
ActiveRecord::Optimizations 0.0.2
|
121
|
+
---------------------------------
|
122
|
+
July 20th, 11:27pm, Zach Dennis
|
123
|
+
|
124
|
+
This includes some of the optimizations for the ActiveRecord::Base. This release only supports the MysqlAdapter, although other adapters will be supported in upcoming releases.
|
125
|
+
|
126
|
+
HOW-TO USAGE
|
127
|
+
------------
|
128
|
+
Require the two files in the lib/ directory and then create records using:
|
129
|
+
Model.create array_of_hashes
|
130
|
+
|
131
|
+
Example:
|
132
|
+
class LogEntry < ActiveRecord::Base ; end
|
133
|
+
LogEntry.import [ { :log_entry_name=>"Name" }, {:log_entry_name=>"Name2"}, ... ], :optimize=>true
|
134
|
+
|
135
|
+
Using the optimized create method will return the number of inserts performed, rather then an array of LogEntry objects. This currently skips model validation.
|
136
|
+
|
137
|
+
|
138
|
+
CHANGELOG
|
139
|
+
----------
|
140
|
+
0.0.2
|
141
|
+
- add some documentation to the updated methods for ActiveRecord and MysqlAdapter
|
142
|
+
- renamed the create optimizatin to import. Multi-value inserts can be obtained using ActiveRecord::Base.import
|
143
|
+
0.0.1
|
144
|
+
- introduced updates to ActiveRecord::Base.create to support multi-value inserts
|
145
|
+
|
146
|
+
|
147
|
+
UPCOMING
|
148
|
+
----------
|
149
|
+
- model validation on imports
|
150
|
+
- postgresql support for imports
|
151
|
+
- ability to use regular expressions for db searches
|
152
|
+
- ability to use db functions
|
153
|
+
- temporary table support
|
154
|
+
- memory table support
|
155
|
+
- complex update with on duplicate key update support
|
156
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/testtask'
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'jeweler'
|
7
|
+
Jeweler::Tasks.new do |s|
|
8
|
+
s.name = %q{ar-extensions}
|
9
|
+
s.summary = %q{Extends ActiveRecord functionality.}
|
10
|
+
s.email = %q{zach.dennis@gmail.com}
|
11
|
+
s.homepage = %q{http://www.continuousthinking.com/tags/arext}
|
12
|
+
s.description = %q{Extends ActiveRecord functionality by adding better finder/query support, as well as supporting mass data import, foreign key, CSV and temporary tables}
|
13
|
+
s.require_path = 'lib'
|
14
|
+
s.has_rdoc = true
|
15
|
+
s.authors = ["Zach Dennis", "Mark Van Holstyn"]
|
16
|
+
s.files = FileList[ 'init.rb', 'db/**/*', 'Rakefile', 'ChangeLog', 'README', 'config/**/*', 'lib/**/*.rb', 'test/**/*' ]
|
17
|
+
s.rdoc_options = ["--main", "README"]
|
18
|
+
s.extra_rdoc_files = ["README"]
|
19
|
+
s.add_dependency(%q<activerecord>, [">= 2.1.2"])
|
20
|
+
end
|
21
|
+
rescue LoadError
|
22
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
23
|
+
end
|
24
|
+
|
25
|
+
DIR = File.dirname( __FILE__ )
|
26
|
+
|
27
|
+
task :default => [ "test:mysql" ]
|
28
|
+
|
29
|
+
task :boot do
|
30
|
+
require File.expand_path( File.join( DIR, 'lib', 'ar-extensions' ) )
|
31
|
+
require File.expand_path( File.join( DIR, 'tests', 'connections', "native_#{ENV['ARE_DB']}", 'connection' ) )
|
32
|
+
require File.expand_path( File.join( DIR, 'db/migrate/version' ) )
|
33
|
+
end
|
34
|
+
|
35
|
+
ADAPTERS = %w( mysql postgresql sqlite sqlite3 oracle )
|
36
|
+
|
37
|
+
namespace :db do
|
38
|
+
|
39
|
+
namespace :test do
|
40
|
+
ADAPTERS.each do |adapter|
|
41
|
+
desc "builds test database for #{adapter}"
|
42
|
+
task "prepare_#{adapter}" do |t|
|
43
|
+
file2run = File.join( DIR, 'tests/prepare.rb' )
|
44
|
+
system( "ruby #{file2run} #{adapter}" )
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
namespace :test do
|
52
|
+
|
53
|
+
ADAPTERS.each do |adapter|
|
54
|
+
desc "test base extensions for #{adapter}"
|
55
|
+
task adapter do |t|
|
56
|
+
ENV['ARE_DB'] = adapter
|
57
|
+
|
58
|
+
task = Rake::Task[ "db:test:prepare_#{adapter}" ]
|
59
|
+
begin
|
60
|
+
task = false if SchemaInfo::VERSION == SchemaInfo.find( :first ).version
|
61
|
+
rescue Exception => ex
|
62
|
+
end
|
63
|
+
task.invoke if task
|
64
|
+
|
65
|
+
system "ruby #{File.join( DIR, 'tests/run.rb ' )} #{adapter}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
namespace :activerecord do
|
70
|
+
|
71
|
+
ADAPTERS.each do |adapter|
|
72
|
+
desc "runs ActiveRecord unit tests for #{adapter} with ActiveRecord::Extensions"
|
73
|
+
task adapter.to_sym do |t|
|
74
|
+
activerecord_dir = ARGV[1]
|
75
|
+
if activerecord_dir.nil? or ! File.directory?( activerecord_dir )
|
76
|
+
STDERR.puts "ERROR: Pass in the path to ActiveRecord. Eg: /home/zdennis/rails_trunk/activerecord"
|
77
|
+
exit
|
78
|
+
end
|
79
|
+
|
80
|
+
old_dir, old_env = Dir.pwd, ENV['RUBYOPT']
|
81
|
+
Dir.chdir( activerecord_dir )
|
82
|
+
ENV['RUBYOPT'] = "-r#{File.join(old_dir,'init.rb')}"
|
83
|
+
|
84
|
+
load "Rakefile"
|
85
|
+
Rake::Task[ "test_#{adapter}" ].invoke
|
86
|
+
Dir.chdir( old_dir )
|
87
|
+
ENV['RUBYOPT'] = old_env
|
88
|
+
end
|
89
|
+
|
90
|
+
desc "runs ActiveRecord unit tests for #{adapter} with ActiveRecord::Extensions with ALL available #{adapter} functionality"
|
91
|
+
task "#{adapter}_all" do |t|
|
92
|
+
ENV['LOAD_ADAPTER_EXTENSIONS'] = adapter.to_s
|
93
|
+
Rake::Task["test:activerecord:#{adapter}"].invoke
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
data/config/database.yml
ADDED
data/config/mysql.schema
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
|
2
|
+
create table test_myisam(
|
3
|
+
id int(11) unsigned not null auto_increment,
|
4
|
+
my_name varchar(20) not null,
|
5
|
+
description varchar(255) default '',
|
6
|
+
primary key (id)
|
7
|
+
)ENGINE=MyISAM;
|
8
|
+
|
9
|
+
|
10
|
+
create table test_innodb(
|
11
|
+
id int(11) unsigned not null auto_increment,
|
12
|
+
my_name varchar(20) not null,
|
13
|
+
description varchar(255) default '',
|
14
|
+
primary key (id)
|
15
|
+
)ENGINE=InnoDb;
|
16
|
+
|
17
|
+
|
18
|
+
create table test_memory(
|
19
|
+
id int(11) unsigned not null auto_increment,
|
20
|
+
my_name varchar(20) not null,
|
21
|
+
description varchar(255) default '',
|
22
|
+
primary key (id)
|
23
|
+
)ENGINE=memory;
|
24
|
+
|
25
|
+
|
26
|
+
create temporary table test_temp(
|
27
|
+
id int(11) unsigned not null auto_increment,
|
28
|
+
my_name varchar(20) not null,
|
29
|
+
description varchar(255) default '',
|
30
|
+
primary key (id)
|
31
|
+
);
|
32
|
+
|
33
|
+
CREATE TABLE `topics` (
|
34
|
+
`id` int(11) NOT NULL auto_increment,
|
35
|
+
`title` varchar(255) default NULL,
|
36
|
+
`author_name` varchar(255) default NULL,
|
37
|
+
`author_email_address` varchar(255) default NULL,
|
38
|
+
`written_on` datetime default NULL,
|
39
|
+
`bonus_time` time default NULL,
|
40
|
+
`last_read` date default NULL,
|
41
|
+
`content` text,
|
42
|
+
`approved` tinyint(1) default '1',
|
43
|
+
`replies_count` int(11) default '0',
|
44
|
+
`parent_id` int(11) default NULL,
|
45
|
+
`type` varchar(50) default NULL,
|
46
|
+
PRIMARY KEY (`id`)
|
47
|
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
48
|
+
|
49
|
+
CREATE TABLE `projects` (
|
50
|
+
`id` int(11) NOT NULL auto_increment,
|
51
|
+
`name` varchar(100) default NULL,
|
52
|
+
`type` varchar(255) NOT NULL,
|
53
|
+
PRIMARY KEY (`id`)
|
54
|
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
55
|
+
|
56
|
+
CREATE TABLE `developers` (
|
57
|
+
`id` int(11) NOT NULL auto_increment,
|
58
|
+
`name` varchar(100) default NULL,
|
59
|
+
`salary` int(11) default '70000',
|
60
|
+
`created_at` datetime default NULL,
|
61
|
+
`updated_at` datetime default NULL,
|
62
|
+
PRIMARY KEY (`id`)
|
63
|
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
64
|
+
|
65
|
+
CREATE TABLE `books` (
|
66
|
+
`id` int(11) NOT NULL auto_increment,
|
67
|
+
`title` varchar(255) NOT NULL,
|
68
|
+
`publisher` varchar(255) NOT NULL,
|
69
|
+
`author_name` varchar(255) NOT NULL,
|
70
|
+
PRIMARY KEY (`id`),
|
71
|
+
FULLTEXT( `title`, `publisher`, `author_name` )
|
72
|
+
) ENGINE=MyISAM;
|