| ... | ... |
@@ -1,3 +1,7 @@ |
| 1 |
+0.1623 |
|
| 2 |
+ added experimental auto_filter method |
|
| 3 |
+ deprecated default_bind_filter and default_fetch_filter because these are global effect. |
|
| 4 |
+ weakend filter_check for usability |
|
| 1 | 5 |
0.1622 |
| 2 | 6 |
deprecated DBIx::Custom::SQLite and DBIx::Custom::MySQL |
| 3 | 7 |
added dbi_options attribute |
| ... | ... |
@@ -1,873 +0,0 @@ |
| 1 |
-# This Makefile is for the DBIx::Custom extension to perl. |
|
| 2 |
-# |
|
| 3 |
-# It was generated automatically by MakeMaker version |
|
| 4 |
-# 6.48 (Revision: 64800) from the contents of |
|
| 5 |
-# Makefile.PL. Don't edit this file, edit Makefile.PL instead. |
|
| 6 |
-# |
|
| 7 |
-# ANY CHANGES MADE HERE WILL BE LOST! |
|
| 8 |
-# |
|
| 9 |
-# MakeMaker ARGV: () |
|
| 10 |
-# |
|
| 11 |
-# MakeMaker Parameters: |
|
| 12 |
- |
|
| 13 |
-# ABSTRACT_FROM => q[lib/DBIx/Custom.pm] |
|
| 14 |
-# AUTHOR => q[Yuki Kimoto <kimoto.yuki@gmail.com>] |
|
| 15 |
-# LICENSE => q[perl] |
|
| 16 |
-# NAME => q[DBIx::Custom] |
|
| 17 |
-# PL_FILES => { }
|
|
| 18 |
-# PREREQ_PM => { Test::More=>q[0], Object::Simple=>q[3.0201], DBD::SQLite=>q[1.25], DBI=>q[1.605] }
|
|
| 19 |
-# VERSION_FROM => q[lib/DBIx/Custom.pm] |
|
| 20 |
-# clean => { FILES=>q[DBIx-Custom-*] }
|
|
| 21 |
-# dist => { COMPRESS=>q[gzip -9f], SUFFIX=>q[gz] }
|
|
| 22 |
- |
|
| 23 |
-# --- MakeMaker post_initialize section: |
|
| 24 |
- |
|
| 25 |
- |
|
| 26 |
-# --- MakeMaker const_config section: |
|
| 27 |
- |
|
| 28 |
-# These definitions are from config.sh (via /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Config.pm). |
|
| 29 |
-# They may have been overridden via Makefile.PL or on the command line. |
|
| 30 |
-AR = ar |
|
| 31 |
-CC = gcc |
|
| 32 |
-CCCDLFLAGS = -fPIC |
|
| 33 |
-CCDLFLAGS = -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE |
|
| 34 |
-DLEXT = so |
|
| 35 |
-DLSRC = dl_dlopen.xs |
|
| 36 |
-EXE_EXT = |
|
| 37 |
-FULL_AR = /usr/bin/ar |
|
| 38 |
-LD = gcc |
|
| 39 |
-LDDLFLAGS = -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib |
|
| 40 |
-LDFLAGS = -L/usr/local/lib |
|
| 41 |
-LIBC = /lib/libc-2.6.so |
|
| 42 |
-LIB_EXT = .a |
|
| 43 |
-OBJ_EXT = .o |
|
| 44 |
-OSNAME = linux |
|
| 45 |
-OSVERS = 2.6.18-53.1.14.el5xen |
|
| 46 |
-RANLIB = : |
|
| 47 |
-SITELIBEXP = /usr/lib/perl5/site_perl/5.8.8 |
|
| 48 |
-SITEARCHEXP = /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi |
|
| 49 |
-SO = so |
|
| 50 |
-VENDORARCHEXP = /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi |
|
| 51 |
-VENDORLIBEXP = /usr/lib/perl5/vendor_perl/5.8.8 |
|
| 52 |
- |
|
| 53 |
- |
|
| 54 |
-# --- MakeMaker constants section: |
|
| 55 |
-AR_STATIC_ARGS = cr |
|
| 56 |
-DIRFILESEP = / |
|
| 57 |
-DFSEP = $(DIRFILESEP) |
|
| 58 |
-NAME = DBIx::Custom |
|
| 59 |
-NAME_SYM = DBIx_Custom |
|
| 60 |
-VERSION = 0.1620 |
|
| 61 |
-VERSION_MACRO = VERSION |
|
| 62 |
-VERSION_SYM = 0_1620 |
|
| 63 |
-DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" |
|
| 64 |
-XS_VERSION = 0.1620 |
|
| 65 |
-XS_VERSION_MACRO = XS_VERSION |
|
| 66 |
-XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" |
|
| 67 |
-INST_ARCHLIB = blib/arch |
|
| 68 |
-INST_SCRIPT = blib/script |
|
| 69 |
-INST_BIN = blib/bin |
|
| 70 |
-INST_LIB = blib/lib |
|
| 71 |
-INST_MAN1DIR = blib/man1 |
|
| 72 |
-INST_MAN3DIR = blib/man3 |
|
| 73 |
-MAN1EXT = 1 |
|
| 74 |
-MAN3EXT = 3pm |
|
| 75 |
-INSTALLDIRS = site |
|
| 76 |
-DESTDIR = |
|
| 77 |
-PREFIX = $(SITEPREFIX) |
|
| 78 |
-PERLPREFIX = /usr |
|
| 79 |
-SITEPREFIX = /usr |
|
| 80 |
-VENDORPREFIX = /usr |
|
| 81 |
-INSTALLPRIVLIB = /usr/lib/perl5/5.8.8 |
|
| 82 |
-DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) |
|
| 83 |
-INSTALLSITELIB = /usr/lib/perl5/site_perl/5.8.8 |
|
| 84 |
-DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) |
|
| 85 |
-INSTALLVENDORLIB = /usr/lib/perl5/vendor_perl/5.8.8 |
|
| 86 |
-DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) |
|
| 87 |
-INSTALLARCHLIB = /usr/lib/perl5/5.8.8/i386-linux-thread-multi |
|
| 88 |
-DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) |
|
| 89 |
-INSTALLSITEARCH = /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi |
|
| 90 |
-DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) |
|
| 91 |
-INSTALLVENDORARCH = /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi |
|
| 92 |
-DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) |
|
| 93 |
-INSTALLBIN = /usr/bin |
|
| 94 |
-DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) |
|
| 95 |
-INSTALLSITEBIN = /usr/bin |
|
| 96 |
-DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) |
|
| 97 |
-INSTALLVENDORBIN = /usr/bin |
|
| 98 |
-DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) |
|
| 99 |
-INSTALLSCRIPT = /usr/bin |
|
| 100 |
-DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) |
|
| 101 |
-INSTALLSITESCRIPT = /usr/bin |
|
| 102 |
-DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) |
|
| 103 |
-INSTALLVENDORSCRIPT = /usr/bin |
|
| 104 |
-DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) |
|
| 105 |
-INSTALLMAN1DIR = /usr/share/man/man1 |
|
| 106 |
-DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) |
|
| 107 |
-INSTALLSITEMAN1DIR = /usr/share/man/man1 |
|
| 108 |
-DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) |
|
| 109 |
-INSTALLVENDORMAN1DIR = /usr/share/man/man1 |
|
| 110 |
-DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) |
|
| 111 |
-INSTALLMAN3DIR = /usr/share/man/man3 |
|
| 112 |
-DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) |
|
| 113 |
-INSTALLSITEMAN3DIR = /usr/share/man/man3 |
|
| 114 |
-DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) |
|
| 115 |
-INSTALLVENDORMAN3DIR = /usr/share/man/man3 |
|
| 116 |
-DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) |
|
| 117 |
-PERL_LIB = /usr/lib/perl5/5.8.8 |
|
| 118 |
-PERL_ARCHLIB = /usr/lib/perl5/5.8.8/i386-linux-thread-multi |
|
| 119 |
-LIBPERL_A = libperl.a |
|
| 120 |
-FIRST_MAKEFILE = Makefile |
|
| 121 |
-MAKEFILE_OLD = Makefile.old |
|
| 122 |
-MAKE_APERL_FILE = Makefile.aperl |
|
| 123 |
-PERLMAINCC = $(CC) |
|
| 124 |
-PERL_INC = /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE |
|
| 125 |
-PERL = /usr/bin/perl |
|
| 126 |
-FULLPERL = /usr/bin/perl |
|
| 127 |
-ABSPERL = $(PERL) |
|
| 128 |
-PERLRUN = $(PERL) |
|
| 129 |
-FULLPERLRUN = $(FULLPERL) |
|
| 130 |
-ABSPERLRUN = $(ABSPERL) |
|
| 131 |
-PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" |
|
| 132 |
-FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" |
|
| 133 |
-ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" |
|
| 134 |
-PERL_CORE = 0 |
|
| 135 |
-PERM_RW = 644 |
|
| 136 |
-PERM_RWX = 755 |
|
| 137 |
- |
|
| 138 |
-MAKEMAKER = /usr/lib/perl5/5.8.8/ExtUtils/MakeMaker.pm |
|
| 139 |
-MM_VERSION = 6.48 |
|
| 140 |
-MM_REVISION = 64800 |
|
| 141 |
- |
|
| 142 |
-# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). |
|
| 143 |
-# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) |
|
| 144 |
-# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) |
|
| 145 |
-# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. |
|
| 146 |
-MAKE = make |
|
| 147 |
-FULLEXT = DBIx/Custom |
|
| 148 |
-BASEEXT = Custom |
|
| 149 |
-PARENT_NAME = DBIx |
|
| 150 |
-DLBASE = $(BASEEXT) |
|
| 151 |
-VERSION_FROM = lib/DBIx/Custom.pm |
|
| 152 |
-OBJECT = |
|
| 153 |
-LDFROM = $(OBJECT) |
|
| 154 |
-LINKTYPE = dynamic |
|
| 155 |
-BOOTDEP = |
|
| 156 |
- |
|
| 157 |
-# Handy lists of source code files: |
|
| 158 |
-XS_FILES = |
|
| 159 |
-C_FILES = |
|
| 160 |
-O_FILES = |
|
| 161 |
-H_FILES = |
|
| 162 |
-MAN1PODS = |
|
| 163 |
-MAN3PODS = lib/DBIx/Custom.pm \ |
|
| 164 |
- lib/DBIx/Custom/Guides.pod \ |
|
| 165 |
- lib/DBIx/Custom/Guides/Ja.pod \ |
|
| 166 |
- lib/DBIx/Custom/MySQL.pm \ |
|
| 167 |
- lib/DBIx/Custom/Query.pm \ |
|
| 168 |
- lib/DBIx/Custom/QueryBuilder.pm \ |
|
| 169 |
- lib/DBIx/Custom/QueryBuilder/TagProcessors.pm \ |
|
| 170 |
- lib/DBIx/Custom/Result.pm \ |
|
| 171 |
- lib/DBIx/Custom/SQLite.pm |
|
| 172 |
- |
|
| 173 |
-# Where is the Config information that we are using/depend on |
|
| 174 |
-CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h |
|
| 175 |
- |
|
| 176 |
-# Where to build things |
|
| 177 |
-INST_LIBDIR = $(INST_LIB)/DBIx |
|
| 178 |
-INST_ARCHLIBDIR = $(INST_ARCHLIB)/DBIx |
|
| 179 |
- |
|
| 180 |
-INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) |
|
| 181 |
-INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) |
|
| 182 |
- |
|
| 183 |
-INST_STATIC = |
|
| 184 |
-INST_DYNAMIC = |
|
| 185 |
-INST_BOOT = |
|
| 186 |
- |
|
| 187 |
-# Extra linker info |
|
| 188 |
-EXPORT_LIST = |
|
| 189 |
-PERL_ARCHIVE = |
|
| 190 |
-PERL_ARCHIVE_AFTER = |
|
| 191 |
- |
|
| 192 |
- |
|
| 193 |
-TO_INST_PM = lib/DBIx/Custom.pm \ |
|
| 194 |
- lib/DBIx/Custom/Guides.pod \ |
|
| 195 |
- lib/DBIx/Custom/Guides/Ja.pod \ |
|
| 196 |
- lib/DBIx/Custom/MySQL.pm \ |
|
| 197 |
- lib/DBIx/Custom/Query.pm \ |
|
| 198 |
- lib/DBIx/Custom/QueryBuilder.pm \ |
|
| 199 |
- lib/DBIx/Custom/QueryBuilder/TagProcessors.pm \ |
|
| 200 |
- lib/DBIx/Custom/Result.pm \ |
|
| 201 |
- lib/DBIx/Custom/SQLite.pm |
|
| 202 |
- |
|
| 203 |
-PM_TO_BLIB = lib/DBIx/Custom/QueryBuilder/TagProcessors.pm \ |
|
| 204 |
- blib/lib/DBIx/Custom/QueryBuilder/TagProcessors.pm \ |
|
| 205 |
- lib/DBIx/Custom/Guides/Ja.pod \ |
|
| 206 |
- blib/lib/DBIx/Custom/Guides/Ja.pod \ |
|
| 207 |
- lib/DBIx/Custom/MySQL.pm \ |
|
| 208 |
- blib/lib/DBIx/Custom/MySQL.pm \ |
|
| 209 |
- lib/DBIx/Custom/Guides.pod \ |
|
| 210 |
- blib/lib/DBIx/Custom/Guides.pod \ |
|
| 211 |
- lib/DBIx/Custom.pm \ |
|
| 212 |
- blib/lib/DBIx/Custom.pm \ |
|
| 213 |
- lib/DBIx/Custom/Query.pm \ |
|
| 214 |
- blib/lib/DBIx/Custom/Query.pm \ |
|
| 215 |
- lib/DBIx/Custom/SQLite.pm \ |
|
| 216 |
- blib/lib/DBIx/Custom/SQLite.pm \ |
|
| 217 |
- lib/DBIx/Custom/Result.pm \ |
|
| 218 |
- blib/lib/DBIx/Custom/Result.pm \ |
|
| 219 |
- lib/DBIx/Custom/QueryBuilder.pm \ |
|
| 220 |
- blib/lib/DBIx/Custom/QueryBuilder.pm |
|
| 221 |
- |
|
| 222 |
- |
|
| 223 |
-# --- MakeMaker platform_constants section: |
|
| 224 |
-MM_Unix_VERSION = 6.48 |
|
| 225 |
-PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc |
|
| 226 |
- |
|
| 227 |
- |
|
| 228 |
-# --- MakeMaker tool_autosplit section: |
|
| 229 |
-# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto |
|
| 230 |
-AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' -- |
|
| 231 |
- |
|
| 232 |
- |
|
| 233 |
- |
|
| 234 |
-# --- MakeMaker tool_xsubpp section: |
|
| 235 |
- |
|
| 236 |
- |
|
| 237 |
-# --- MakeMaker tools_other section: |
|
| 238 |
-SHELL = /bin/sh |
|
| 239 |
-CHMOD = chmod |
|
| 240 |
-CP = cp |
|
| 241 |
-MV = mv |
|
| 242 |
-NOOP = $(SHELL) -c true |
|
| 243 |
-NOECHO = @ |
|
| 244 |
-RM_F = rm -f |
|
| 245 |
-RM_RF = rm -rf |
|
| 246 |
-TEST_F = test -f |
|
| 247 |
-TOUCH = touch |
|
| 248 |
-UMASK_NULL = umask 0 |
|
| 249 |
-DEV_NULL = > /dev/null 2>&1 |
|
| 250 |
-MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath |
|
| 251 |
-EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime |
|
| 252 |
-ECHO = echo |
|
| 253 |
-ECHO_N = echo -n |
|
| 254 |
-UNINST = 0 |
|
| 255 |
-VERBINST = 0 |
|
| 256 |
-MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');' --
|
|
| 257 |
-DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install |
|
| 258 |
-UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall |
|
| 259 |
-WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist |
|
| 260 |
-MACROSTART = |
|
| 261 |
-MACROEND = |
|
| 262 |
-USEMAKEFILE = -f |
|
| 263 |
-FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)" |
|
| 264 |
- |
|
| 265 |
- |
|
| 266 |
-# --- MakeMaker makemakerdflt section: |
|
| 267 |
-makemakerdflt : all |
|
| 268 |
- $(NOECHO) $(NOOP) |
|
| 269 |
- |
|
| 270 |
- |
|
| 271 |
-# --- MakeMaker dist section: |
|
| 272 |
-TAR = tar |
|
| 273 |
-TARFLAGS = cvf |
|
| 274 |
-ZIP = zip |
|
| 275 |
-ZIPFLAGS = -r |
|
| 276 |
-COMPRESS = gzip -9f |
|
| 277 |
-SUFFIX = gz |
|
| 278 |
-SHAR = shar |
|
| 279 |
-PREOP = $(NOECHO) $(NOOP) |
|
| 280 |
-POSTOP = $(NOECHO) $(NOOP) |
|
| 281 |
-TO_UNIX = $(NOECHO) $(NOOP) |
|
| 282 |
-CI = ci -u |
|
| 283 |
-RCS_LABEL = rcs -Nv$(VERSION_SYM): -q |
|
| 284 |
-DIST_CP = best |
|
| 285 |
-DIST_DEFAULT = tardist |
|
| 286 |
-DISTNAME = DBIx-Custom |
|
| 287 |
-DISTVNAME = DBIx-Custom-0.1620 |
|
| 288 |
- |
|
| 289 |
- |
|
| 290 |
-# --- MakeMaker macro section: |
|
| 291 |
- |
|
| 292 |
- |
|
| 293 |
-# --- MakeMaker depend section: |
|
| 294 |
- |
|
| 295 |
- |
|
| 296 |
-# --- MakeMaker cflags section: |
|
| 297 |
- |
|
| 298 |
- |
|
| 299 |
-# --- MakeMaker const_loadlibs section: |
|
| 300 |
- |
|
| 301 |
- |
|
| 302 |
-# --- MakeMaker const_cccmd section: |
|
| 303 |
- |
|
| 304 |
- |
|
| 305 |
-# --- MakeMaker post_constants section: |
|
| 306 |
- |
|
| 307 |
- |
|
| 308 |
-# --- MakeMaker pasthru section: |
|
| 309 |
- |
|
| 310 |
-PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ |
|
| 311 |
- LINKTYPE="$(LINKTYPE)"\ |
|
| 312 |
- PREFIX="$(PREFIX)" |
|
| 313 |
- |
|
| 314 |
- |
|
| 315 |
-# --- MakeMaker special_targets section: |
|
| 316 |
-.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) |
|
| 317 |
- |
|
| 318 |
-.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir |
|
| 319 |
- |
|
| 320 |
- |
|
| 321 |
- |
|
| 322 |
-# --- MakeMaker c_o section: |
|
| 323 |
- |
|
| 324 |
- |
|
| 325 |
-# --- MakeMaker xs_c section: |
|
| 326 |
- |
|
| 327 |
- |
|
| 328 |
-# --- MakeMaker xs_o section: |
|
| 329 |
- |
|
| 330 |
- |
|
| 331 |
-# --- MakeMaker top_targets section: |
|
| 332 |
-all :: pure_all manifypods |
|
| 333 |
- $(NOECHO) $(NOOP) |
|
| 334 |
- |
|
| 335 |
- |
|
| 336 |
-pure_all :: config pm_to_blib subdirs linkext |
|
| 337 |
- $(NOECHO) $(NOOP) |
|
| 338 |
- |
|
| 339 |
-subdirs :: $(MYEXTLIB) |
|
| 340 |
- $(NOECHO) $(NOOP) |
|
| 341 |
- |
|
| 342 |
-config :: $(FIRST_MAKEFILE) blibdirs |
|
| 343 |
- $(NOECHO) $(NOOP) |
|
| 344 |
- |
|
| 345 |
-help : |
|
| 346 |
- perldoc ExtUtils::MakeMaker |
|
| 347 |
- |
|
| 348 |
- |
|
| 349 |
-# --- MakeMaker blibdirs section: |
|
| 350 |
-blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists |
|
| 351 |
- $(NOECHO) $(NOOP) |
|
| 352 |
- |
|
| 353 |
-# Backwards compat with 6.18 through 6.25 |
|
| 354 |
-blibdirs.ts : blibdirs |
|
| 355 |
- $(NOECHO) $(NOOP) |
|
| 356 |
- |
|
| 357 |
-$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL |
|
| 358 |
- $(NOECHO) $(MKPATH) $(INST_LIBDIR) |
|
| 359 |
- $(NOECHO) $(CHMOD) 755 $(INST_LIBDIR) |
|
| 360 |
- $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists |
|
| 361 |
- |
|
| 362 |
-$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL |
|
| 363 |
- $(NOECHO) $(MKPATH) $(INST_ARCHLIB) |
|
| 364 |
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB) |
|
| 365 |
- $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists |
|
| 366 |
- |
|
| 367 |
-$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL |
|
| 368 |
- $(NOECHO) $(MKPATH) $(INST_AUTODIR) |
|
| 369 |
- $(NOECHO) $(CHMOD) 755 $(INST_AUTODIR) |
|
| 370 |
- $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists |
|
| 371 |
- |
|
| 372 |
-$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL |
|
| 373 |
- $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) |
|
| 374 |
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR) |
|
| 375 |
- $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists |
|
| 376 |
- |
|
| 377 |
-$(INST_BIN)$(DFSEP).exists :: Makefile.PL |
|
| 378 |
- $(NOECHO) $(MKPATH) $(INST_BIN) |
|
| 379 |
- $(NOECHO) $(CHMOD) 755 $(INST_BIN) |
|
| 380 |
- $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists |
|
| 381 |
- |
|
| 382 |
-$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL |
|
| 383 |
- $(NOECHO) $(MKPATH) $(INST_SCRIPT) |
|
| 384 |
- $(NOECHO) $(CHMOD) 755 $(INST_SCRIPT) |
|
| 385 |
- $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists |
|
| 386 |
- |
|
| 387 |
-$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL |
|
| 388 |
- $(NOECHO) $(MKPATH) $(INST_MAN1DIR) |
|
| 389 |
- $(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR) |
|
| 390 |
- $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists |
|
| 391 |
- |
|
| 392 |
-$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL |
|
| 393 |
- $(NOECHO) $(MKPATH) $(INST_MAN3DIR) |
|
| 394 |
- $(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR) |
|
| 395 |
- $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists |
|
| 396 |
- |
|
| 397 |
- |
|
| 398 |
- |
|
| 399 |
-# --- MakeMaker linkext section: |
|
| 400 |
- |
|
| 401 |
-linkext :: $(LINKTYPE) |
|
| 402 |
- $(NOECHO) $(NOOP) |
|
| 403 |
- |
|
| 404 |
- |
|
| 405 |
-# --- MakeMaker dlsyms section: |
|
| 406 |
- |
|
| 407 |
- |
|
| 408 |
-# --- MakeMaker dynamic section: |
|
| 409 |
- |
|
| 410 |
-dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT) |
|
| 411 |
- $(NOECHO) $(NOOP) |
|
| 412 |
- |
|
| 413 |
- |
|
| 414 |
-# --- MakeMaker dynamic_bs section: |
|
| 415 |
- |
|
| 416 |
-BOOTSTRAP = |
|
| 417 |
- |
|
| 418 |
- |
|
| 419 |
-# --- MakeMaker dynamic_lib section: |
|
| 420 |
- |
|
| 421 |
- |
|
| 422 |
-# --- MakeMaker static section: |
|
| 423 |
- |
|
| 424 |
-## $(INST_PM) has been moved to the all: target. |
|
| 425 |
-## It remains here for awhile to allow for old usage: "make static" |
|
| 426 |
-static :: $(FIRST_MAKEFILE) $(INST_STATIC) |
|
| 427 |
- $(NOECHO) $(NOOP) |
|
| 428 |
- |
|
| 429 |
- |
|
| 430 |
-# --- MakeMaker static_lib section: |
|
| 431 |
- |
|
| 432 |
- |
|
| 433 |
-# --- MakeMaker manifypods section: |
|
| 434 |
- |
|
| 435 |
-POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" |
|
| 436 |
-POD2MAN = $(POD2MAN_EXE) |
|
| 437 |
- |
|
| 438 |
- |
|
| 439 |
-manifypods : pure_all \ |
|
| 440 |
- lib/DBIx/Custom/QueryBuilder/TagProcessors.pm \ |
|
| 441 |
- lib/DBIx/Custom/Guides/Ja.pod \ |
|
| 442 |
- lib/DBIx/Custom/MySQL.pm \ |
|
| 443 |
- lib/DBIx/Custom/Guides.pod \ |
|
| 444 |
- lib/DBIx/Custom.pm \ |
|
| 445 |
- lib/DBIx/Custom/SQLite.pm \ |
|
| 446 |
- lib/DBIx/Custom/Query.pm \ |
|
| 447 |
- lib/DBIx/Custom/Result.pm \ |
|
| 448 |
- lib/DBIx/Custom/QueryBuilder.pm |
|
| 449 |
- $(NOECHO) $(POD2MAN) --section=3 --perm_rw=$(PERM_RW) \ |
|
| 450 |
- lib/DBIx/Custom/QueryBuilder/TagProcessors.pm $(INST_MAN3DIR)/DBIx::Custom::QueryBuilder::TagProcessors.$(MAN3EXT) \ |
|
| 451 |
- lib/DBIx/Custom/Guides/Ja.pod $(INST_MAN3DIR)/DBIx::Custom::Guides::Ja.$(MAN3EXT) \ |
|
| 452 |
- lib/DBIx/Custom/MySQL.pm $(INST_MAN3DIR)/DBIx::Custom::MySQL.$(MAN3EXT) \ |
|
| 453 |
- lib/DBIx/Custom/Guides.pod $(INST_MAN3DIR)/DBIx::Custom::Guides.$(MAN3EXT) \ |
|
| 454 |
- lib/DBIx/Custom.pm $(INST_MAN3DIR)/DBIx::Custom.$(MAN3EXT) \ |
|
| 455 |
- lib/DBIx/Custom/SQLite.pm $(INST_MAN3DIR)/DBIx::Custom::SQLite.$(MAN3EXT) \ |
|
| 456 |
- lib/DBIx/Custom/Query.pm $(INST_MAN3DIR)/DBIx::Custom::Query.$(MAN3EXT) \ |
|
| 457 |
- lib/DBIx/Custom/Result.pm $(INST_MAN3DIR)/DBIx::Custom::Result.$(MAN3EXT) \ |
|
| 458 |
- lib/DBIx/Custom/QueryBuilder.pm $(INST_MAN3DIR)/DBIx::Custom::QueryBuilder.$(MAN3EXT) |
|
| 459 |
- |
|
| 460 |
- |
|
| 461 |
- |
|
| 462 |
- |
|
| 463 |
-# --- MakeMaker processPL section: |
|
| 464 |
- |
|
| 465 |
- |
|
| 466 |
-# --- MakeMaker installbin section: |
|
| 467 |
- |
|
| 468 |
- |
|
| 469 |
-# --- MakeMaker subdirs section: |
|
| 470 |
- |
|
| 471 |
-# none |
|
| 472 |
- |
|
| 473 |
-# --- MakeMaker clean_subdirs section: |
|
| 474 |
-clean_subdirs : |
|
| 475 |
- $(NOECHO) $(NOOP) |
|
| 476 |
- |
|
| 477 |
- |
|
| 478 |
-# --- MakeMaker clean section: |
|
| 479 |
- |
|
| 480 |
-# Delete temporary files but do not touch installed files. We don't delete |
|
| 481 |
-# the Makefile here so a later make realclean still has a makefile to use. |
|
| 482 |
- |
|
| 483 |
-clean :: clean_subdirs |
|
| 484 |
- - $(RM_F) \ |
|
| 485 |
- *$(LIB_EXT) core \ |
|
| 486 |
- core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \ |
|
| 487 |
- core.[0-9][0-9] $(BASEEXT).bso \ |
|
| 488 |
- pm_to_blib.ts core.[0-9][0-9][0-9][0-9] \ |
|
| 489 |
- $(BASEEXT).x $(BOOTSTRAP) \ |
|
| 490 |
- perl$(EXE_EXT) tmon.out \ |
|
| 491 |
- *$(OBJ_EXT) pm_to_blib \ |
|
| 492 |
- $(INST_ARCHAUTODIR)/extralibs.ld blibdirs.ts \ |
|
| 493 |
- core.[0-9][0-9][0-9][0-9][0-9] *perl.core \ |
|
| 494 |
- core.*perl.*.? $(MAKE_APERL_FILE) \ |
|
| 495 |
- $(BASEEXT).def perl \ |
|
| 496 |
- core.[0-9][0-9][0-9] mon.out \ |
|
| 497 |
- lib$(BASEEXT).def perl.exe \ |
|
| 498 |
- perlmain.c so_locations \ |
|
| 499 |
- $(BASEEXT).exp |
|
| 500 |
- - $(RM_RF) \ |
|
| 501 |
- DBIx-Custom-* blib |
|
| 502 |
- - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) |
|
| 503 |
- |
|
| 504 |
- |
|
| 505 |
-# --- MakeMaker realclean_subdirs section: |
|
| 506 |
-realclean_subdirs : |
|
| 507 |
- $(NOECHO) $(NOOP) |
|
| 508 |
- |
|
| 509 |
- |
|
| 510 |
-# --- MakeMaker realclean section: |
|
| 511 |
-# Delete temporary files (via clean) and also delete dist files |
|
| 512 |
-realclean purge :: clean realclean_subdirs |
|
| 513 |
- - $(RM_F) \ |
|
| 514 |
- $(MAKEFILE_OLD) $(FIRST_MAKEFILE) |
|
| 515 |
- - $(RM_RF) \ |
|
| 516 |
- $(DISTVNAME) |
|
| 517 |
- |
|
| 518 |
- |
|
| 519 |
-# --- MakeMaker metafile section: |
|
| 520 |
-metafile : create_distdir |
|
| 521 |
- $(NOECHO) $(ECHO) Generating META.yml |
|
| 522 |
- $(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml |
|
| 523 |
- $(NOECHO) $(ECHO) 'name: DBIx-Custom' >> META_new.yml |
|
| 524 |
- $(NOECHO) $(ECHO) 'version: 0.1620' >> META_new.yml |
|
| 525 |
- $(NOECHO) $(ECHO) 'abstract: DBI interface, having hash parameter binding and filtering system' >> META_new.yml |
|
| 526 |
- $(NOECHO) $(ECHO) 'author:' >> META_new.yml |
|
| 527 |
- $(NOECHO) $(ECHO) ' - Yuki Kimoto <kimoto.yuki@gmail.com>' >> META_new.yml |
|
| 528 |
- $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml |
|
| 529 |
- $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml |
|
| 530 |
- $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml |
|
| 531 |
- $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml |
|
| 532 |
- $(NOECHO) $(ECHO) 'requires:' >> META_new.yml |
|
| 533 |
- $(NOECHO) $(ECHO) ' DBD::SQLite: 1.25' >> META_new.yml |
|
| 534 |
- $(NOECHO) $(ECHO) ' DBI: 1.605' >> META_new.yml |
|
| 535 |
- $(NOECHO) $(ECHO) ' Object::Simple: 3.0201' >> META_new.yml |
|
| 536 |
- $(NOECHO) $(ECHO) ' Test::More: 0' >> META_new.yml |
|
| 537 |
- $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml |
|
| 538 |
- $(NOECHO) $(ECHO) ' directory:' >> META_new.yml |
|
| 539 |
- $(NOECHO) $(ECHO) ' - t' >> META_new.yml |
|
| 540 |
- $(NOECHO) $(ECHO) ' - inc' >> META_new.yml |
|
| 541 |
- $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.48' >> META_new.yml |
|
| 542 |
- $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml |
|
| 543 |
- $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml |
|
| 544 |
- $(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml |
|
| 545 |
- -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml |
|
| 546 |
- |
|
| 547 |
- |
|
| 548 |
-# --- MakeMaker signature section: |
|
| 549 |
-signature : |
|
| 550 |
- cpansign -s |
|
| 551 |
- |
|
| 552 |
- |
|
| 553 |
-# --- MakeMaker dist_basics section: |
|
| 554 |
-distclean :: realclean distcheck |
|
| 555 |
- $(NOECHO) $(NOOP) |
|
| 556 |
- |
|
| 557 |
-distcheck : |
|
| 558 |
- $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck |
|
| 559 |
- |
|
| 560 |
-skipcheck : |
|
| 561 |
- $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck |
|
| 562 |
- |
|
| 563 |
-manifest : |
|
| 564 |
- $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest |
|
| 565 |
- |
|
| 566 |
-veryclean : realclean |
|
| 567 |
- $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old |
|
| 568 |
- |
|
| 569 |
- |
|
| 570 |
- |
|
| 571 |
-# --- MakeMaker dist_core section: |
|
| 572 |
- |
|
| 573 |
-dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) |
|
| 574 |
- $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ |
|
| 575 |
- -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- |
|
| 576 |
- |
|
| 577 |
-tardist : $(DISTVNAME).tar$(SUFFIX) |
|
| 578 |
- $(NOECHO) $(NOOP) |
|
| 579 |
- |
|
| 580 |
-uutardist : $(DISTVNAME).tar$(SUFFIX) |
|
| 581 |
- uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu |
|
| 582 |
- |
|
| 583 |
-$(DISTVNAME).tar$(SUFFIX) : distdir |
|
| 584 |
- $(PREOP) |
|
| 585 |
- $(TO_UNIX) |
|
| 586 |
- $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) |
|
| 587 |
- $(RM_RF) $(DISTVNAME) |
|
| 588 |
- $(COMPRESS) $(DISTVNAME).tar |
|
| 589 |
- $(POSTOP) |
|
| 590 |
- |
|
| 591 |
-zipdist : $(DISTVNAME).zip |
|
| 592 |
- $(NOECHO) $(NOOP) |
|
| 593 |
- |
|
| 594 |
-$(DISTVNAME).zip : distdir |
|
| 595 |
- $(PREOP) |
|
| 596 |
- $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) |
|
| 597 |
- $(RM_RF) $(DISTVNAME) |
|
| 598 |
- $(POSTOP) |
|
| 599 |
- |
|
| 600 |
-shdist : distdir |
|
| 601 |
- $(PREOP) |
|
| 602 |
- $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar |
|
| 603 |
- $(RM_RF) $(DISTVNAME) |
|
| 604 |
- $(POSTOP) |
|
| 605 |
- |
|
| 606 |
- |
|
| 607 |
-# --- MakeMaker distdir section: |
|
| 608 |
-create_distdir : |
|
| 609 |
- $(RM_RF) $(DISTVNAME) |
|
| 610 |
- $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ |
|
| 611 |
- -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" |
|
| 612 |
- |
|
| 613 |
-distdir : create_distdir distmeta |
|
| 614 |
- $(NOECHO) $(NOOP) |
|
| 615 |
- |
|
| 616 |
- |
|
| 617 |
- |
|
| 618 |
-# --- MakeMaker dist_test section: |
|
| 619 |
-disttest : distdir |
|
| 620 |
- cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL |
|
| 621 |
- cd $(DISTVNAME) && $(MAKE) $(PASTHRU) |
|
| 622 |
- cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) |
|
| 623 |
- |
|
| 624 |
- |
|
| 625 |
- |
|
| 626 |
-# --- MakeMaker dist_ci section: |
|
| 627 |
- |
|
| 628 |
-ci : |
|
| 629 |
- $(PERLRUN) "-MExtUtils::Manifest=maniread" \ |
|
| 630 |
- -e "@all = keys %{ maniread() };" \
|
|
| 631 |
- -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
|
|
| 632 |
- -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
|
|
| 633 |
- |
|
| 634 |
- |
|
| 635 |
-# --- MakeMaker distmeta section: |
|
| 636 |
-distmeta : create_distdir metafile |
|
| 637 |
- $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
|
| 638 |
- -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
|
|
| 639 |
- |
|
| 640 |
- |
|
| 641 |
- |
|
| 642 |
-# --- MakeMaker distsignature section: |
|
| 643 |
-distsignature : create_distdir |
|
| 644 |
- $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
|
| 645 |
- -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
|
|
| 646 |
- $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE |
|
| 647 |
- cd $(DISTVNAME) && cpansign -s |
|
| 648 |
- |
|
| 649 |
- |
|
| 650 |
- |
|
| 651 |
-# --- MakeMaker install section: |
|
| 652 |
- |
|
| 653 |
-install :: all pure_install doc_install |
|
| 654 |
- $(NOECHO) $(NOOP) |
|
| 655 |
- |
|
| 656 |
-install_perl :: all pure_perl_install doc_perl_install |
|
| 657 |
- $(NOECHO) $(NOOP) |
|
| 658 |
- |
|
| 659 |
-install_site :: all pure_site_install doc_site_install |
|
| 660 |
- $(NOECHO) $(NOOP) |
|
| 661 |
- |
|
| 662 |
-install_vendor :: all pure_vendor_install doc_vendor_install |
|
| 663 |
- $(NOECHO) $(NOOP) |
|
| 664 |
- |
|
| 665 |
-pure_install :: pure_$(INSTALLDIRS)_install |
|
| 666 |
- $(NOECHO) $(NOOP) |
|
| 667 |
- |
|
| 668 |
-doc_install :: doc_$(INSTALLDIRS)_install |
|
| 669 |
- $(NOECHO) $(NOOP) |
|
| 670 |
- |
|
| 671 |
-pure__install : pure_site_install |
|
| 672 |
- $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site |
|
| 673 |
- |
|
| 674 |
-doc__install : doc_site_install |
|
| 675 |
- $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site |
|
| 676 |
- |
|
| 677 |
-pure_perl_install :: |
|
| 678 |
- $(NOECHO) $(MOD_INSTALL) \ |
|
| 679 |
- read $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist \ |
|
| 680 |
- write $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist \ |
|
| 681 |
- $(INST_LIB) $(DESTINSTALLPRIVLIB) \ |
|
| 682 |
- $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ |
|
| 683 |
- $(INST_BIN) $(DESTINSTALLBIN) \ |
|
| 684 |
- $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ |
|
| 685 |
- $(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \ |
|
| 686 |
- $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) |
|
| 687 |
- $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ |
|
| 688 |
- $(SITEARCHEXP)/auto/$(FULLEXT) |
|
| 689 |
- |
|
| 690 |
- |
|
| 691 |
-pure_site_install :: |
|
| 692 |
- $(NOECHO) $(MOD_INSTALL) \ |
|
| 693 |
- read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \ |
|
| 694 |
- write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \ |
|
| 695 |
- $(INST_LIB) $(DESTINSTALLSITELIB) \ |
|
| 696 |
- $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \ |
|
| 697 |
- $(INST_BIN) $(DESTINSTALLSITEBIN) \ |
|
| 698 |
- $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \ |
|
| 699 |
- $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ |
|
| 700 |
- $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) |
|
| 701 |
- $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ |
|
| 702 |
- $(PERL_ARCHLIB)/auto/$(FULLEXT) |
|
| 703 |
- |
|
| 704 |
-pure_vendor_install :: |
|
| 705 |
- $(NOECHO) $(MOD_INSTALL) \ |
|
| 706 |
- read $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist \ |
|
| 707 |
- write $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist \ |
|
| 708 |
- $(INST_LIB) $(DESTINSTALLVENDORLIB) \ |
|
| 709 |
- $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ |
|
| 710 |
- $(INST_BIN) $(DESTINSTALLVENDORBIN) \ |
|
| 711 |
- $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \ |
|
| 712 |
- $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ |
|
| 713 |
- $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) |
|
| 714 |
- |
|
| 715 |
-doc_perl_install :: |
|
| 716 |
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 717 |
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) |
|
| 718 |
- -$(NOECHO) $(DOC_INSTALL) \ |
|
| 719 |
- "Module" "$(NAME)" \ |
|
| 720 |
- "installed into" "$(INSTALLPRIVLIB)" \ |
|
| 721 |
- LINKTYPE "$(LINKTYPE)" \ |
|
| 722 |
- VERSION "$(VERSION)" \ |
|
| 723 |
- EXE_FILES "$(EXE_FILES)" \ |
|
| 724 |
- >> $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 725 |
- |
|
| 726 |
-doc_site_install :: |
|
| 727 |
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 728 |
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) |
|
| 729 |
- -$(NOECHO) $(DOC_INSTALL) \ |
|
| 730 |
- "Module" "$(NAME)" \ |
|
| 731 |
- "installed into" "$(INSTALLSITELIB)" \ |
|
| 732 |
- LINKTYPE "$(LINKTYPE)" \ |
|
| 733 |
- VERSION "$(VERSION)" \ |
|
| 734 |
- EXE_FILES "$(EXE_FILES)" \ |
|
| 735 |
- >> $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 736 |
- |
|
| 737 |
-doc_vendor_install :: |
|
| 738 |
- $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 739 |
- -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) |
|
| 740 |
- -$(NOECHO) $(DOC_INSTALL) \ |
|
| 741 |
- "Module" "$(NAME)" \ |
|
| 742 |
- "installed into" "$(INSTALLVENDORLIB)" \ |
|
| 743 |
- LINKTYPE "$(LINKTYPE)" \ |
|
| 744 |
- VERSION "$(VERSION)" \ |
|
| 745 |
- EXE_FILES "$(EXE_FILES)" \ |
|
| 746 |
- >> $(DESTINSTALLARCHLIB)/perllocal.pod |
|
| 747 |
- |
|
| 748 |
- |
|
| 749 |
-uninstall :: uninstall_from_$(INSTALLDIRS)dirs |
|
| 750 |
- $(NOECHO) $(NOOP) |
|
| 751 |
- |
|
| 752 |
-uninstall_from_perldirs :: |
|
| 753 |
- $(NOECHO) $(UNINSTALL) $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist |
|
| 754 |
- |
|
| 755 |
-uninstall_from_sitedirs :: |
|
| 756 |
- $(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist |
|
| 757 |
- |
|
| 758 |
-uninstall_from_vendordirs :: |
|
| 759 |
- $(NOECHO) $(UNINSTALL) $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist |
|
| 760 |
- |
|
| 761 |
- |
|
| 762 |
-# --- MakeMaker force section: |
|
| 763 |
-# Phony target to force checking subdirectories. |
|
| 764 |
-FORCE : |
|
| 765 |
- $(NOECHO) $(NOOP) |
|
| 766 |
- |
|
| 767 |
- |
|
| 768 |
-# --- MakeMaker perldepend section: |
|
| 769 |
- |
|
| 770 |
- |
|
| 771 |
-# --- MakeMaker makefile section: |
|
| 772 |
-# We take a very conservative approach here, but it's worth it. |
|
| 773 |
-# We move Makefile to Makefile.old here to avoid gnu make looping. |
|
| 774 |
-$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) |
|
| 775 |
- $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" |
|
| 776 |
- $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." |
|
| 777 |
- -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) |
|
| 778 |
- -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) |
|
| 779 |
- - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) |
|
| 780 |
- $(PERLRUN) Makefile.PL |
|
| 781 |
- $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" |
|
| 782 |
- $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" |
|
| 783 |
- false |
|
| 784 |
- |
|
| 785 |
- |
|
| 786 |
- |
|
| 787 |
-# --- MakeMaker staticmake section: |
|
| 788 |
- |
|
| 789 |
-# --- MakeMaker makeaperl section --- |
|
| 790 |
-MAP_TARGET = perl |
|
| 791 |
-FULLPERL = /usr/bin/perl |
|
| 792 |
- |
|
| 793 |
-$(MAP_TARGET) :: static $(MAKE_APERL_FILE) |
|
| 794 |
- $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ |
|
| 795 |
- |
|
| 796 |
-$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib |
|
| 797 |
- $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) |
|
| 798 |
- $(NOECHO) $(PERLRUNINST) \ |
|
| 799 |
- Makefile.PL DIR= \ |
|
| 800 |
- MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ |
|
| 801 |
- MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= |
|
| 802 |
- |
|
| 803 |
- |
|
| 804 |
-# --- MakeMaker test section: |
|
| 805 |
- |
|
| 806 |
-TEST_VERBOSE=0 |
|
| 807 |
-TEST_TYPE=test_$(LINKTYPE) |
|
| 808 |
-TEST_FILE = test.pl |
|
| 809 |
-TEST_FILES = t/*.t |
|
| 810 |
-TESTDB_SW = -d |
|
| 811 |
- |
|
| 812 |
-testdb :: testdb_$(LINKTYPE) |
|
| 813 |
- |
|
| 814 |
-test :: $(TEST_TYPE) subdirs-test |
|
| 815 |
- |
|
| 816 |
-subdirs-test :: |
|
| 817 |
- $(NOECHO) $(NOOP) |
|
| 818 |
- |
|
| 819 |
- |
|
| 820 |
-test_dynamic :: pure_all |
|
| 821 |
- PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) |
|
| 822 |
- |
|
| 823 |
-testdb_dynamic :: pure_all |
|
| 824 |
- PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) |
|
| 825 |
- |
|
| 826 |
-test_ : test_dynamic |
|
| 827 |
- |
|
| 828 |
-test_static :: test_dynamic |
|
| 829 |
-testdb_static :: testdb_dynamic |
|
| 830 |
- |
|
| 831 |
- |
|
| 832 |
-# --- MakeMaker ppd section: |
|
| 833 |
-# Creates a PPD (Perl Package Description) for a binary distribution. |
|
| 834 |
-ppd : |
|
| 835 |
- $(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="0,1620,0,0">' > $(DISTNAME).ppd |
|
| 836 |
- $(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd |
|
| 837 |
- $(NOECHO) $(ECHO) ' <ABSTRACT>DBI interface, having hash parameter binding and filtering system</ABSTRACT>' >> $(DISTNAME).ppd |
|
| 838 |
- $(NOECHO) $(ECHO) ' <AUTHOR>Yuki Kimoto <kimoto.yuki@gmail.com></AUTHOR>' >> $(DISTNAME).ppd |
|
| 839 |
- $(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd |
|
| 840 |
- $(NOECHO) $(ECHO) ' <DEPENDENCY NAME="DBD-SQLite" VERSION="1,25,0,0" />' >> $(DISTNAME).ppd |
|
| 841 |
- $(NOECHO) $(ECHO) ' <DEPENDENCY NAME="DBI" VERSION="1,605,0,0" />' >> $(DISTNAME).ppd |
|
| 842 |
- $(NOECHO) $(ECHO) ' <DEPENDENCY NAME="Object-Simple" VERSION="3,0201,0,0" />' >> $(DISTNAME).ppd |
|
| 843 |
- $(NOECHO) $(ECHO) ' <DEPENDENCY NAME="Test-More" VERSION="0,0,0,0" />' >> $(DISTNAME).ppd |
|
| 844 |
- $(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd |
|
| 845 |
- $(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i386-linux-thread-multi-5.8" />' >> $(DISTNAME).ppd |
|
| 846 |
- $(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd |
|
| 847 |
- $(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd |
|
| 848 |
- $(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd |
|
| 849 |
- |
|
| 850 |
- |
|
| 851 |
-# --- MakeMaker pm_to_blib section: |
|
| 852 |
- |
|
| 853 |
-pm_to_blib : $(TO_INST_PM) |
|
| 854 |
- $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' -- \
|
|
| 855 |
- lib/DBIx/Custom/QueryBuilder/TagProcessors.pm blib/lib/DBIx/Custom/QueryBuilder/TagProcessors.pm \ |
|
| 856 |
- lib/DBIx/Custom/Guides/Ja.pod blib/lib/DBIx/Custom/Guides/Ja.pod \ |
|
| 857 |
- lib/DBIx/Custom/MySQL.pm blib/lib/DBIx/Custom/MySQL.pm \ |
|
| 858 |
- lib/DBIx/Custom/Guides.pod blib/lib/DBIx/Custom/Guides.pod \ |
|
| 859 |
- lib/DBIx/Custom.pm blib/lib/DBIx/Custom.pm \ |
|
| 860 |
- lib/DBIx/Custom/Query.pm blib/lib/DBIx/Custom/Query.pm \ |
|
| 861 |
- lib/DBIx/Custom/SQLite.pm blib/lib/DBIx/Custom/SQLite.pm \ |
|
| 862 |
- lib/DBIx/Custom/Result.pm blib/lib/DBIx/Custom/Result.pm \ |
|
| 863 |
- lib/DBIx/Custom/QueryBuilder.pm blib/lib/DBIx/Custom/QueryBuilder.pm |
|
| 864 |
- $(NOECHO) $(TOUCH) pm_to_blib |
|
| 865 |
- |
|
| 866 |
- |
|
| 867 |
-# --- MakeMaker selfdocument section: |
|
| 868 |
- |
|
| 869 |
- |
|
| 870 |
-# --- MakeMaker postamble section: |
|
| 871 |
- |
|
| 872 |
- |
|
| 873 |
-# End. |
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
package DBIx::Custom; |
| 2 | 2 |
|
| 3 |
-our $VERSION = '0.1622'; |
|
| 3 |
+our $VERSION = '0.1623'; |
|
| 4 | 4 |
|
| 5 | 5 |
use 5.008001; |
| 6 | 6 |
use strict; |
| ... | ... |
@@ -74,6 +74,46 @@ sub AUTOLOAD {
|
| 74 | 74 |
return $self->$helper(@_); |
| 75 | 75 |
} |
| 76 | 76 |
|
| 77 |
+sub auto_filter {
|
|
| 78 |
+ my $self = shift; |
|
| 79 |
+ |
|
| 80 |
+ # Table |
|
| 81 |
+ my $table = shift; |
|
| 82 |
+ |
|
| 83 |
+ # Column infomations |
|
| 84 |
+ my @cs = @_; |
|
| 85 |
+ |
|
| 86 |
+ # Initialize filters |
|
| 87 |
+ $self->{_auto_bind_filter} ||= {};
|
|
| 88 |
+ $self->{_auto_fetch_filter} ||= {};
|
|
| 89 |
+ |
|
| 90 |
+ # Create auto filters |
|
| 91 |
+ foreach my $c (@cs) {
|
|
| 92 |
+ croak "Usage \$dbi->auto_filter(" .
|
|
| 93 |
+ "TABLE, [COLUMN, BIND_FILTER, FETCH_FILTER], [...])" |
|
| 94 |
+ unless ref $c eq 'ARRAY' && @$c == 3; |
|
| 95 |
+ |
|
| 96 |
+ # Column |
|
| 97 |
+ my $column = $c->[0]; |
|
| 98 |
+ |
|
| 99 |
+ # Bind filter |
|
| 100 |
+ my $bind_filter = $c->[1]; |
|
| 101 |
+ croak qq{"$bind_filter" is not registered}
|
|
| 102 |
+ unless $self->filters->{$bind_filter};
|
|
| 103 |
+ $self->{_auto_bind_filter}{$table}{$column} = $bind_filter;
|
|
| 104 |
+ $self->{_auto_bind_filter}{$table}{"$table.$column"} = $bind_filter;
|
|
| 105 |
+ |
|
| 106 |
+ # Fetch filter |
|
| 107 |
+ my $fetch_filter = $c->[2]; |
|
| 108 |
+ croak qq{"$fetch_filter" is not registered}
|
|
| 109 |
+ unless $self->filters->{$fetch_filter};
|
|
| 110 |
+ $self->{_auto_fetch_filter}{$table}{$column} = $fetch_filter;
|
|
| 111 |
+ $self->{_auto_fetch_filter}{$table}{"$table.$column"} = $fetch_filter;
|
|
| 112 |
+ } |
|
| 113 |
+ |
|
| 114 |
+ return $self; |
|
| 115 |
+} |
|
| 116 |
+ |
|
| 77 | 117 |
sub helper {
|
| 78 | 118 |
my $self = shift; |
| 79 | 119 |
|
| ... | ... |
@@ -100,8 +140,6 @@ sub connect {
|
| 100 | 140 |
my $password = $self->password; |
| 101 | 141 |
my $dbi_options = $self->dbi_options || {};
|
| 102 | 142 |
|
| 103 |
- $DB::single = 1; |
|
| 104 |
- |
|
| 105 | 143 |
# Connect |
| 106 | 144 |
my $dbh = eval {DBI->connect(
|
| 107 | 145 |
$data_source, |
| ... | ... |
@@ -168,7 +206,7 @@ sub create_query {
|
| 168 | 206 |
} |
| 169 | 207 |
|
| 170 | 208 |
our %VALID_DELETE_ARGS |
| 171 |
- = map { $_ => 1 } qw/table where append filter allow_delete_all/;
|
|
| 209 |
+ = map { $_ => 1 } qw/auto_filter_table table where append filter allow_delete_all/;
|
|
| 172 | 210 |
|
| 173 | 211 |
sub delete {
|
| 174 | 212 |
my ($self, %args) = @_; |
| ... | ... |
@@ -185,7 +223,12 @@ sub delete {
|
| 185 | 223 |
my $append = $args{append};
|
| 186 | 224 |
my $filter = $args{filter};
|
| 187 | 225 |
my $allow_delete_all = $args{allow_delete_all};
|
| 188 |
- |
|
| 226 |
+ |
|
| 227 |
+ my $auto_filter_table = exists $args{auto_filter_table}
|
|
| 228 |
+ ? $args{auto_filter_table}
|
|
| 229 |
+ : [$table]; |
|
| 230 |
+ $auto_filter_table ||= []; |
|
| 231 |
+ |
|
| 189 | 232 |
# Where keys |
| 190 | 233 |
my @where_keys = keys %$where; |
| 191 | 234 |
|
| ... | ... |
@@ -207,8 +250,9 @@ sub delete {
|
| 207 | 250 |
$source .= " $append" if $append; |
| 208 | 251 |
|
| 209 | 252 |
# Execute query |
| 210 |
- my $ret_val = $self->execute($source, param => $where, |
|
| 211 |
- filter => $filter); |
|
| 253 |
+ my $ret_val = $self->execute( |
|
| 254 |
+ $source, param => $where, filter => $filter, |
|
| 255 |
+ auto_filter_table => $auto_filter_table); |
|
| 212 | 256 |
|
| 213 | 257 |
return $ret_val; |
| 214 | 258 |
} |
| ... | ... |
@@ -217,7 +261,7 @@ sub delete_all { shift->delete(allow_delete_all => 1, @_) }
|
| 217 | 261 |
|
| 218 | 262 |
sub DESTROY { }
|
| 219 | 263 |
|
| 220 |
-our %VALID_EXECUTE_ARGS = map { $_ => 1 } qw/param filter/;
|
|
| 264 |
+our %VALID_EXECUTE_ARGS = map { $_ => 1 } qw/param filter auto_filter_table/;
|
|
| 221 | 265 |
|
| 222 | 266 |
sub execute{
|
| 223 | 267 |
my ($self, $query, %args) = @_; |
| ... | ... |
@@ -234,7 +278,19 @@ sub execute{
|
| 234 | 278 |
$query = $self->create_query($query) |
| 235 | 279 |
unless ref $query; |
| 236 | 280 |
|
| 281 |
+ # Auto filter |
|
| 282 |
+ my $auto_filter = {};
|
|
| 283 |
+ my $auto_filter_tables = $args{auto_filter_table} || [];
|
|
| 284 |
+ foreach my $table (@$auto_filter_tables) {
|
|
| 285 |
+ $auto_filter = {
|
|
| 286 |
+ %$auto_filter, |
|
| 287 |
+ %{$self->{_auto_bind_filter}->{$table} || {}}
|
|
| 288 |
+ } |
|
| 289 |
+ } |
|
| 290 |
+ |
|
| 291 |
+ # Filter |
|
| 237 | 292 |
my $filter = $args{filter} || $query->filter || {};
|
| 293 |
+ $filter = {%$auto_filter, %$filter};
|
|
| 238 | 294 |
|
| 239 | 295 |
# Create bind value |
| 240 | 296 |
my $bind_values = $self->_build_bind_values($query, $params, $filter); |
| ... | ... |
@@ -248,12 +304,22 @@ sub execute{
|
| 248 | 304 |
# Return resultset if select statement is executed |
| 249 | 305 |
if ($sth->{NUM_OF_FIELDS}) {
|
| 250 | 306 |
|
| 251 |
- # Create result |
|
| 252 |
- my $result = $self->result_class->new( |
|
| 307 |
+ # Auto fetch filter |
|
| 308 |
+ my $auto_fetch_filter = {};
|
|
| 309 |
+ foreach my $table (@$auto_filter_tables) {
|
|
| 310 |
+ $auto_fetch_filter = {
|
|
| 311 |
+ %$auto_filter, |
|
| 312 |
+ %{$self->{_auto_fetch_filter}{$table} || {}}
|
|
| 313 |
+ } |
|
| 314 |
+ } |
|
| 315 |
+ |
|
| 316 |
+ # Result |
|
| 317 |
+ my $result = $self->result_class->new( |
|
| 253 | 318 |
sth => $sth, |
| 254 | 319 |
default_filter => $self->default_fetch_filter, |
| 255 | 320 |
filters => $self->filters, |
| 256 |
- filter_check => $self->filter_check |
|
| 321 |
+ filter_check => $self->filter_check, |
|
| 322 |
+ _auto_filter => $auto_fetch_filter || {}
|
|
| 257 | 323 |
); |
| 258 | 324 |
|
| 259 | 325 |
return $result; |
| ... | ... |
@@ -276,8 +342,8 @@ sub expand {
|
| 276 | 342 |
return %$expand; |
| 277 | 343 |
} |
| 278 | 344 |
|
| 279 |
-our %VALID_INSERT_ARGS = map { $_ => 1 } qw/table param append filter/;
|
|
| 280 |
- |
|
| 345 |
+our %VALID_INSERT_ARGS = map { $_ => 1 } qw/table param append
|
|
| 346 |
+ filter auto_filter_table/; |
|
| 281 | 347 |
sub insert {
|
| 282 | 348 |
my ($self, %args) = @_; |
| 283 | 349 |
|
| ... | ... |
@@ -293,6 +359,11 @@ sub insert {
|
| 293 | 359 |
my $append = $args{append} || '';
|
| 294 | 360 |
my $filter = $args{filter};
|
| 295 | 361 |
|
| 362 |
+ my $auto_filter_table = exists $args{auto_filter_table}
|
|
| 363 |
+ ? $args{auto_filter_table}
|
|
| 364 |
+ : [$table]; |
|
| 365 |
+ $auto_filter_table ||= []; |
|
| 366 |
+ |
|
| 296 | 367 |
# Insert keys |
| 297 | 368 |
my @insert_keys = keys %$param; |
| 298 | 369 |
|
| ... | ... |
@@ -302,8 +373,12 @@ sub insert {
|
| 302 | 373 |
$source .= " $append" if $append; |
| 303 | 374 |
|
| 304 | 375 |
# Execute query |
| 305 |
- my $ret_val = $self->execute($source, param => $param, |
|
| 306 |
- filter => $filter); |
|
| 376 |
+ my $ret_val = $self->execute( |
|
| 377 |
+ $source, |
|
| 378 |
+ param => $param, |
|
| 379 |
+ filter => $filter, |
|
| 380 |
+ auto_filter_table => $auto_filter_table |
|
| 381 |
+ ); |
|
| 307 | 382 |
|
| 308 | 383 |
return $ret_val; |
| 309 | 384 |
} |
| ... | ... |
@@ -332,7 +407,7 @@ sub register_filter {
|
| 332 | 407 |
} |
| 333 | 408 |
|
| 334 | 409 |
our %VALID_SELECT_ARGS |
| 335 |
- = map { $_ => 1 } qw/table column where append relation filter param/;
|
|
| 410 |
+ = map { $_ => 1 } qw/auto_filter_table table column where append relation filter param/;
|
|
| 336 | 411 |
|
| 337 | 412 |
sub select {
|
| 338 | 413 |
my ($self, %args) = @_; |
| ... | ... |
@@ -351,6 +426,10 @@ sub select {
|
| 351 | 426 |
my $relation = $args{relation};
|
| 352 | 427 |
my $append = $args{append};
|
| 353 | 428 |
my $filter = $args{filter};
|
| 429 |
+ |
|
| 430 |
+ my $auto_filter_table = exists $args{auto_filter_table}
|
|
| 431 |
+ ? $args{auto_filter_table}
|
|
| 432 |
+ : $tables; |
|
| 354 | 433 |
|
| 355 | 434 |
# Source of SQL |
| 356 | 435 |
my $source = 'select '; |
| ... | ... |
@@ -404,14 +483,16 @@ sub select {
|
| 404 | 483 |
$source .= " $append" if $append; |
| 405 | 484 |
|
| 406 | 485 |
# Execute query |
| 407 |
- my $result = $self->execute($source, param => $param, |
|
| 408 |
- filter => $filter); |
|
| 486 |
+ my $result = $self->execute( |
|
| 487 |
+ $source, param => $param, filter => $filter, |
|
| 488 |
+ auto_filter_table => $auto_filter_table); |
|
| 409 | 489 |
|
| 410 | 490 |
return $result; |
| 411 | 491 |
} |
| 412 | 492 |
|
| 413 | 493 |
our %VALID_UPDATE_ARGS |
| 414 |
- = map { $_ => 1 } qw/table param where append filter allow_update_all/;
|
|
| 494 |
+ = map { $_ => 1 } qw/auto_filter_table table param
|
|
| 495 |
+ where append filter allow_update_all/; |
|
| 415 | 496 |
|
| 416 | 497 |
sub update {
|
| 417 | 498 |
my ($self, %args) = @_; |
| ... | ... |
@@ -430,6 +511,11 @@ sub update {
|
| 430 | 511 |
my $filter = $args{filter};
|
| 431 | 512 |
my $allow_update_all = $args{allow_update_all};
|
| 432 | 513 |
|
| 514 |
+ my $auto_filter_table = exists $args{auto_filter_table}
|
|
| 515 |
+ ? $args{auto_filter_table}
|
|
| 516 |
+ : [$table]; |
|
| 517 |
+ $auto_filter_table ||= []; |
|
| 518 |
+ |
|
| 433 | 519 |
# Update keys |
| 434 | 520 |
my @update_keys = keys %$param; |
| 435 | 521 |
|
| ... | ... |
@@ -474,7 +560,8 @@ sub update {
|
| 474 | 560 |
|
| 475 | 561 |
# Execute query |
| 476 | 562 |
my $ret_val = $self->execute($source, param => $param, |
| 477 |
- filter => $filter); |
|
| 563 |
+ filter => $filter, |
|
| 564 |
+ auto_filter_table => $auto_filter_table); |
|
| 478 | 565 |
|
| 479 | 566 |
return $ret_val; |
| 480 | 567 |
} |
| ... | ... |
@@ -533,13 +620,6 @@ sub _check_filter {
|
| 533 | 620 |
# Default filter name not exists |
| 534 | 621 |
croak qq{Default bind filter "$default_filter" is not registered}
|
| 535 | 622 |
if $default_filter && ! exists $filters->{$default_filter};
|
| 536 |
- |
|
| 537 |
- # Column name not exists |
|
| 538 |
- foreach my $column (keys %$filter) {
|
|
| 539 |
- |
|
| 540 |
- croak qq{Column name "$column" in bind filter is not found in paramters}
|
|
| 541 |
- unless exists $params->{$column};
|
|
| 542 |
- } |
|
| 543 | 623 |
} |
| 544 | 624 |
|
| 545 | 625 |
sub _croak {
|
| ... | ... |
@@ -817,7 +897,24 @@ C<connect()> method use this value to connect the database. |
| 817 | 897 |
L<DBIx::Custom> inherits all methods from L<Object::Simple> |
| 818 | 898 |
and implements the following new ones. |
| 819 | 899 |
|
| 820 |
-=head2 begin_work |
|
| 900 |
+=head2 C<(experimental) auto_filter > |
|
| 901 |
+ |
|
| 902 |
+ $dbi->auto_filter( |
|
| 903 |
+ $table, |
|
| 904 |
+ [$column1, $bind_filter1, $fetch_filter1], |
|
| 905 |
+ [$column2, $bind_filter2, $fetch_filter2], |
|
| 906 |
+ [...], |
|
| 907 |
+ ); |
|
| 908 |
+ |
|
| 909 |
+C<auto_filter> is automatically filter for columns of table. |
|
| 910 |
+This have effect C<insert>, C<update>, C<delete>. C<select> |
|
| 911 |
+and L<DBIx::Custom::Result> object. |
|
| 912 |
+ |
|
| 913 |
+B<Example:> |
|
| 914 |
+ |
|
| 915 |
+ $dbi->auto_filter('books', 'sale_date', 'to_date', 'date_to');
|
|
| 916 |
+ |
|
| 917 |
+=head2 C<begin_work> |
|
| 821 | 918 |
|
| 822 | 919 |
$dbi->begin_work; |
| 823 | 920 |
|
| ... | ... |
@@ -827,7 +924,7 @@ This is same as L<DBI>'s C<begin_work>. |
| 827 | 924 |
L<DBIx::Custom> inherits all methods from L<Object::Simple> |
| 828 | 925 |
and implements the following new ones. |
| 829 | 926 |
|
| 830 |
-=head2 commit |
|
| 927 |
+=head2 C<commit> |
|
| 831 | 928 |
|
| 832 | 929 |
$dbi->commit; |
| 833 | 930 |
|
| ... | ... |
@@ -1032,7 +1129,7 @@ B<Example:> |
| 1032 | 1129 |
} |
| 1033 | 1130 |
); |
| 1034 | 1131 |
|
| 1035 |
-=head2 rollback |
|
| 1132 |
+=head2 C<rollback> |
|
| 1036 | 1133 |
|
| 1037 | 1134 |
$dbi->rollback; |
| 1038 | 1135 |
|
| ... | ... |
@@ -7,7 +7,8 @@ use base 'Object::Simple'; |
| 7 | 7 |
|
| 8 | 8 |
use Carp 'croak'; |
| 9 | 9 |
|
| 10 |
-__PACKAGE__->attr([qw/default_filter filter filter_check filters sth/]); |
|
| 10 |
+__PACKAGE__->attr([qw/default_filter filter |
|
| 11 |
+ filter_check filters sth/]); |
|
| 11 | 12 |
|
| 12 | 13 |
sub fetch {
|
| 13 | 14 |
my $self = shift; |
| ... | ... |
@@ -15,6 +16,8 @@ sub fetch {
|
| 15 | 16 |
# Filters |
| 16 | 17 |
my $filters = $self->{filters} || {};
|
| 17 | 18 |
my $filter = $self->{filter} || {};
|
| 19 |
+ my $auto_filter = $self->{_auto_filter} || {};
|
|
| 20 |
+ $filter = {%$auto_filter, %$filter};
|
|
| 18 | 21 |
|
| 19 | 22 |
# Fetch |
| 20 | 23 |
my @row = $self->{sth}->fetchrow_array;
|
| ... | ... |
@@ -77,6 +80,8 @@ sub fetch_hash {
|
| 77 | 80 |
# Filters |
| 78 | 81 |
my $filters = $self->{filters} || {};
|
| 79 | 82 |
my $filter = $self->{filter} || {};
|
| 83 |
+ my $auto_filter = $self->{_auto_filter} || {};
|
|
| 84 |
+ $filter = {%$auto_filter, %$filter};
|
|
| 80 | 85 |
|
| 81 | 86 |
# Fetch |
| 82 | 87 |
my $row = $self->{sth}->fetchrow_arrayref;
|
| ... | ... |
@@ -186,16 +191,6 @@ sub _check_filter {
|
| 186 | 191 |
# Default filter name not exists |
| 187 | 192 |
croak qq{Default fetch filter "$default_filter" is not registered}
|
| 188 | 193 |
if $default_filter && ! exists $filters->{$default_filter};
|
| 189 |
- |
|
| 190 |
- # Column name not exists |
|
| 191 |
- my %columns = map {$_ => 1} @{$self->sth->{NAME_lc}};
|
|
| 192 |
- foreach my $column (keys %$filter) {
|
|
| 193 |
- croak qq{Column name "$column" in fetch filter must lower case string}
|
|
| 194 |
- unless $column eq lc $column; |
|
| 195 |
- |
|
| 196 |
- croak qq{Column name "$column" in fetch filter is not found in result columns}
|
|
| 197 |
- unless $columns{$column};
|
|
| 198 |
- } |
|
| 199 | 194 |
} |
| 200 | 195 |
|
| 201 | 196 |
1; |
| ... | ... |
@@ -469,18 +469,6 @@ $result->filter({key1 => 'not_exists'});
|
| 469 | 469 |
eval{$result->fetch_first};
|
| 470 | 470 |
like($@, qr/\QFetch filter "not_exists" is not registered/, "$test : array :fetch_filter"); |
| 471 | 471 |
|
| 472 |
-$result = $dbi->select(table => 'table1'); |
|
| 473 |
-$result->filter({not_exists => 'encode_utf8'});
|
|
| 474 |
-eval{$result->fetch_first};
|
|
| 475 |
-like($@, qr/\QColumn name "not_exists" in fetch filter is not found in result columns/, |
|
| 476 |
- "$test : array : fetch_filter"); |
|
| 477 |
- |
|
| 478 |
-$result = $dbi->select(table => 'table1'); |
|
| 479 |
-$result->filter({Key1 => 'encode_utf8'});
|
|
| 480 |
-eval{$result->fetch_first};
|
|
| 481 |
-like($@, qr/\QColumn name "Key1" in fetch filter must lower case string/, |
|
| 482 |
- "$test : array : contain upper case charactor"); |
|
| 483 |
- |
|
| 484 | 472 |
$dbi->filter_check(0); |
| 485 | 473 |
$result = $dbi->select(table => 'table1'); |
| 486 | 474 |
$result->filter({Key1 => 'encode_utf8'});
|
| ... | ... |
@@ -501,25 +489,12 @@ $result->filter({key1 => 'not_exists'});
|
| 501 | 489 |
eval{$result->fetch_hash_first};
|
| 502 | 490 |
like($@, qr/\QFetch filter "not_exists" is not registered/, "$test : hash :fetch_filter"); |
| 503 | 491 |
|
| 504 |
-$result = $dbi->select(table => 'table1'); |
|
| 505 |
-$result->filter({not_exists => 'encode_utf8'});
|
|
| 506 |
-eval{$result->fetch_hash_first};
|
|
| 507 |
-like($@, qr/\QColumn name "not_exists" in fetch filter is not found in result columns/, |
|
| 508 |
- "$test : hash : fetch_filter"); |
|
| 509 |
- |
|
| 510 |
-$result = $dbi->select(table => 'table1'); |
|
| 511 |
-$result->filter({Key1 => 'encode_utf8'});
|
|
| 512 |
-eval{$result->fetch_hash_first};
|
|
| 513 |
-like($@, qr/\QColumn name "Key1" in fetch filter must lower case string/, |
|
| 514 |
- "$test : hash : contain upper case charactor"); |
|
| 515 |
- |
|
| 516 | 492 |
$dbi->filter_check(0); |
| 517 | 493 |
$result = $dbi->select(table => 'table1'); |
| 518 | 494 |
$result->filter({Key1 => 'encode_utf8'});
|
| 519 | 495 |
eval{$result->fetch_hash_first};
|
| 520 | 496 |
ok(!$@, "$test : hash : filter_check off"); |
| 521 | 497 |
|
| 522 |
- |
|
| 523 | 498 |
test 'filter_check in parameter binding'; |
| 524 | 499 |
$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
| 525 | 500 |
$dbi->execute($CREATE_TABLE->{0});
|
| ... | ... |
@@ -533,10 +508,6 @@ $dbi->default_bind_filter(undef); |
| 533 | 508 |
eval{$dbi->select(table => 'table1', filter => {key1 => 'not_exists'})};
|
| 534 | 509 |
like($@, qr/\QBind filter "not_exists" is not registered/, "$test : bind_filter"); |
| 535 | 510 |
|
| 536 |
-eval{$dbi->select(table => 'table1', filter => {not_exists => 'encode_utf8'})};
|
|
| 537 |
-like($@, qr/\QColumn name "not_exists" in bind filter is not found in paramters/, |
|
| 538 |
- "$test : fetch_filter"); |
|
| 539 |
- |
|
| 540 | 511 |
test 'execute'; |
| 541 | 512 |
$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
| 542 | 513 |
$dbi->execute($CREATE_TABLE->{0});
|
| ... | ... |
@@ -631,3 +602,178 @@ is($dbi->twice(5), 10 , "$test : second"); |
| 631 | 602 |
eval {$dbi->XXXXXX};
|
| 632 | 603 |
like($@, qr/\QCan't locate object method "XXXXXX" via "DBIx::Custom"/, "$test : not exists"); |
| 633 | 604 |
|
| 605 |
+test 'auto bind filter'; |
|
| 606 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 607 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 608 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 609 |
+$dbi->register_filter(three_times => sub { $_[0] * 3});
|
|
| 610 |
+$dbi->auto_filter( |
|
| 611 |
+ 'table1', ['key1', 'twice', 'twice'], ['key2', 'three_times', 'three_times']); |
|
| 612 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
|
|
| 613 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 614 |
+$row = $result->fetch_hash_first; |
|
| 615 |
+is_deeply($row, {key1 => 2, key2 => 6}, "$test : insert");
|
|
| 616 |
+ |
|
| 617 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 618 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 619 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 620 |
+$dbi->register_filter(three_times => sub { $_[0] * 3});
|
|
| 621 |
+$dbi->auto_filter( |
|
| 622 |
+ 'table1', ['key1', 'twice', 'twice'], ['key2', 'three_times', 'three_times']); |
|
| 623 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
|
|
| 624 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 625 |
+$row = $result->fetch_hash_first; |
|
| 626 |
+is_deeply($row, {key1 => 1, key2 => 2}, "$test : insert disabe auto_filter_table 1");
|
|
| 627 |
+ |
|
| 628 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 629 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 630 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 631 |
+$dbi->register_filter(three_times => sub { $_[0] * 3});
|
|
| 632 |
+$dbi->auto_filter( |
|
| 633 |
+ 'table1', ['key1', 'twice', 'twice'], ['key2', 'three_times', 'three_times']); |
|
| 634 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => []);
|
|
| 635 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 636 |
+$row = $result->fetch_hash_first; |
|
| 637 |
+is_deeply($row, {key1 => 1, key2 => 2}, "$test : insert disabe auto_filter_table 2");
|
|
| 638 |
+ |
|
| 639 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 640 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 641 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 642 |
+$dbi->auto_filter( |
|
| 643 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 644 |
+); |
|
| 645 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
|
|
| 646 |
+$dbi->update(table => 'table1', param => {key1 => 2}, where => {key2 => 2});
|
|
| 647 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 648 |
+$row = $result->fetch_hash_first; |
|
| 649 |
+is_deeply($row, {key1 => 4, key2 => 2}, "$test : update");
|
|
| 650 |
+ |
|
| 651 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 652 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 653 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 654 |
+$dbi->auto_filter( |
|
| 655 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 656 |
+); |
|
| 657 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
|
|
| 658 |
+$dbi->update(table => 'table1', param => {key1 => 2}, where => {key2 => 2}, auto_filter_table => []);
|
|
| 659 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 660 |
+$row = $result->fetch_hash_first; |
|
| 661 |
+is_deeply($row, {key1 => 2, key2 => 2}, "$test : update : disable bind filter1");
|
|
| 662 |
+ |
|
| 663 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 664 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 665 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 666 |
+$dbi->auto_filter( |
|
| 667 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 668 |
+); |
|
| 669 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, auto_filter_table => undef);
|
|
| 670 |
+$dbi->update(table => 'table1', param => {key1 => 2}, where => {key2 => 2}, auto_filter_table => undef);
|
|
| 671 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 672 |
+$row = $result->fetch_hash_first; |
|
| 673 |
+is_deeply($row, {key1 => 2, key2 => 2}, "$test : update : disable bind filter2");
|
|
| 674 |
+ |
|
| 675 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 676 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 677 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 678 |
+$dbi->auto_filter( |
|
| 679 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 680 |
+); |
|
| 681 |
+$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
|
|
| 682 |
+$dbi->delete(table => 'table1', where => {key1 => 1});
|
|
| 683 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 684 |
+$rows = $result->fetch_hash_all; |
|
| 685 |
+is_deeply($rows, [], "$test : delete"); |
|
| 686 |
+ |
|
| 687 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 688 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 689 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 690 |
+$dbi->auto_filter( |
|
| 691 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 692 |
+); |
|
| 693 |
+$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
|
|
| 694 |
+$dbi->delete(table => 'table1', where => {key1 => 1}, auto_filter_table => undef);
|
|
| 695 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 696 |
+$rows = $result->fetch_hash_all; |
|
| 697 |
+is_deeply($rows, [{key1 => 2, key2 => 2}], "$test : delete : disable1");
|
|
| 698 |
+ |
|
| 699 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 700 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 701 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 702 |
+$dbi->auto_filter( |
|
| 703 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 704 |
+); |
|
| 705 |
+$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
|
|
| 706 |
+$dbi->delete(table => 'table1', where => {key1 => 1}, auto_filter_table => []);
|
|
| 707 |
+$result = $dbi->execute($SELECT_SOURCES->{0});
|
|
| 708 |
+$rows = $result->fetch_hash_all; |
|
| 709 |
+is_deeply($rows, [{key1 => 2, key2 => 2}], "$test : delete : disable2");
|
|
| 710 |
+ |
|
| 711 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 712 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 713 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 714 |
+$dbi->auto_filter( |
|
| 715 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 716 |
+); |
|
| 717 |
+$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
|
|
| 718 |
+$result = $dbi->select(table => 'table1', where => {key1 => 1});
|
|
| 719 |
+$result->filter({'key2' => 'twice'});
|
|
| 720 |
+$rows = $result->fetch_hash_all; |
|
| 721 |
+is_deeply($rows, [{key1 => 4, key2 => 4}], "$test : select");
|
|
| 722 |
+ |
|
| 723 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 724 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 725 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 726 |
+$dbi->auto_filter( |
|
| 727 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 728 |
+); |
|
| 729 |
+$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
|
|
| 730 |
+$result = $dbi->select(table => 'table1', where => {key1 => 2}, auto_filter_table => []);
|
|
| 731 |
+$result->filter({'key2' => 'twice'});
|
|
| 732 |
+$rows = $result->fetch_hash_all; |
|
| 733 |
+is_deeply($rows, [{key1 => 2, key2 => 4}], "$test : select : disable");
|
|
| 734 |
+ |
|
| 735 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 736 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 737 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 738 |
+$dbi->auto_filter( |
|
| 739 |
+ 'table1', ['key1', 'twice', 'twice'] |
|
| 740 |
+); |
|
| 741 |
+$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 2}, auto_filter_table => undef);
|
|
| 742 |
+$result = $dbi->execute("select * from table1 where {= key1} and {= key2};",
|
|
| 743 |
+ param => {key1 => 1, key2 => 2},
|
|
| 744 |
+ auto_filter_table => ['table1']); |
|
| 745 |
+$rows = $result->fetch_hash_all; |
|
| 746 |
+is_deeply($rows, [{key1 => 4, key2 => 2}], "$test : execute");
|
|
| 747 |
+ |
|
| 748 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 749 |
+$dbi->execute($CREATE_TABLE->{0});
|
|
| 750 |
+$dbi->execute($CREATE_TABLE->{2});
|
|
| 751 |
+$dbi->register_filter(twice => sub { $_[0] * 2 });
|
|
| 752 |
+$dbi->register_filter(three_times => sub { $_[0] * 3 });
|
|
| 753 |
+$dbi->auto_filter( |
|
| 754 |
+ 'table1', ['key2', 'twice', 'twice'] |
|
| 755 |
+); |
|
| 756 |
+$dbi->auto_filter( |
|
| 757 |
+ 'table2', ['key3', 'three_times', 'three_times'] |
|
| 758 |
+); |
|
| 759 |
+$dbi->insert(table => 'table1', param => {key1 => 5, key2 => 2}, auto_filter_table => undef);
|
|
| 760 |
+$dbi->insert(table => 'table2', param => {key1 => 5, key3 => 6}, auto_filter_table => undef);
|
|
| 761 |
+$result = $dbi->select( |
|
| 762 |
+ table => ['table1', 'table2'], |
|
| 763 |
+ column => ['key2', 'key3'], |
|
| 764 |
+ where => {'table1.key2' => 1, 'table2.key3' => 2}, relation => {'table1.key1' => 'table2.key1'});
|
|
| 765 |
+ |
|
| 766 |
+$result->filter({'key2' => 'twice'});
|
|
| 767 |
+$rows = $result->fetch_hash_all; |
|
| 768 |
+is_deeply($rows, [{key2 => 4, key3 => 18}], "$test : select : join");
|
|
| 769 |
+ |
|
| 770 |
+$result = $dbi->select( |
|
| 771 |
+ table => ['table1', 'table2'], |
|
| 772 |
+ column => ['key2', 'key3'], |
|
| 773 |
+ where => {'key2' => 1, 'key3' => 2}, relation => {'table1.key1' => 'table2.key1'});
|
|
| 774 |
+ |
|
| 775 |
+$result->filter({'key2' => 'twice'});
|
|
| 776 |
+$rows = $result->fetch_hash_all; |
|
| 777 |
+is_deeply($rows, [{key2 => 4, key3 => 18}], "$test : select : join : omit");
|
|
| 778 |
+ |
|
| 779 |
+ |