raka 0.8.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/raka/lang/duckdb/impl.rb +11 -3
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a969e25adddc76ff34f767cd8b6192b33ab11295d108c84fe75be2d59db3d02a
4
- data.tar.gz: bde791d112773bb4ad98751a08563ed386cbf60085854e1a2c3d0b7022617713
3
+ metadata.gz: 8b04ff22d6ec2fd1a4c986b4a7969596ea9fbe155669558eb69dd469b947aebc
4
+ data.tar.gz: 680f48420d9d1f3bb0e758b21df43b97f7de9af489385b19fa465cc76bb3f816
5
5
  SHA512:
6
- metadata.gz: 5ee40134396dc781759b5ad9b45526892cac7c5eb00964d340e01122214843d63383aa8eb230276484cdef17ae6729f75d55f20ec2c9931a8f57557d6a32c091
7
- data.tar.gz: fe4f1df038df8efef80fc80c200dca642e7bd8898351ae7b94e024dc4fcd784e59b7df3e5f0e7bde45a74bd4da3b915511c7f9bfb20e681aaf1f82b7692d4e43
6
+ metadata.gz: 41de921265fc6b0cd178405054dfed5b8c65acb99819f9fe1dfd1808d1a45e08dc19ef871e01566047f4014d1d0cae1235a9c2f0b71e8d67646b7a69d8e58826
7
+ data.tar.gz: f5c274b5a85941fd347822ce67e9aff14969c5e9816a7472c77005bc38c655e9ccb7e4d865319646e04b140fa14c3b2d72117d668066ef727084c2818a5c94f4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.3
1
+ 0.9.0
@@ -17,12 +17,13 @@ end
17
17
  # 1. Persistent mode: operations on .db file with CREATE TABLE
18
18
  # 2. Ad-hoc mode: parquet in/out using COPY operations
19
19
  class Duckdb
20
- def initialize(database: nil, params: {}, before: nil, after: nil)
20
+ def initialize(database: nil, params: {}, before: nil, after: nil, format: nil)
21
21
  @params = params
22
22
  @database = database
23
23
  @mode = @database ? :persistent : :adhoc
24
24
  @before = before
25
25
  @after = after
26
+ @format = format&.upcase
26
27
  end
27
28
 
28
29
  def duckdb_cmd
@@ -44,7 +45,12 @@ class Duckdb
44
45
  processed_code
45
46
  end
46
47
 
47
- def build(code, _task)
48
+ def detect_format_from_extension(filename)
49
+ ext = File.extname(filename)[1..]&.upcase # Remove dot and convert to uppercase
50
+ ext || 'PARQUET' # Default fallback
51
+ end
52
+
53
+ def build(code, task)
48
54
  # Process parameter placeholders for all parts
49
55
  main_sql = process_params(code)
50
56
  before_sql = process_params(@before)
@@ -62,7 +68,9 @@ class Duckdb
62
68
  sql_parts << 'DROP TABLE IF EXISTS :_name_;'
63
69
  sql_parts << "CREATE TABLE :_name_ AS (#{main_sql});"
64
70
  when :adhoc
65
- sql_parts << "COPY (#{main_sql}) TO ':output:' (FORMAT PARQUET);"
71
+ # Determine format: use explicit format if provided, otherwise detect from output filename
72
+ format = @format || detect_format_from_extension(task.name)
73
+ sql_parts << "COPY (#{main_sql}) TO ':output:' (FORMAT #{format});"
66
74
  end
67
75
 
68
76
  # Add after hook if present
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: raka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yarray